There was an error fetching the job.
rspec unit pg13 27/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR, system ID: s_360bc95445273 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:13 ...8Pulling docker image postgres:13 ...9Using docker image sha256:dd421ca1f7f13d81c5c145d77d97d8d84cd0e6f1e045936ee506ce0f50ee397a for postgres:13 with digest postgres@sha256:00f455399f30cc3f2fe4185476601438b7a4959c74653665582d7c313a783d51 ...10Starting service redis:6.2-alpine ...11Pulling docker image redis:6.2-alpine ...12Using docker image sha256:3616f0c0705d2a35d30dde109daf3cbe58ae7284121aafa6f5cfa987db98d1a8 for redis:6.2-alpine with digest redis@sha256:edddbcad5a41d58df2f142d68439922f1860ea902903d016257337c3342f30fc ...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-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...18Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1680167864-5f443029...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: 135903, done. 25remote: Counting objects: 100% (135903/135903), done. 26remote: Compressing objects: 100% (88560/88560), done. 27remote: Total 135903 (delta 58315), reused 94618 (delta 42152), pack-reused 0 28Receiving objects: 100% (135903/135903), 121.35 MiB | 32.64 MiB/s, done.29Resolving deltas: 100% (58315/58315), done.31 * [new ref] refs/pipelines/822866544 -> refs/pipelines/82286654432Checking out 523abdde as detached HEAD (ref is refs/merge-requests/116270/merge)...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (4031138198)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138198 responseStatus=200 OK token=64_Ej9Da45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_Ej9Da47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_Ej9Da49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_Ej9Da52Using docker image sha256:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...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.sh709Using decomposed database config (config/database.yml.decomposed-postgresql)710Geo DB won't be set up.711$ setup_db_user_only712CREATE ROLE713GRANT714==> 'setup_db_user_only' succeeded in 0 seconds.715$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes716Dropped database 'gitlabhq_test'717Dropped database 'gitlabhq_test_ci'718Created database 'gitlabhq_test'719Created database 'gitlabhq_test_ci'720==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 52 seconds.721$ setup_db_praefect722SELECT pg_catalog.set_config('search_path', '', false);723CREATE DATABASE praefect_test ENCODING 'UTF8';724==> 'setup_db_praefect' succeeded in 1 seconds.725$ source ./scripts/rspec_helpers.sh726$ run_timed_command "gem install knapsack --no-document"727$ gem install knapsack --no-document728Successfully installed knapsack-4.0.07291 gem installed730==> 'gem install knapsack --no-document' succeeded in 0 seconds.731$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"835$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"836SKIP_FLAKY_TESTS_AUTOMATICALLY: false837RETRY_FAILED_TESTS_IN_NEW_PROCESS: true838KNAPSACK_GENERATE_REPORT: true839FLAKY_RSPEC_GENERATE_REPORT: true840KNAPSACK_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.rb841KNAPSACK_LOG_LEVEL: debug842KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_27_28_report.json843FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json844FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_27_28_report.json845NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_27_28_report.json846SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_27_28_report.txt847CRYSTALBALL: 848Knapsack node specs:849spec/models/environment_spec.rb850spec/services/ci/create_downstream_pipeline_service_spec.rb851spec/models/member_spec.rb852spec/services/ci/create_pipeline_service/rules_spec.rb853spec/services/projects/fork_service_spec.rb854spec/models/ci/build_trace_chunk_spec.rb855spec/models/commit_spec.rb856spec/lib/gitlab/search_results_spec.rb857spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb858spec/helpers/groups/group_members_helper_spec.rb859spec/lib/gitlab/auth/auth_finders_spec.rb860spec/finders/ci/runner_jobs_finder_spec.rb861spec/models/integrations/field_spec.rb862spec/lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route_spec.rb863spec/lib/gitlab/background_migration/reset_too_many_tags_skipped_registry_imports_spec.rb864spec/lib/gitlab/background_migration/cleanup_draft_data_from_faulty_regex_spec.rb865spec/lib/gitlab/counters/buffered_counter_spec.rb866spec/models/concerns/integrations/has_data_fields_spec.rb867spec/models/integrations/datadog_spec.rb868spec/services/git/tag_hooks_service_spec.rb869spec/policies/project_member_policy_spec.rb870spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb871spec/workers/pages/invalidate_domain_cache_worker_spec.rb872spec/lib/gitlab/database/tables_truncate_spec.rb873spec/services/post_receive_service_spec.rb874spec/lib/gitlab/auth/ldap/person_spec.rb875spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb876spec/services/merge_requests/create_pipeline_service_spec.rb877spec/uploaders/packages/debian/component_file_uploader_spec.rb878spec/graphql/mutations/merge_requests/set_assignees_spec.rb879spec/graphql/mutations/merge_requests/set_reviewers_spec.rb880spec/services/draft_notes/create_service_spec.rb881spec/services/deployments/link_merge_requests_service_spec.rb882spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb883spec/models/hooks/web_hook_log_spec.rb884spec/lib/gitlab/metrics/rails_slis_spec.rb885spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb886spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb887spec/uploaders/packages/package_file_uploader_spec.rb888spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb889spec/services/notes/copy_service_spec.rb890spec/views/projects/tags/index.html.haml_spec.rb891spec/presenters/project_member_presenter_spec.rb892spec/lib/gitlab/database/load_balancing/host_spec.rb893spec/lib/gitlab/verify/uploads_spec.rb894spec/views/shared/runners/_runner_details.html.haml_spec.rb895spec/lib/object_storage/config_spec.rb896spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb897spec/finders/user_recent_events_finder_spec.rb898spec/lib/gitlab/i18n/pluralization_spec.rb899spec/services/work_items/task_list_reference_replacement_service_spec.rb900spec/lib/gitlab/web_hooks/recursion_detection_spec.rb901spec/lib/gitlab/ci/status/composite_spec.rb902spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb903spec/services/projects/download_service_spec.rb904spec/lib/gitlab/kubernetes/default_namespace_spec.rb905spec/helpers/wiki_helper_spec.rb906spec/workers/container_registry/migration/observer_worker_spec.rb907spec/helpers/preferences_helper_spec.rb908spec/models/pages_deployment_spec.rb909spec/services/todos/destroy/confidential_issue_service_spec.rb910spec/models/ci/unit_test_failure_spec.rb911spec/models/design_management/design_collection_spec.rb912spec/views/layouts/header/_new_dropdown.haml_spec.rb913spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb914spec/workers/namespaces/process_sync_events_worker_spec.rb915spec/services/groups/group_links/destroy_service_spec.rb916spec/workers/delete_diff_files_worker_spec.rb917spec/lib/gitlab/git_spec.rb918spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb919spec/lib/gitlab/import_export/attributes_finder_spec.rb920spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb921spec/services/packages/helm/process_file_service_spec.rb922spec/helpers/ci/builds_helper_spec.rb923spec/models/users_statistics_spec.rb924spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb925spec/lib/sidebars/panel_spec.rb926spec/helpers/sorting_helper_spec.rb927spec/lib/sidebars/groups/menus/settings_menu_spec.rb928spec/models/design_management/action_spec.rb929spec/helpers/admin/user_actions_helper_spec.rb930spec/lib/bitbucket_server/representation/pull_request_comment_spec.rb931spec/finders/packages/helm/packages_finder_spec.rb932spec/support_specs/helpers/migrations_helpers_spec.rb933spec/lib/gitlab/lograge/custom_options_spec.rb934spec/lib/gitlab/github_import/importer/repository_importer_spec.rb935spec/services/ml/experiment_tracking/experiment_repository_spec.rb936spec/lib/gitlab/pages/virtual_host_finder_spec.rb937spec/lib/gitlab/import_export/file_importer_spec.rb938spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb939spec/models/group_import_state_spec.rb940spec/workers/container_registry/delete_container_repository_worker_spec.rb941spec/models/concerns/ci/track_environment_usage_spec.rb942spec/lib/banzai/filter/table_of_contents_filter_spec.rb943spec/lib/gitlab/changelog/committer_spec.rb944spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb945spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb946spec/lib/gitlab/slash_commands/issue_show_spec.rb947spec/models/ci/artifact_blob_spec.rb948spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb949spec/graphql/resolvers/release_resolver_spec.rb950spec/serializers/evidences/evidence_entity_spec.rb951spec/services/milestones/merge_requests_count_service_spec.rb952spec/services/dependency_proxy/group_settings/update_service_spec.rb953spec/graphql/mutations/terraform/state/lock_spec.rb954spec/lib/gitlab/git/cross_repo_spec.rb955spec/tooling/rspec_flaky/listener_spec.rb956spec/services/work_items/widgets/description_service/update_service_spec.rb957spec/lib/gitlab/dependency_linker_spec.rb958spec/services/ci/create_pipeline_service/merge_requests_spec.rb959spec/workers/stage_update_worker_spec.rb960spec/lib/gitlab/utils/username_and_email_generator_spec.rb961spec/lib/gitlab/metrics/boot_time_tracker_spec.rb962spec/models/blob_viewer/markup_spec.rb963spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb964spec/rubocop/cop/migration/prevent_index_creation_spec.rb965spec/workers/bulk_imports/relation_export_worker_spec.rb966spec/workers/merge_requests/handle_assignees_change_worker_spec.rb967spec/lib/banzai/reference_parser/project_parser_spec.rb968spec/rubocop/cop/background_migration/missing_dictionary_file_spec.rb969spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb970spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb971spec/lib/feature_groups/gitlab_team_members_spec.rb972spec/lib/gitlab/database/query_analyzers/gitlab_schemas_validate_connection_spec.rb973spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb974spec/models/concerns/strip_attribute_spec.rb975spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb976spec/models/concerns/batch_destroy_dependent_associations_spec.rb977spec/services/work_items/parent_links/destroy_service_spec.rb978spec/services/ci/generate_terraform_reports_service_spec.rb979spec/initializers/carrierwave_patch_spec.rb980spec/workers/ci/build_trace_chunk_flush_worker_spec.rb981spec/finders/data_transfer/project_data_transfer_finder_spec.rb982spec/services/google_cloud/create_cloudsql_instance_service_spec.rb983spec/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric_spec.rb984spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb985spec/services/packages/composer/composer_json_service_spec.rb986spec/lib/gitlab/email/smime/signer_spec.rb987spec/services/user_preferences/update_service_spec.rb988spec/helpers/git_helper_spec.rb989spec/tooling/lib/tooling/helm3_client_spec.rb990spec/lib/gitlab/graphql/pagination/offset_active_record_relation_connection_spec.rb991spec/rubocop/cop/sidekiq_redis_call_spec.rb992spec/initializers/settings_spec.rb993spec/models/concerns/cron_schedulable_spec.rb994spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb995spec/lib/gitlab/hook_data/issue_builder_spec.rb996spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb997spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb998spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb999spec/services/ci/pipeline_schedules/update_service_spec.rb1000spec/lib/gitlab/session_spec.rb1001spec/workers/cleanup_container_repository_worker_spec.rb1002spec/components/diffs/stats_component_spec.rb1003spec/lib/gitlab/ci/config/entry/services_spec.rb1004spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb1005spec/lib/gitlab/time_tracking_formatter_spec.rb1006spec/lib/system_check/app/hashed_storage_all_projects_check_spec.rb1007spec/initializers/safe_session_store_patch_spec.rb1008spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb1009spec/services/users/validate_manual_otp_service_spec.rb1010spec/serializers/evidences/milestone_entity_spec.rb1011spec/models/users/calloutable_spec.rb1012spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb1013spec/lib/gitlab/query_limiting_spec.rb1014spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb1015spec/components/pajamas/spinner_component_spec.rb1016spec/workers/propagate_integration_inherit_descendant_worker_spec.rb1017spec/rubocop/cop/feature_flag_usage_spec.rb1018spec/workers/gitlab/github_gists_import/finish_import_worker_spec.rb1019spec/services/members/invite_member_builder_spec.rb1020spec/workers/ci/daily_build_group_report_results_worker_spec.rb1021spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb1022spec/models/users/saved_reply_spec.rb1023spec/lib/gitlab/string_regex_marker_spec.rb1024spec/models/user_mentions/merge_request_user_mention_spec.rb1025spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb1026spec/initializers/0_postgresql_types_spec.rb1027spec/lib/api/base_spec.rb1028spec/models/jira_connect_subscription_spec.rb1029spec/lib/gitlab/ci/config/entry/caches_spec.rb1030spec/models/pages/virtual_domain_spec.rb1031spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb1032spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb1033spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb1034spec/lib/sidebars/projects/menus/wiki_menu_spec.rb1035spec/rubocop/cop/rake/require_spec.rb1036spec/views/devise/shared/_signin_box.html.haml_spec.rb1037spec/support_specs/graphql/var_spec.rb1038spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb1039spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb1040spec/lib/sidebars/groups/menus/scope_menu_spec.rb1041spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb1042spec/graphql/types/packages/package_details_type_spec.rb1043spec/graphql/resolvers/concerns/resolves_groups_spec.rb1044spec/lib/gitlab/event_store/event_spec.rb1045spec/initializers/google_api_client_spec.rb1046spec/views/profiles/notifications/show.html.haml_spec.rb1047spec/models/user_canonical_email_spec.rb1048spec/rubocop/cop/scalability/idempotent_worker_spec.rb1049spec/serializers/import/githubish_provider_repo_entity_spec.rb1050spec/serializers/integrations/project_entity_spec.rb1051spec/lib/gitlab/database/async_ddl_exclusive_lease_guard_spec.rb1052spec/graphql/types/time_tracking/timelog_category_type_spec.rb1053spec/graphql/types/event_type_spec.rb1054spec/graphql/types/alert_management/integration_type_enum_spec.rb1055spec/models/license_template_spec.rb1056spec/lib/generators/model/model_generator_spec.rb1057spec/serializers/evidences/issue_entity_spec.rb1058spec/policies/concerns/crud_policy_helpers_spec.rb1059spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb1060spec/services/award_emojis/base_service_spec.rb1061spec/models/incident_management/timeline_event_tag_link_spec.rb1062spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb1063spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb1064spec/rubocop/cop/migration/remove_index_spec.rb1065spec/graphql/types/user_status_type_spec.rb1066spec/graphql/types/user_preferences_type_spec.rb1067spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb1068spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb1069spec/graphql/types/ci/runner_web_url_edge_spec.rb1070spec/models/namespace_ci_cd_setting_spec.rb1071spec/graphql/types/metadata/kas_type_spec.rb1072spec/graphql/types/metadata_type_spec.rb1073spec/graphql/types/deployment_tier_enum_spec.rb1074spec/graphql/types/resolvable_interface_spec.rb1075spec/serializers/accessibility_reports_comparer_serializer_spec.rb1076spec/graphql/types/countable_connection_type_spec.rb1077spec/graphql/types/limited_countable_connection_type_spec.rb1078spec/models/blob_viewer/podspec_json_spec.rb1079spec/lib/banzai/filter/html_entity_filter_spec.rb1080Filter specs:1081Running specs:1082Running all node tests without filter1083spec/models/environment_spec.rb1084spec/services/ci/create_downstream_pipeline_service_spec.rb1085spec/models/member_spec.rb1086spec/services/ci/create_pipeline_service/rules_spec.rb1087spec/services/projects/fork_service_spec.rb1088spec/models/ci/build_trace_chunk_spec.rb1089spec/models/commit_spec.rb1090spec/lib/gitlab/search_results_spec.rb1091spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb1092spec/helpers/groups/group_members_helper_spec.rb1093spec/lib/gitlab/auth/auth_finders_spec.rb1094spec/finders/ci/runner_jobs_finder_spec.rb1095spec/models/integrations/field_spec.rb1096spec/lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route_spec.rb1097spec/lib/gitlab/background_migration/reset_too_many_tags_skipped_registry_imports_spec.rb1098spec/lib/gitlab/background_migration/cleanup_draft_data_from_faulty_regex_spec.rb1099spec/lib/gitlab/counters/buffered_counter_spec.rb1100spec/models/concerns/integrations/has_data_fields_spec.rb1101spec/models/integrations/datadog_spec.rb1102spec/services/git/tag_hooks_service_spec.rb1103spec/policies/project_member_policy_spec.rb1104spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb1105spec/workers/pages/invalidate_domain_cache_worker_spec.rb1106spec/lib/gitlab/database/tables_truncate_spec.rb1107spec/services/post_receive_service_spec.rb1108spec/lib/gitlab/auth/ldap/person_spec.rb1109spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb1110spec/services/merge_requests/create_pipeline_service_spec.rb1111spec/uploaders/packages/debian/component_file_uploader_spec.rb1112spec/graphql/mutations/merge_requests/set_assignees_spec.rb1113spec/graphql/mutations/merge_requests/set_reviewers_spec.rb1114spec/services/draft_notes/create_service_spec.rb1115spec/services/deployments/link_merge_requests_service_spec.rb1116spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb1117spec/models/hooks/web_hook_log_spec.rb1118spec/lib/gitlab/metrics/rails_slis_spec.rb1119spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb1120spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb1121spec/uploaders/packages/package_file_uploader_spec.rb1122spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb1123spec/services/notes/copy_service_spec.rb1124spec/views/projects/tags/index.html.haml_spec.rb1125spec/presenters/project_member_presenter_spec.rb1126spec/lib/gitlab/database/load_balancing/host_spec.rb1127spec/lib/gitlab/verify/uploads_spec.rb1128spec/views/shared/runners/_runner_details.html.haml_spec.rb1129spec/lib/object_storage/config_spec.rb1130spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb1131spec/finders/user_recent_events_finder_spec.rb1132spec/lib/gitlab/i18n/pluralization_spec.rb1133spec/services/work_items/task_list_reference_replacement_service_spec.rb1134spec/lib/gitlab/web_hooks/recursion_detection_spec.rb1135spec/lib/gitlab/ci/status/composite_spec.rb1136spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb1137spec/services/projects/download_service_spec.rb1138spec/lib/gitlab/kubernetes/default_namespace_spec.rb1139spec/helpers/wiki_helper_spec.rb1140spec/workers/container_registry/migration/observer_worker_spec.rb1141spec/helpers/preferences_helper_spec.rb1142spec/models/pages_deployment_spec.rb1143spec/services/todos/destroy/confidential_issue_service_spec.rb1144spec/models/ci/unit_test_failure_spec.rb1145spec/models/design_management/design_collection_spec.rb1146spec/views/layouts/header/_new_dropdown.haml_spec.rb1147spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb1148spec/workers/namespaces/process_sync_events_worker_spec.rb1149spec/services/groups/group_links/destroy_service_spec.rb1150spec/workers/delete_diff_files_worker_spec.rb1151spec/lib/gitlab/git_spec.rb1152spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb1153spec/lib/gitlab/import_export/attributes_finder_spec.rb1154spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb1155spec/services/packages/helm/process_file_service_spec.rb1156spec/helpers/ci/builds_helper_spec.rb1157spec/models/users_statistics_spec.rb1158spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb1159spec/lib/sidebars/panel_spec.rb1160spec/helpers/sorting_helper_spec.rb1161spec/lib/sidebars/groups/menus/settings_menu_spec.rb1162spec/models/design_management/action_spec.rb1163spec/helpers/admin/user_actions_helper_spec.rb1164spec/lib/bitbucket_server/representation/pull_request_comment_spec.rb1165spec/finders/packages/helm/packages_finder_spec.rb1166spec/support_specs/helpers/migrations_helpers_spec.rb1167spec/lib/gitlab/lograge/custom_options_spec.rb1168spec/lib/gitlab/github_import/importer/repository_importer_spec.rb1169spec/services/ml/experiment_tracking/experiment_repository_spec.rb1170spec/lib/gitlab/pages/virtual_host_finder_spec.rb1171spec/lib/gitlab/import_export/file_importer_spec.rb1172spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb1173spec/models/group_import_state_spec.rb1174spec/workers/container_registry/delete_container_repository_worker_spec.rb1175spec/models/concerns/ci/track_environment_usage_spec.rb1176spec/lib/banzai/filter/table_of_contents_filter_spec.rb1177spec/lib/gitlab/changelog/committer_spec.rb1178spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb1179spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb1180spec/lib/gitlab/slash_commands/issue_show_spec.rb1181spec/models/ci/artifact_blob_spec.rb1182spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb1183spec/graphql/resolvers/release_resolver_spec.rb1184spec/serializers/evidences/evidence_entity_spec.rb1185spec/services/milestones/merge_requests_count_service_spec.rb1186spec/services/dependency_proxy/group_settings/update_service_spec.rb1187spec/graphql/mutations/terraform/state/lock_spec.rb1188spec/lib/gitlab/git/cross_repo_spec.rb1189spec/tooling/rspec_flaky/listener_spec.rb1190spec/services/work_items/widgets/description_service/update_service_spec.rb1191spec/lib/gitlab/dependency_linker_spec.rb1192spec/services/ci/create_pipeline_service/merge_requests_spec.rb1193spec/workers/stage_update_worker_spec.rb1194spec/lib/gitlab/utils/username_and_email_generator_spec.rb1195spec/lib/gitlab/metrics/boot_time_tracker_spec.rb1196spec/models/blob_viewer/markup_spec.rb1197spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb1198spec/rubocop/cop/migration/prevent_index_creation_spec.rb1199spec/workers/bulk_imports/relation_export_worker_spec.rb1200spec/workers/merge_requests/handle_assignees_change_worker_spec.rb1201spec/lib/banzai/reference_parser/project_parser_spec.rb1202spec/rubocop/cop/background_migration/missing_dictionary_file_spec.rb1203spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb1204spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb1205spec/lib/feature_groups/gitlab_team_members_spec.rb1206spec/lib/gitlab/database/query_analyzers/gitlab_schemas_validate_connection_spec.rb1207spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb1208spec/models/concerns/strip_attribute_spec.rb1209spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb1210spec/models/concerns/batch_destroy_dependent_associations_spec.rb1211spec/services/work_items/parent_links/destroy_service_spec.rb1212spec/services/ci/generate_terraform_reports_service_spec.rb1213spec/initializers/carrierwave_patch_spec.rb1214spec/workers/ci/build_trace_chunk_flush_worker_spec.rb1215spec/finders/data_transfer/project_data_transfer_finder_spec.rb1216spec/services/google_cloud/create_cloudsql_instance_service_spec.rb1217spec/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric_spec.rb1218spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb1219spec/services/packages/composer/composer_json_service_spec.rb1220spec/lib/gitlab/email/smime/signer_spec.rb1221spec/services/user_preferences/update_service_spec.rb1222spec/helpers/git_helper_spec.rb1223spec/tooling/lib/tooling/helm3_client_spec.rb1224spec/lib/gitlab/graphql/pagination/offset_active_record_relation_connection_spec.rb1225spec/rubocop/cop/sidekiq_redis_call_spec.rb1226spec/initializers/settings_spec.rb1227spec/models/concerns/cron_schedulable_spec.rb1228spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb1229spec/lib/gitlab/hook_data/issue_builder_spec.rb1230spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb1231spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb1232spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb1233spec/services/ci/pipeline_schedules/update_service_spec.rb1234spec/lib/gitlab/session_spec.rb1235spec/workers/cleanup_container_repository_worker_spec.rb1236spec/components/diffs/stats_component_spec.rb1237spec/lib/gitlab/ci/config/entry/services_spec.rb1238spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb1239spec/lib/gitlab/time_tracking_formatter_spec.rb1240spec/lib/system_check/app/hashed_storage_all_projects_check_spec.rb1241spec/initializers/safe_session_store_patch_spec.rb1242spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb1243spec/services/users/validate_manual_otp_service_spec.rb1244spec/serializers/evidences/milestone_entity_spec.rb1245spec/models/users/calloutable_spec.rb1246spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb1247spec/lib/gitlab/query_limiting_spec.rb1248spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb1249spec/components/pajamas/spinner_component_spec.rb1250spec/workers/propagate_integration_inherit_descendant_worker_spec.rb1251spec/rubocop/cop/feature_flag_usage_spec.rb1252spec/workers/gitlab/github_gists_import/finish_import_worker_spec.rb1253spec/services/members/invite_member_builder_spec.rb1254spec/workers/ci/daily_build_group_report_results_worker_spec.rb1255spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb1256spec/models/users/saved_reply_spec.rb1257spec/lib/gitlab/string_regex_marker_spec.rb1258spec/models/user_mentions/merge_request_user_mention_spec.rb1259spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb1260spec/initializers/0_postgresql_types_spec.rb1261spec/lib/api/base_spec.rb1262spec/models/jira_connect_subscription_spec.rb1263spec/lib/gitlab/ci/config/entry/caches_spec.rb1264spec/models/pages/virtual_domain_spec.rb1265spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb1266spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb1267spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb1268spec/lib/sidebars/projects/menus/wiki_menu_spec.rb1269spec/rubocop/cop/rake/require_spec.rb1270spec/views/devise/shared/_signin_box.html.haml_spec.rb1271spec/support_specs/graphql/var_spec.rb1272spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb1273spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb1274spec/lib/sidebars/groups/menus/scope_menu_spec.rb1275spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb1276spec/graphql/types/packages/package_details_type_spec.rb1277spec/graphql/resolvers/concerns/resolves_groups_spec.rb1278spec/lib/gitlab/event_store/event_spec.rb1279spec/initializers/google_api_client_spec.rb1280spec/views/profiles/notifications/show.html.haml_spec.rb1281spec/models/user_canonical_email_spec.rb1282spec/rubocop/cop/scalability/idempotent_worker_spec.rb1283spec/serializers/import/githubish_provider_repo_entity_spec.rb1284spec/serializers/integrations/project_entity_spec.rb1285spec/lib/gitlab/database/async_ddl_exclusive_lease_guard_spec.rb1286spec/graphql/types/time_tracking/timelog_category_type_spec.rb1287spec/graphql/types/event_type_spec.rb1288spec/graphql/types/alert_management/integration_type_enum_spec.rb1289spec/models/license_template_spec.rb1290spec/lib/generators/model/model_generator_spec.rb1291spec/serializers/evidences/issue_entity_spec.rb1292spec/policies/concerns/crud_policy_helpers_spec.rb1293spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb1294spec/services/award_emojis/base_service_spec.rb1295spec/models/incident_management/timeline_event_tag_link_spec.rb1296spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb1297spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb1298spec/rubocop/cop/migration/remove_index_spec.rb1299spec/graphql/types/user_status_type_spec.rb1300spec/graphql/types/user_preferences_type_spec.rb1301spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb1302spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb1303spec/graphql/types/ci/runner_web_url_edge_spec.rb1304spec/models/namespace_ci_cd_setting_spec.rb1305spec/graphql/types/metadata/kas_type_spec.rb1306spec/graphql/types/metadata_type_spec.rb1307spec/graphql/types/deployment_tier_enum_spec.rb1308spec/graphql/types/resolvable_interface_spec.rb1309spec/serializers/accessibility_reports_comparer_serializer_spec.rb1310spec/graphql/types/countable_connection_type_spec.rb1311spec/graphql/types/limited_countable_connection_type_spec.rb1312spec/models/blob_viewer/podspec_json_spec.rb1313spec/lib/banzai/filter/html_entity_filter_spec.rb1314Running all node tests without filter1315Running all node tests without filter1316Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration --default-path spec -- spec/models/environment_spec.rb spec/services/ci/create_downstream_pipeline_service_spec.rb spec/models/member_spec.rb spec/services/ci/create_pipeline_service/rules_spec.rb spec/services/projects/fork_service_spec.rb spec/models/ci/build_trace_chunk_spec.rb spec/models/commit_spec.rb spec/lib/gitlab/search_results_spec.rb spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb spec/helpers/groups/group_members_helper_spec.rb spec/lib/gitlab/auth/auth_finders_spec.rb spec/finders/ci/runner_jobs_finder_spec.rb spec/models/integrations/field_spec.rb spec/lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route_spec.rb spec/lib/gitlab/background_migration/reset_too_many_tags_skipped_registry_imports_spec.rb spec/lib/gitlab/background_migration/cleanup_draft_data_from_faulty_regex_spec.rb spec/lib/gitlab/counters/buffered_counter_spec.rb spec/models/concerns/integrations/has_data_fields_spec.rb spec/models/integrations/datadog_spec.rb spec/services/git/tag_hooks_service_spec.rb spec/policies/project_member_policy_spec.rb spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb spec/workers/pages/invalidate_domain_cache_worker_spec.rb spec/lib/gitlab/database/tables_truncate_spec.rb spec/services/post_receive_service_spec.rb spec/lib/gitlab/auth/ldap/person_spec.rb spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb spec/services/merge_requests/create_pipeline_service_spec.rb spec/uploaders/packages/debian/component_file_uploader_spec.rb spec/graphql/mutations/merge_requests/set_assignees_spec.rb spec/graphql/mutations/merge_requests/set_reviewers_spec.rb spec/services/draft_notes/create_service_spec.rb spec/services/deployments/link_merge_requests_service_spec.rb spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb spec/models/hooks/web_hook_log_spec.rb spec/lib/gitlab/metrics/rails_slis_spec.rb spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb spec/uploaders/packages/package_file_uploader_spec.rb spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb spec/services/notes/copy_service_spec.rb spec/views/projects/tags/index.html.haml_spec.rb spec/presenters/project_member_presenter_spec.rb spec/lib/gitlab/database/load_balancing/host_spec.rb spec/lib/gitlab/verify/uploads_spec.rb spec/views/shared/runners/_runner_details.html.haml_spec.rb spec/lib/object_storage/config_spec.rb spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb spec/finders/user_recent_events_finder_spec.rb spec/lib/gitlab/i18n/pluralization_spec.rb spec/services/work_items/task_list_reference_replacement_service_spec.rb spec/lib/gitlab/web_hooks/recursion_detection_spec.rb spec/lib/gitlab/ci/status/composite_spec.rb spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb spec/services/projects/download_service_spec.rb spec/lib/gitlab/kubernetes/default_namespace_spec.rb spec/helpers/wiki_helper_spec.rb spec/workers/container_registry/migration/observer_worker_spec.rb spec/helpers/preferences_helper_spec.rb spec/models/pages_deployment_spec.rb spec/services/todos/destroy/confidential_issue_service_spec.rb spec/models/ci/unit_test_failure_spec.rb spec/models/design_management/design_collection_spec.rb spec/views/layouts/header/_new_dropdown.haml_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb spec/workers/namespaces/process_sync_events_worker_spec.rb spec/services/groups/group_links/destroy_service_spec.rb spec/workers/delete_diff_files_worker_spec.rb spec/lib/gitlab/git_spec.rb spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb spec/lib/gitlab/import_export/attributes_finder_spec.rb spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb spec/services/packages/helm/process_file_service_spec.rb spec/helpers/ci/builds_helper_spec.rb spec/models/users_statistics_spec.rb spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb spec/lib/sidebars/panel_spec.rb spec/helpers/sorting_helper_spec.rb spec/lib/sidebars/groups/menus/settings_menu_spec.rb spec/models/design_management/action_spec.rb spec/helpers/admin/user_actions_helper_spec.rb spec/lib/bitbucket_server/representation/pull_request_comment_spec.rb spec/finders/packages/helm/packages_finder_spec.rb spec/support_specs/helpers/migrations_helpers_spec.rb spec/lib/gitlab/lograge/custom_options_spec.rb spec/lib/gitlab/github_import/importer/repository_importer_spec.rb spec/services/ml/experiment_tracking/experiment_repository_spec.rb spec/lib/gitlab/pages/virtual_host_finder_spec.rb spec/lib/gitlab/import_export/file_importer_spec.rb spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb spec/models/group_import_state_spec.rb spec/workers/container_registry/delete_container_repository_worker_spec.rb spec/models/concerns/ci/track_environment_usage_spec.rb spec/lib/banzai/filter/table_of_contents_filter_spec.rb spec/lib/gitlab/changelog/committer_spec.rb spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb spec/lib/gitlab/slash_commands/issue_show_spec.rb spec/models/ci/artifact_blob_spec.rb spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb spec/graphql/resolvers/release_resolver_spec.rb spec/serializers/evidences/evidence_entity_spec.rb spec/services/milestones/merge_requests_count_service_spec.rb spec/services/dependency_proxy/group_settings/update_service_spec.rb spec/graphql/mutations/terraform/state/lock_spec.rb spec/lib/gitlab/git/cross_repo_spec.rb spec/tooling/rspec_flaky/listener_spec.rb spec/services/work_items/widgets/description_service/update_service_spec.rb spec/lib/gitlab/dependency_linker_spec.rb spec/services/ci/create_pipeline_service/merge_requests_spec.rb spec/workers/stage_update_worker_spec.rb spec/lib/gitlab/utils/username_and_email_generator_spec.rb spec/lib/gitlab/metrics/boot_time_tracker_spec.rb spec/models/blob_viewer/markup_spec.rb spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb spec/rubocop/cop/migration/prevent_index_creation_spec.rb spec/workers/bulk_imports/relation_export_worker_spec.rb spec/workers/merge_requests/handle_assignees_change_worker_spec.rb spec/lib/banzai/reference_parser/project_parser_spec.rb spec/rubocop/cop/background_migration/missing_dictionary_file_spec.rb spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb spec/lib/feature_groups/gitlab_team_members_spec.rb spec/lib/gitlab/database/query_analyzers/gitlab_schemas_validate_connection_spec.rb spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb spec/models/concerns/strip_attribute_spec.rb spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb spec/models/concerns/batch_destroy_dependent_associations_spec.rb spec/services/work_items/parent_links/destroy_service_spec.rb spec/services/ci/generate_terraform_reports_service_spec.rb spec/initializers/carrierwave_patch_spec.rb spec/workers/ci/build_trace_chunk_flush_worker_spec.rb spec/finders/data_transfer/project_data_transfer_finder_spec.rb spec/services/google_cloud/create_cloudsql_instance_service_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric_spec.rb spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb spec/services/packages/composer/composer_json_service_spec.rb spec/lib/gitlab/email/smime/signer_spec.rb spec/services/user_preferences/update_service_spec.rb spec/helpers/git_helper_spec.rb spec/tooling/lib/tooling/helm3_client_spec.rb spec/lib/gitlab/graphql/pagination/offset_active_record_relation_connection_spec.rb spec/rubocop/cop/sidekiq_redis_call_spec.rb spec/initializers/settings_spec.rb spec/models/concerns/cron_schedulable_spec.rb spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb spec/lib/gitlab/hook_data/issue_builder_spec.rb spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb spec/services/ci/pipeline_schedules/update_service_spec.rb spec/lib/gitlab/session_spec.rb spec/workers/cleanup_container_repository_worker_spec.rb spec/components/diffs/stats_component_spec.rb spec/lib/gitlab/ci/config/entry/services_spec.rb spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb spec/lib/gitlab/time_tracking_formatter_spec.rb spec/lib/system_check/app/hashed_storage_all_projects_check_spec.rb spec/initializers/safe_session_store_patch_spec.rb spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb spec/services/users/validate_manual_otp_service_spec.rb spec/serializers/evidences/milestone_entity_spec.rb spec/models/users/calloutable_spec.rb spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb spec/lib/gitlab/query_limiting_spec.rb spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb spec/components/pajamas/spinner_component_spec.rb spec/workers/propagate_integration_inherit_descendant_worker_spec.rb spec/rubocop/cop/feature_flag_usage_spec.rb spec/workers/gitlab/github_gists_import/finish_import_worker_spec.rb spec/services/members/invite_member_builder_spec.rb spec/workers/ci/daily_build_group_report_results_worker_spec.rb spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb spec/models/users/saved_reply_spec.rb spec/lib/gitlab/string_regex_marker_spec.rb spec/models/user_mentions/merge_request_user_mention_spec.rb spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb spec/initializers/0_postgresql_types_spec.rb spec/lib/api/base_spec.rb spec/models/jira_connect_subscription_spec.rb spec/lib/gitlab/ci/config/entry/caches_spec.rb spec/models/pages/virtual_domain_spec.rb spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb spec/lib/sidebars/projects/menus/wiki_menu_spec.rb spec/rubocop/cop/rake/require_spec.rb spec/views/devise/shared/_signin_box.html.haml_spec.rb spec/support_specs/graphql/var_spec.rb spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb spec/lib/sidebars/groups/menus/scope_menu_spec.rb spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb spec/graphql/types/packages/package_details_type_spec.rb spec/graphql/resolvers/concerns/resolves_groups_spec.rb spec/lib/gitlab/event_store/event_spec.rb spec/initializers/google_api_client_spec.rb spec/views/profiles/notifications/show.html.haml_spec.rb spec/models/user_canonical_email_spec.rb spec/rubocop/cop/scalability/idempotent_worker_spec.rb spec/serializers/import/githubish_provider_repo_entity_spec.rb spec/serializers/integrations/project_entity_spec.rb spec/lib/gitlab/database/async_ddl_exclusive_lease_guard_spec.rb spec/graphql/types/time_tracking/timelog_category_type_spec.rb spec/graphql/types/event_type_spec.rb spec/graphql/types/alert_management/integration_type_enum_spec.rb spec/models/license_template_spec.rb spec/lib/generators/model/model_generator_spec.rb spec/serializers/evidences/issue_entity_spec.rb spec/policies/concerns/crud_policy_helpers_spec.rb spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb spec/services/award_emojis/base_service_spec.rb spec/models/incident_management/timeline_event_tag_link_spec.rb spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb spec/rubocop/cop/migration/remove_index_spec.rb spec/graphql/types/user_status_type_spec.rb spec/graphql/types/user_preferences_type_spec.rb spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb spec/graphql/types/ci/runner_web_url_edge_spec.rb spec/models/namespace_ci_cd_setting_spec.rb spec/graphql/types/metadata/kas_type_spec.rb spec/graphql/types/metadata_type_spec.rb spec/graphql/types/deployment_tier_enum_spec.rb spec/graphql/types/resolvable_interface_spec.rb spec/serializers/accessibility_reports_comparer_serializer_spec.rb spec/graphql/types/countable_connection_type_spec.rb spec/graphql/types/limited_countable_connection_type_spec.rb spec/models/blob_viewer/podspec_json_spec.rb spec/lib/banzai/filter/html_entity_filter_spec.rbKnapsack report generator started!1317Run options: exclude {:quarantine=>true, :level=>"background_migration"}1318Test environment set up in 0.99346105 seconds1319Environment1320 is expected to be a kind of ReactiveCaching1321 is expected to nullify if blank :external_url1322 is expected to belong to project required: true1323 is expected to belong to merge_request optional: true1324 is expected to have many deployments1325 is expected to have many metrics_dashboard_annotations1326 is expected to have many alert_management_alerts1327 is expected to have one upcoming_deployment1328 is expected to have one latest_opened_most_severe_alert1329 is expected to delegate #manual_actions to the #last_deployment object1330 is expected to validate that :name cannot be empty/falsy1331 is expected to validate that :name is case-sensitively unique within the scope of :project_id1332 is expected to validate that the length of :name is at most 2551333 is expected to validate that :slug is case-sensitively unique within the scope of :project_id1334 is expected to validate that the length of :slug is at most 241335 is expected to validate that the length of :external_url is at most 2551336 validation1337 does not become invalid record when external_url is empty1338 does not allow changes to merge_request1339 for an environment that has no merge request associated1340 for an environment that has a merge request associated1341 tier1342 presence is checked1343 during create and update1344 when FF is disabled1345 is expected to validate that :tier cannot be empty/falsy1346 is expected not to validate that :tier cannot be empty/falsy1347 validate and sanitize external url1348 source_external_url: nil, expected_error_message: nil1349 sets an external URL or an error1350 source_external_url: "http://example.com", expected_error_message: nil1351 sets an external URL or an error1352 source_external_url: "example.com", expected_error_message: nil1353 sets an external URL or an error1354 source_external_url: "www.example.io", expected_error_message: nil1355 sets an external URL or an error1356 source_external_url: "http://$URL", expected_error_message: nil1357 sets an external URL or an error1358 source_external_url: "http://$(URL)", expected_error_message: nil1359 sets an external URL or an error1360 source_external_url: "custom://example.com", expected_error_message: nil1361 sets an external URL or an error1362 source_external_url: "1.1.1.1", expected_error_message: nil1363 sets an external URL or an error1364 source_external_url: "$BASE_URL/${CI_COMMIT_REF_NAME}", expected_error_message: nil1365 sets an external URL or an error1366 source_external_url: "$ENVIRONMENT_URL", expected_error_message: nil1367 sets an external URL or an error1368 source_external_url: "https://$SUB.$MAIN", expected_error_message: nil1369 sets an external URL or an error1370 source_external_url: "https://$SUB-$REGION.$MAIN", expected_error_message: nil1371 sets an external URL or an error1372 source_external_url: "https://example.com?param={()}", expected_error_message: nil1373 sets an external URL or an error1374 source_external_url: "http://XSS?x=<script>alert(1)</script>", expected_error_message: nil1375 sets an external URL or an error1376 source_external_url: "https://user:${VARIABLE}@example.io", expected_error_message: nil1377 sets an external URL or an error1378 source_external_url: "https://example.com/test?param={data}", expected_error_message: nil1379 sets an external URL or an error1380 source_external_url: "http://${URL}", expected_error_message: "URI is invalid"1381 sets an external URL or an error1382 source_external_url: "https://${URL}.example/test", expected_error_message: "URI is invalid"1383 sets an external URL or an error1384 source_external_url: "http://test${CI_MERGE_REQUEST_IID}.example.com", expected_error_message: "URI is invalid"1385 sets an external URL or an error1386 source_external_url: "javascript:alert(\"hello\")", expected_error_message: "javascript scheme is not allowed"1387 sets an external URL or an error1388 .before_save1389 ensures environment tier when a new object is created1390 ensures environment tier when an existing object is updated1391 does not overwrite the existing environment tier1392 .order_by_last_deployed_at1393 returns the environments in ascending order of having been last deployed1394 returns the environments in descending order of having been last deployed1395 .stopped_review_apps1396 is expected to contain exactly #<Environment id: 29, project_id: 27, name: "review/1", created_at: "2023-02-27 11:40:41.313201349 +0...eview-1-8fxbic", auto_stop_at: nil, auto_delete_at: nil, tier: "development", merge_request_id: nil>1397 current timestamp1398 is expected to contain exactly #<Environment id: 29, project_id: 27, name: "review/1", created_at: "2023-02-27 11:40:41.313201349 +0...eview-1-8fxbic", auto_stop_at: nil, auto_delete_at: nil, tier: "development", merge_request_id: nil> and #<Environment id: 30, project_id: 27, name: "review/2", created_at: "2023-03-30 11:40:41.467964284 +0...eview-2-an02x4", auto_stop_at: nil, auto_delete_at: nil, tier: "development", merge_request_id: nil>1399 scheduled deletion1400 .scheduled_for_deletion1401 is expected to contain exactly #<Environment id: 35, project_id: 28, name: "environment33", created_at: "2023-03-30 11:40:42.3407605...t: nil, auto_delete_at: "2023-03-30 11:40:41.746187336 +0000", tier: "other", merge_request_id: nil>1402 .not_scheduled_for_deletion1403 is expected to contain exactly #<Environment id: 36, project_id: 29, name: "environment34", created_at: "2023-03-30 11:40:42.9546820...slug: "environment34", auto_stop_at: nil, auto_delete_at: nil, tier: "other", merge_request_id: nil>1404 .schedule_to_delete1405 schedules the record for deletion1406 state machine1407 invalidates the cache after a change1408 when environment has auto stop period1409 clears auto stop period when the environment has stopped1410 does not clear auto stop period when the environment has not stopped1411 .for_name_like1412 returns a found name1413 when query is production1414 returns a found name1415 when query is productionA1416 returns empty array1417 when query is empty1418 returns a found name1419 when query is nil1420 raises an error1421 when query is partially matched in the middle of environment name1422 returns empty array1423 when query contains a wildcard character1424 prevents wildcard injection1425 .for_name_like_within_folder1426 returns a found name1427 does not return environment without folder1428 when query is test-app1429 returns a found name1430 when query is test-app-a1431 returns empty array1432 when query is empty string1433 returns only the foldered environments1434 when query is nil1435 raises an error1436 when query is partially matched in the middle of environment name1437 returns empty array1438 when query contains a wildcard character1439 prevents wildcard injection1440 .auto_stoppable1441 when environment is auto-stoppable1442 is expected to eq [#<Environment id: 64, project_id: 48, name: "environment38", created_at: "2023-03-30 11:40:57.761378...: "2023-03-29 11:40:57.753637772 +0000", auto_delete_at: nil, tier: "other", merge_request_id: nil>]1443 when environment is not auto-stoppable1444 is expected to be empty1445 .auto_deletable1446 when environment is auto-deletable1447 is expected to eq [#<Environment id: 66, project_id: 50, name: "environment40", created_at: "2023-03-30 11:40:59.364058...: nil, auto_delete_at: "2023-03-29 11:40:59.355917310 +0000", tier: "other", merge_request_id: nil>]1448 when environment is not auto-deletable1449 is expected to be empty1450 .pluck_names1451 plucks names1452 .for_tier1453 returns the production environment when searching for production tier1454 returns nothing when searching for staging tier1455 .for_type1456 filters by type1457 #guess_tier1458 name: "review/feature", tier: 31459 is expected to eq 31460 name: "review/product", tier: 31461 is expected to eq 31462 name: "DEV", tier: 31463 is expected to eq 31464 name: "development", tier: 31465 is expected to eq 31466 name: "trunk", tier: 31467 is expected to eq 31468 name: "dev", tier: 31469 is expected to eq 31470 name: "review/app", tier: 31471 is expected to eq 31472 name: "PRODUCTION", tier: 01473 is expected to eq 01474 name: "prod", tier: 01475 is expected to eq 01476 name: "prod-east-2", tier: 01477 is expected to eq 01478 name: "us-prod-east", tier: 01479 is expected to eq 01480 name: "fe-production", tier: 01481 is expected to eq 01482 name: "test", tier: 21483 is expected to eq 21484 name: "TEST", tier: 21485 is expected to eq 21486 name: "testing", tier: 21487 is expected to eq 21488 name: "testing-prd", tier: 21489 is expected to eq 21490 name: "acceptance-testing", tier: 21491 is expected to eq 21492 name: "production-test", tier: 21493 is expected to eq 21494 name: "test-production", tier: 21495 is expected to eq 21496 name: "QC", tier: 21497 is expected to eq 21498 name: "qa-env-2", tier: 21499 is expected to eq 21500 name: "gstg", tier: 11501 is expected to eq 11502 name: "staging", tier: 11503 is expected to eq 11504 name: "stage", tier: 11505 is expected to eq 11506 name: "Model", tier: 11507 is expected to eq 11508 name: "MODL", tier: 11509 is expected to eq 11510 name: "Pre-production", tier: 11511 is expected to eq 11512 name: "pre", tier: 11513 is expected to eq 11514 name: "Demo", tier: 11515 is expected to eq 11516 name: "staging", tier: 11517 is expected to eq 11518 name: "pre-prod", tier: 11519 is expected to eq 11520 name: "blue-kit-stage", tier: 11521 is expected to eq 11522 name: "nonprod", tier: 11523 is expected to eq 11524 name: "nonlive", tier: 11525 is expected to eq 11526 name: "non-prod", tier: 11527 is expected to eq 11528 name: "non-live", tier: 11529 is expected to eq 11530 name: "gprd", tier: 01531 is expected to eq 01532 name: "gprd-cny", tier: 01533 is expected to eq 01534 name: "production", tier: 01535 is expected to eq 01536 name: "Production", tier: 01537 is expected to eq 01538 name: "PRODUCTION", tier: 01539 is expected to eq 01540 name: "Production/eu", tier: 01541 is expected to eq 01542 name: "production/eu", tier: 01543 is expected to eq 01544 name: "PRODUCTION/EU", tier: 01545 is expected to eq 01546 name: "productioneu", tier: 01547 is expected to eq 01548 name: "store-produce", tier: 01549 is expected to eq 01550 name: "unproductive", tier: 01551 is expected to eq 01552 name: "production/www.gitlab.com", tier: 01553 is expected to eq 01554 name: "prod", tier: 01555 is expected to eq 01556 name: "PROD", tier: 01557 is expected to eq 01558 name: "Live", tier: 01559 is expected to eq 01560 name: "canary", tier: 41561 is expected to eq 41562 name: "other", tier: 41563 is expected to eq 41564 name: "EXP", tier: 41565 is expected to eq 41566 name: "something-else", tier: 41567 is expected to eq 41568 #expire_etag_cache1569 changes the cached value1570 .with_deployment1571 when deployment has the specified sha1572 is expected to eq [#<Environment id: 74, project_id: 58, name: "environment44", created_at: "2023-03-30 11:41:08.404768...lug: "environment44", auto_stop_at: nil, auto_delete_at: nil, tier: "other", merge_request_id: nil>]1573 with success status filter1574 is expected to be empty1575 with created status filter1576 is expected to contain exactly #<Environment id: 76, project_id: 60, name: "environment46", created_at: "2023-03-30 11:41:10.1378583...slug: "environment46", auto_stop_at: nil, auto_delete_at: nil, tier: "other", merge_request_id: nil>1577 when deployment does not have the specified sha1578 is expected to be empty1579 #folder_name1580 when it is inside a folder1581 returns a top-level folder name1582 when the environment if a top-level item itself1583 returns an environment name1584 #name_without_type1585 when it is inside a folder1586 returns name without folder1587 when the environment if a top-level item itself1588 returns full name1589 #includes_commit?1590 without a last deployment1591 returns false1592 with a last deployment1593 in the same branch1594 returns true1595 not in the same branch1596 returns false1597 #environment_type1598 sets a environment type if name has multiple segments1599 nullifies a type if it's a simple name1600 #stop_actions_available?1601 when no other actions1602 is expected to be falsey1603 when matching action is defined1604 when environment is available1605 is expected to be truthy1606 when environment is stopped1607 is expected to be falsey1608 #stop_with_actions!1609 when no other actions1610 environment is available1611 is expected to contain exactly1612 environment is already stopped1613 is expected to be stopped1614 when matching action is defined1615 when user is not allowed to stop environment1616 raises an exception1617 when user is allowed to stop environment1618 when action did not yet finish1619 returns the same action1620 environment is not stopped1621 if action did finish1622 returns a new action of the same type1623 close action does not raise ActiveRecord::StaleObjectError1624 successfully plays the build even if the build was a stale object1625 when there are more then one stop action for the environment1626 returns the same actions1627 when there are failed builds1628 returns only stop actions from successful builds1629 #stop_actions1630 when there are no deployments and builds1631 returns empty array1632 when there are multiple deployments with actions1633 returns only the stop actions1634 #last_deployment_group1635 when there are no deployments and builds1636 is expected to eq #<ActiveRecord::Relation []>1637 when there are deployments for multiple pipelines1638 returns the successful deployment jobs for the last deployment pipeline1639 recently_updated_on_branch?1640 when last deployment to environment is the most recent one1641 is expected to equal true1642 when last deployment to environment is not the most recent1643 is expected to equal false1644 #reset_auto_stop1645 nullifies the auto_stop_at1646 #actions_for1647 returns a list of actions with matching environment1648 .deployments1649 when there is a deployment record with created status1650 does not return the record1651 when there is a deployment record with running status1652 does not return the record1653 when there is a deployment record with success status1654 returns the record1655 .last_deployment1656 when there is an old deployment record1657 when there is a deployment record with created status1658 returns the previous deployment1659 when there is a deployment record with running status1660 returns the previous deployment1661 when there is a deployment record with failed status1662 returns the previous deployment1663 when there is a deployment record with success status1664 returns the latest successful deployment1665 returns the deployment with the latest finished_at1666 Last deployment relations1667 returns the last success deployment1668 returns the last failed deployment1669 returns the last canceled deployment1670 returns the last created deployment1671 returns the last blocked deployment1672 returns the last running deployment1673 #last_deployable1674 does not join across databases1675 when called1676 #last_deployment_pipeline1677 does not join across databases1678 #last_visible_deployment1679 when there is an old deployment record1680 when there is a deployment record with created status1681 is expected to eq #<Deployment id: 68, iid: 1, project_id: 109, environment_id: 123, ref: "master", tag: false, sha: "b...shed_at: "2023-03-30 11:42:01.243205482 +0000", cluster_id: nil, deployable_id: 89, archived: false>1682 when there is a deployment record with running status1683 is expected to eq #<Deployment id: 71, iid: 2, project_id: 110, environment_id: 124, ref: "master", tag: false, sha: "b...stop: nil, status: "running", finished_at: nil, cluster_id: nil, deployable_id: 92, archived: false>1684 when there is a deployment record with success status1685 is expected to eq #<Deployment id: 73, iid: 2, project_id: 111, environment_id: 125, ref: "master", tag: false, sha: "b...shed_at: "2023-03-30 11:42:03.328412512 +0000", cluster_id: nil, deployable_id: 94, archived: false>1686 when there is a deployment record with failed status1687 is expected to eq #<Deployment id: 75, iid: 2, project_id: 112, environment_id: 126, ref: "master", tag: false, sha: "b...shed_at: "2023-03-30 11:42:04.349875148 +0000", cluster_id: nil, deployable_id: 96, archived: false>1688 when there is a deployment record with canceled status1689 is expected to eq #<Deployment id: 77, iid: 2, project_id: 113, environment_id: 127, ref: "master", tag: false, sha: "b...shed_at: "2023-03-30 11:42:05.321976450 +0000", cluster_id: nil, deployable_id: 98, archived: false>1690 #last_visible_deployable1691 fetches the deployable through the last visible deployment1692 #last_visible_pipeline1693 fetches the pipeline through the last visible deployment1694 #upcoming_deployment1695 when environment has a successful deployment1696 is expected to be nil1697 when environment has a running deployment1698 is expected to eq #<Deployment id: 81, iid: 1, project_id: 118, environment_id: 131, ref: "master", tag: false, sha: "b...top: nil, status: "running", finished_at: nil, cluster_id: nil, deployable_id: 102, archived: false>1699 when environment has a blocked deployment1700 is expected to eq #<Deployment id: 82, iid: 1, project_id: 119, environment_id: 132, ref: "master", tag: false, sha: "b...top: nil, status: "blocked", finished_at: nil, cluster_id: nil, deployable_id: 103, archived: false>1701 #has_terminals?1702 when the environment is available1703 with a deployment service1704 when user configured kubernetes from CI/CD > Clusters1705 with deployment1706 is expected to be truthy1707 without deployments1708 is expected to be falsy1709 without a deployment service1710 is expected to be falsy1711 when the environment is unavailable1712 is expected to be falsy1713 #deployment_platform1714 checks deployment platforms associated with a project1715 when there is a deployment platform for environment1716 finds a deployment platform1717 when there is no deployment platform for environment1718 returns nil1719 #deployment_namespace1720 no deployment platform available1721 is expected to be nil1722 deployment platform is available1723 retrieves a namespace from the cluster1724 #terminals1725 reactive cache configuration1726 does not continue to spawn jobs1727 reactive cache is empty1728 is expected to be nil1729 reactive cache has pod data1730 retrieves terminals from the deployment platform1731 #calculate_reactive_cache1732 overrides default reactive_cache_hard_limit to 10 Mb1733 returns cache data from the deployment platform1734 environment does not have terminals available1735 is expected to be nil1736 project is pending deletion1737 is expected to be nil1738 #has_metrics?1739 when the environment is available1740 with a deployment service1741 and a deployment1742 is expected to be truthy1743 and no deployments1744 is expected to be truthy1745 and the prometheus adapter is not configured1746 is expected to be falsy1747 without a monitoring service1748 is expected to be falsy1749 when sample metrics are enabled1750 with no prometheus adapter configured1751WARNING: An expectation of `:configured?` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/models/environment_spec.rb:1422:in `block (6 levels) in <top (required)>'.1752 is expected to be truthy1753 #has_sample_metrics?1754 when sample metrics are enabled1755 with no prometheus adapter configured1756WARNING: An expectation of `:configured?` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/models/environment_spec.rb:1442:in `block (6 levels) in <top (required)>'.1757 is expected to be truthy1758 with the environment stopped1759 is expected to be falsy1760 when sample metrics are not enabled1761 is expected to be falsy1762 when the environment is unavailable1763 is expected to be falsy1764 #has_running_deployments?1765 return false when no deployments exist1766 when deployment is running on the environment1767 return true1768 #metrics1769 when the environment has metrics1770 returns the metrics from the deployment service1771 and the prometheus client is not present1772 is expected to be nil1773 when the environment does not have metrics1774 is expected to be nil1775 #additional_metrics1776 when the environment has additional metrics1777 returns the additional metrics from the deployment service1778 when time window arguments are provided1779 queries with the expected parameters1780 when the environment does not have metrics1781 is expected to be nil1782 #slug1783 is automatically generated1784 is not regenerated if name changes1785 regenerates the slug if nil1786 #ref_path1787 returns a path that uses the slug and does not have spaces1788 doesn't change when the slug is nil initially1789 #external_url_for1790 when the public path is not known1791 returns nil1792 when the public path is known1793 external_url: "http://example.com", public_path: "file.html", full_url: "http://example.com/file.html"1794 returns the full external URL1795 external_url: "http://example.com/", public_path: "file.html", full_url: "http://example.com/file.html"1796 returns the full external URL1797 external_url: "http://example.com", public_path: "/file.html", full_url: "http://example.com/file.html"1798 returns the full external URL1799 external_url: "http://example.com/", public_path: "/file.html", full_url: "http://example.com/file.html"1800 returns the full external URL1801 external_url: "http://example.com/subpath", public_path: "public/file.html", full_url: "http://example.com/subpath/public/file.html"1802 returns the full external URL1803 external_url: "http://example.com/subpath/", public_path: "public/file.html", full_url: "http://example.com/subpath/public/file.html"1804 returns the full external URL1805 external_url: "http://example.com/subpath", public_path: "/public/file.html", full_url: "http://example.com/subpath/public/file.html"1806 returns the full external URL1807 external_url: "http://example.com/subpath/", public_path: "/public/file.html", full_url: "http://example.com/subpath/public/file.html"1808 returns the full external URL1809 #prometheus_adapter1810 calls prometheus adapter service1811 #knative_services_finder1812 environment has no deployments1813 is expected to be nil1814 environment has a deployment1815 with no cluster associated1816 is expected to be nil1817 with a cluster associated1818 calls the service finder1819 #auto_stop_in1820 when environment will be expired1821 returns when it will expire1822 when environment is not expired1823 is expected to be nil1824 #auto_stop_in=1825 value: "2 days", expected_result: 1728001826 new assignment sets correct auto_stop_in1827 is expected to eq 1728001828 resets older value1829 is expected to eq 1728001830 value: "1 week", expected_result: 6048001831 new assignment sets correct auto_stop_in1832 is expected to eq 6048001833 resets older value1834 is expected to eq 6048001835 value: "2h20min", expected_result: 84001836 new assignment sets correct auto_stop_in1837 is expected to eq 84001838 resets older value1839 is expected to eq 84001840 value: "abcdef", expected_result: ChronicDuration::DurationParseError1841 new assignment sets correct auto_stop_in1842 is expected to raise ChronicDuration::DurationParseError1843 resets older value1844 is expected to raise ChronicDuration::DurationParseError1845 value: "", expected_result: nil1846 new assignment sets correct auto_stop_in1847 is expected to eq nil1848 resets older value1849 is expected to eq nil1850 value: nil, expected_result: nil1851 new assignment sets correct auto_stop_in1852 is expected to eq nil1853 resets older value1854 is expected to eq nil1855 value: "never", expected_result: nil1856 new assignment sets correct auto_stop_in1857 is expected to eq nil1858 resets older value1859 is expected to eq nil1860 .for_id_and_slug1861 is expected not to be nil1862 .find_or_create_by_name1863 finds an existing environment if it exists1864 creates an environment if it does not exist1865 #destroy1866 remove the deployment refs from gitaly1867 .count_by_state1868 returns zero state counts when environments are empty1869 when environments are not empty1870 returns the environments count grouped by state1871 returns the environments count grouped by state with zero value1872 #has_opened_alert?1873 when environment has an triggered alert1874 is expected to equal true1875 when environment has an resolved alert1876 is expected to equal false1877 when environment does not have an alert1878 is expected to equal false1879 #cancel_deployment_jobs!1880 cancels an active deployment job1881 when deployable does not exist1882 does not raise an error1883 #rollout_status1884 environment does not have a deployment board available1885 is expected to be nil1886 cached rollout status is present1887 fetches the rollout status from the deployment platform1888 cached rollout status is not present yet1889 falls back to a loading status1890 #ingresses1891 when rollout status is available1892 fetches ingresses from the deployment platform1893 when rollout status is not available1894 does nothing1895 #patch_ingress1896 when rollout status is available1897 fetches ingresses from the deployment platform1898 when rollout status is not available1899 does nothing1900 #clear_all_caches1901 clears all caches on the environment1902 #should_link_to_merge_requests?1903 when environment is foldered1904 when environment is production tier1905 is expected to eq true1906 when environment is development tier1907 is expected to eq false1908 when environment is unfoldered1909 when environment is production tier1910 is expected to eq true1911 when environment is development tier1912 is expected to eq true1913 #deploy_freezes1914 returns the freeze periods of the associated project1915 caches the freeze periods1916 #deployed_and_updated_before1917 excludes environments with recent deployments1918 includes environments with no deployments1919 excludes environments that have been recently updated with no deployments1920 excludes environments that have been recently updated with stale deployments1921Ci::CreateDownstreamPipelineService#execute1922 when downstream project has not been found1923 does not create a pipeline1924 changes pipeline bridge job status to failed1925 when user can not access downstream project1926 does not create a new pipeline1927 changes status of the bridge build to failed1928 when user does not have access to create pipeline1929 does not create a new pipeline1930 changes status of the bridge build to failed1931 when user can create pipeline in a downstream project1932 creates only one new pipeline1933 creates a new pipeline in a downstream project1934 updates bridge status when downstream pipeline gets processed1935 triggers the upstream pipeline duration calculation1936 behaves like logs downstream pipeline creation1937 logs details1938 when bridge job has already any downstream pipeline1939 logs an error and exits1940 when target ref is not specified1941 is using default branch name1942 when downstream pipeline has yaml configuration error1943 creates only one new pipeline1944 creates a new pipeline in a downstream project1945 updates the bridge status when downstream pipeline gets processed1946 when downstream project is the same as the upstream project1947 detects a circular dependency1948 does not create a new pipeline1949 changes status of the bridge build1950 when "include" is provided1951 updates the bridge job to success1952 behaves like creates a child pipeline1953 creates only one new pipeline1954 creates a child pipeline in the same project1955 updates bridge status when downstream pipeline gets processed1956 propagates parent pipeline settings to the child pipeline1957 behaves like logs downstream pipeline creation1958 logs details1959 when bridge uses "depend" strategy1960 update the bridge job to running status1961 when latest sha for the ref changed in the meantime1962 behaves like creates a child pipeline1963 creates only one new pipeline1964 creates a child pipeline in the same project1965 updates bridge status when downstream pipeline gets processed1966 propagates parent pipeline settings to the child pipeline1967 when the parent is a merge request pipeline1968 propagates the merge request to the child pipeline1969 behaves like creates a child pipeline1970 creates only one new pipeline1971 creates a child pipeline in the same project1972 updates bridge status when downstream pipeline gets processed1973 propagates parent pipeline settings to the child pipeline1974 when upstream pipeline has a parent pipeline1975 creates the pipeline1976 behaves like logs downstream pipeline creation1977 logs details1978 when upstream pipeline has a parent pipeline, which has a parent pipeline1979 does not create a second descendant pipeline1980 when upstream pipeline has two level upstream pipelines from different projects1981 create the pipeline1982 when downstream project does not allow user-defined variables for child pipelines1983 creates a new pipeline allowing variables to be passed downstream1984 passes variables downstream from the bridge1985 when multi-project pipeline runs from child pipelines bridge job1986 creates a new pipeline1987 cyclical dependency detection1988 when pipeline ancestry contains 2 cycles of dependencies1989 behaves like detects cyclical pipelines1990 does not create a new pipeline1991 changes status of the bridge build1992 when source in the ancestry differ1993 behaves like passes cyclical pipeline precondition1994 creates a new pipeline1995 expect bridge build not to be failed1996 when ref in the ancestry differ1997 behaves like passes cyclical pipeline precondition1998 creates a new pipeline1999 expect bridge build not to be failed2000 when only 1 cycle is detected2001 behaves like passes cyclical pipeline precondition2002 creates a new pipeline2003 expect bridge build not to be failed2004 when downstream pipeline creation errors out2005 creates only one new pipeline2006 creates a new pipeline in the downstream project2007 drops the bridge2008 when bridge job status update raises state machine errors2009 returns the error2010 when bridge job has YAML variables defined2011 passes bridge variables to downstream pipeline2012 when pipeline variables are defined2013 does not pass pipeline variables directly downstream2014 when using YAML variables interpolation2015 makes it possible to pass pipeline variable downstream2016 when downstream project does not allow user-defined variables for multi-project pipelines2017 does not create a new pipeline2018 ignores variables passed downstream from the bridge2019 sets errors2020 when configured with bridge job rules2021 that include the bridge job2022 creates the downstream pipeline2023 when user does not have access to push protected branch of downstream project2024 changes status of the bridge build2025 when there is no such branch in downstream project2026 does not create a pipeline and drops the bridge2027 when downstream pipeline has a branch rule and does not satisfy2028 does not create a pipeline and drops the bridge2029 when downstream pipeline has invalid YAML2030 creates the pipeline but drops the bridge2031 when downstream pipeline has workflow rule2032 when passing the required variable2033 creates the pipeline2034 when not passing the required variable2035 does not create the pipeline2036 when a downstream pipeline has sibling pipelines2037 behaves like logs downstream pipeline creation2038 logs details2039 when the pipeline tree is too large2040 when limit was specified by admin2041 does not create a new pipeline2042 drops the trigger job with an explanatory reason2043 when there was no limit specified by admin2044 when pipeline count reaches the default limit of 10002045 does not create a new pipeline2046 drops the trigger job with an explanatory reason2047Member2048 default values2049 is expected to eq 32050 Associations2051 is expected to belong to user required: false2052 is expected to belong to member_namespace required: false2053 is expected to have one member_task2054 Validation2055 is expected to validate that :user cannot be empty/falsy2056 is expected to validate that :source cannot be empty/falsy2057 expires_at2058 is expected not to allow :expires_at to be ‹Wed, 29 Mar 2023›2059 is expected to allow :expires_at to be ‹Fri, 31 Mar 2023›2060 is expected to allow :expires_at to be ‹Thu, 30 Mar 2023›2061 is expected to allow :expires_at to be ‹nil›2062 behaves like an object with email-formatted attributes2063 specifically its :invite_email attribute2064 with a value of 'info@example.com'2065 is valid2066 with a value of 'info+test@example.com'2067 is valid2068 with a value of 'o'reilly@example.com'2069 is valid2070 with a value of 'mailto:test@example.com'2071 is valid2072 with a value of 'lol!'+=?><#$%^&*()@gmail.com'2073 is valid2074 with a value of 'foobar'2075 is invalid2076 with a value of 'test@test@example.com'2077 is invalid2078 when an invite email is provided2079 doesn't require a user2080 requires a valid invite email2081 requires a unique invite email scoped to this source2082 when an invite email is not provided2083 requires a user2084 is valid otherwise2085 with admin signup restrictions2086 when allowed domains for signup is enabled2087 adds an error message when email is not accepted2088 when denylist is enabled2089 adds an error message when email is denied2090 when email restrictions is enabled2091 adds an error message when email is not accepted2092 when a child member inherits its access level2093 requires a higher level2094 is valid with an equal level2095 is valid with a higher level2096 project bots2097 not a member of any group or project2098 is valid2099 already member of a project2100 is not valid2101 Scopes & finders2102 .access_for_user_ids2103 returns the right access levels2104 .in_hierarchy2105 is expected to contain exactly #<GroupMember id: 527, access_level: 50, source_id: 872, source_type: "Namespace", user_id: 495, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 872, member_role_id: nil>, #<ProjectMember id: 529, access_level: 40, source_id: 370, source_type: "Project", user_id: 498, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 877, member_role_id: nil>, #<GroupMember id: 530, access_level: 50, source_id: 881, source_type: "Namespace", user_id: 500, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 881, member_role_id: nil>, and #<ProjectMember id: 532, access_level: 40, source_id: 372, source_type: "Project", user_id: 503, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 886, member_role_id: nil>2106 with scope prefix2107 is expected to contain exactly #<GroupMember id: 533, access_level: 50, source_id: 890, source_type: "Namespace", user_id: 505, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 890, member_role_id: nil>, #<GroupMember id: 536, access_level: 50, source_id: 899, source_type: "Namespace", user_id: 510, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 899, member_role_id: nil>, and #<ProjectMember id: 538, access_level: 40, source_id: 376, source_type: "Project", user_id: 513, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 904, member_role_id: nil>2108 with scope suffix2109 is expected to contain exactly #<GroupMember id: 539, access_level: 50, source_id: 908, source_type: "Namespace", user_id: 515, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 908, member_role_id: nil>, #<GroupMember id: 542, access_level: 50, source_id: 917, source_type: "Namespace", user_id: 520, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 917, member_role_id: nil>, and #<ProjectMember id: 544, access_level: 40, source_id: 380, source_type: "Project", user_id: 523, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 922, member_role_id: nil>2110 .invite2111 is expected not to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2112 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2113 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2114 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2115 is expected not to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2116 .non_invite2117 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2118 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2119 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2120 is expected to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2121 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2122 .non_minimal_access2123 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2124 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2125 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2126 is expected to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2127 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2128 is expected not to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2129 .request2130 is expected not to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2131 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2132 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2133 is expected to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2134 is expected not to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2135 .non_request2136 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2137 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2138 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2139 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2140 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2141 .not_accepted_invitations2142 is expected to include #<ProjectMember id: 546, access_level: 40, source_id: 382, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 928, member_role_id: nil>2143 is expected not to include #<ProjectMember id: 548, access_level: 40, source_id: 383, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 931, member_role_id: nil>2144 .not_accepted_invitations_by_user2145 is expected to contain exactly #<ProjectMember id: 554, access_level: 40, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2146 .not_expired2147 is expected not to include #<GroupMember id: 555, access_level: 50, source_id: 941, source_type: "Namespace", user_id: 535, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 941, member_role_id: nil> and #<GroupMember id: 556, access_level: 50, source_id: 943, source_type: "Namespace", user_id: 536, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 943, member_role_id: nil>2148 is expected to include #<GroupMember id: 557, access_level: 50, source_id: 945, source_type: "Namespace", user_id: 537, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 945, member_role_id: nil> and #<GroupMember id: 558, access_level: 50, source_id: 947, source_type: "Namespace", user_id: 538, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 947, member_role_id: nil>2149 .created_today2150 is expected not to include #<GroupMember id: 560, access_level: 50, source_id: 951, source_type: "Namespace", user_id: 540, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 951, member_role_id: nil>2151 is expected to include #<GroupMember id: 559, access_level: 50, source_id: 949, source_type: "Namespace", user_id: 539, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 949, member_role_id: nil>2152 .last_ten_days_excluding_today2153 is expected to include #<GroupMember id: 562, access_level: 50, source_id: 955, source_type: "Namespace", user_id: 542, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 955, member_role_id: nil>2154 is expected not to include #<GroupMember id: 561, access_level: 50, source_id: 953, source_type: "Namespace", user_id: 541, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 953, member_role_id: nil> and #<GroupMember id: 563, access_level: 50, source_id: 957, source_type: "Namespace", user_id: 543, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 957, member_role_id: nil>2155 .search_invite_email2156 returns only members the matching e-mail2157 .by_access_level2158 by owner2159 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2160 is expected not to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2161 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2162 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2163 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2164 is expected not to include nil2165 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2166 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2167 by maintainer2168 is expected not to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2169 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2170 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2171 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2172 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2173 is expected not to include nil2174 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2175 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2176 by developer2177 is expected not to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2178 is expected not to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2179 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2180 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2181 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2182 is expected not to include nil2183 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2184 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2185 by owner and maintainer2186 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2187 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2188 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2189 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2190 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2191 is expected not to include nil2192 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2193 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2194 by owner, maintainer and developer2195 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2196 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2197 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2198 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2199 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2200 is expected not to include nil2201 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2202 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2203 .developers2204 is expected not to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2205 is expected not to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2206 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2207 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2208 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2209 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2210 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2211 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2212 .owners_and_maintainers2213 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2214 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2215 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2216 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2217 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2218 is expected not to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2219 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2220 .has_access2221 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2222 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2223 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2224 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2225 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2226 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2227 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2228 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2229 .active2230 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2231 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2232 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2233 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2234 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2235 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2236 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2237 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2238 is expected not to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2239 .blocked2240 is expected not to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2241 is expected not to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2242 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2243 is expected not to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2244 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2245 is expected not to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2246 is expected to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2247 is expected to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2248 is expected not to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2249 .active_without_invites_and_requests2250 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2251 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2252 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2253 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2254 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2255 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2256 is expected not to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2257 is expected not to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2258 is expected not to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2259 .without_invites_and_requests2260 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2261 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2262 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2263 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2264 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2265 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2266 is expected to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2267 is expected to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2268 is expected not to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2269 is expected not to include #<GroupMember id: 513, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 480, noti...verride: false, state: 1, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2270 is expected not to include #<ProjectMember id: 515, access_level: 40, source_id: 365, source_type: "Project", user_id: 481, noti...verride: false, state: 1, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2271 .connected_to_user2272 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2273 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2274 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2275 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2276 is expected to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2277 is expected to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2278 is expected to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2279 is expected to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2280 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2281 .authorizable2282 includes the member who has an associated user record,but also having an invite_token2283 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2284 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2285 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2286 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2287 is expected to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2288 is expected to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2289 is expected not to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2290 is expected not to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2291 is expected not to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2292 is expected not to include #<GroupMember id: 513, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 480, noti...verride: false, state: 1, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2293 is expected not to include #<ProjectMember id: 515, access_level: 40, source_id: 365, source_type: "Project", user_id: 481, noti...verride: false, state: 1, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2294 .distinct_on_user_with_max_access_level2295 is expected not to include #<GroupMember id: 567, access_level: 30, source_id: 964, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 964, member_role_id: nil>2296 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2297 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2298 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2299 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2300 is expected to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2301 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2302 is expected to include #<ProjectMember id: 518, access_level: 40, source_id: 365, source_type: "Project", user_id: 485, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2303 is expected to include #<ProjectMember id: 519, access_level: 30, source_id: 365, source_type: "Project", user_id: 486, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2304 is expected to include #<GroupMember id: 526, access_level: 5, source_id: 848, source_type: "Namespace", user_id: 494, notif...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2305 with where conditions2306 is expected to eq [#<GroupMember id: 568, access_level: 50, source_id: 966, source_type: "Namespace", user_id: 547, not...erride: false, state: 0, invite_email_success: true, member_namespace_id: 966, member_role_id: nil>]2307 .with_invited_user_state2308 is expected to include #<GroupMember id: 516, access_level: 50, source_id: 848, source_type: "Namespace", user_id: 483, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 848, member_role_id: nil>2309 is expected to include #<ProjectMember id: 517, access_level: 40, source_id: 365, source_type: "Project", user_id: 484, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2310 is expected to include #<ProjectMember id: 521, access_level: 30, source_id: 365, source_type: "Project", user_id: nil, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2311 is expected to include #<ProjectMember id: 523, access_level: 30, source_id: 365, source_type: "Project", user_id: 491, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2312 is expected to include #<ProjectMember id: 524, access_level: 30, source_id: 365, source_type: "Project", user_id: 492, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2313 is expected to include #<ProjectMember id: 525, access_level: 30, source_id: 365, source_type: "Project", user_id: 493, noti...verride: false, state: 0, invite_email_success: true, member_namespace_id: 847, member_role_id: nil>2314 with invited pending members2315 includes invited user state2316 .active_state2317 includes members with an active state2318 does not include members with an awaiting state2319 .excluding_users2320 excludes members with given user ids2321 Delegate methods2322 is expected to respond to #user_name2323 is expected to respond to #user_email2324 .valid_email?2325 is a valid email format2326 is not a valid email format2327 .filter_by_user_type2328 when the user type is valid2329 returns service accounts2330 when the user type is invalid2331 returns nil2332 #accept_request2333 is expected to be truthy2334 is expected to be truthy2335 clears requested_at2336 saves the approving user2337 calls #after_accept_request2338 #invite?2339 is expected to be invite2340 #request?2341 when requests for project and group are raised2342 behaves like calls notification service and todo service2343 is expected to be request2344 behaves like calls notification service and todo service2345 is expected to be request2346 #pending?2347 is expected to be pending2348 is expected to be pending2349 #hook_prerequisites_met?2350 when the member does not have an associated user2351 returns false2352 when the member has an associated user2353 returns true2354 #accept_invite!2355 resets the invite token2356 sets the invite accepted timestamp2357 sets the user2358 calls #after_accept_invite2359 does not accept the invite if saving a new user fails2360 schedules a TasksToBeDone::CreateWorker task2361 authorized projects2362 successfully completes a refresh2363 #decline_invite!2364 destroys the member2365 calls #after_decline_invite2366 #generate_invite_token2367 sets the invite token2368 generate invite token on create2369 sets the invite token2370 when invite was already accepted2371 does not set invite token2372 .find_by_invite_token2373 finds the member2374 .pluck_user_ids2375 plucks the user ids2376 #send_invitation_reminder2377 an invited group member2378 sends a reminder2379 an invited member without a raw invite token set2380 generates a new token2381 an uninvited member2382 does not send a reminder2383 #invite_to_unknown_user?2384 when user is nil2385 is expected to eq true2386 when user is set2387 is expected to eq false2388 destroying a record2389 refreshes user's authorized projects2390 when after_commit :update_highest_role2391 member_type: :project_member, source_type: :project2392 create member2393 when lease is obtained2394 takes the lease but does not release it2395 schedules a job in the future2396 when lease cannot be obtained2397 only schedules one job2398 when member exists2399 update member2400 when access level was changed2401 when lease is obtained2402 takes the lease but does not release it2403 schedules a job in the future2404 when lease cannot be obtained2405 only schedules one job2406 when access level was not changed2407 does not obtain an exclusive lease2408 destroy member2409 when lease is obtained2410 takes the lease but does not release it2411 schedules a job in the future2412 when lease cannot be obtained2413 only schedules one job2414 member_type: :group_member, source_type: :group2415 create member2416 when lease is obtained2417 takes the lease but does not release it2418 schedules a job in the future2419 when lease cannot be obtained2420 only schedules one job2421 when member exists2422 update member2423 when access level was changed2424 when lease is obtained2425 takes the lease but does not release it2426 schedules a job in the future2427 when lease cannot be obtained2428 only schedules one job2429 when access level was not changed2430 does not obtain an exclusive lease2431 destroy member2432 when lease is obtained2433 takes the lease but does not release it2434 schedules a job in the future2435 when lease cannot be obtained2436 only schedules one job2437 log_invitation_token_cleanup2438 when on gitlab.com2439 doesn't log info for members without invitation or accepted invitation2440 logs error for accepted members with token and creates membership2441 when not on gitlab.com2442 does not log error for accepted members with token and creates membership2443 #set_member_namespace_id2444 on create2445 sets the member_namespace_id2446 .sort_by_attribute2447 sort users in ascending order by access-level2448 sort users in descending order by access-level2449 sorts users in descending order by their creation time2450 sorts users in ascending order by their creation time2451 sort users by recent last activity2452 sort users by oldest last activity2453 when sort by recent_sign_in2454 sorts users by recent sign-in time2455 pushes users who never signed in to the end2456 when sort by oldest_sign_in2457 sorts users by the oldest sign-in time2458 pushes users who never signed in to the end2459Ci::CreatePipelineService2460 job:rules2461 exists:2462 with matches2463 creates two jobs2464 sets when: for all jobs2465 with matches on the second rule2466 includes both jobs2467 sets when: for the created rules job based on the second clause2468 without matches2469 only persists the job without rules2470 sets when: for the created job2471 with allow_failure and exit_codes2472 creates a pipeline2473 assigns job:allow_failure values to the builds2474 removes exit_codes if allow_failure is specified2475 if:2476 variables:2477 when no match2478 does not affect vars2479 when matching to the first rule2480 overrides variables2481 when matching to the second rule2482 overrides variables2483 using calculated workflow var in job rules2484 when matching the first workflow condition2485 uses VAR1 of job rules result2486 with simple if: clauses2487 with matches2488 creates a pipeline with the vanilla and manual jobs2489 assigns job:when values to the builds2490 assigns job:allow_failure values to the builds2491 assigns start_in for delayed jobs2492 with no matches2493 behaves like rules jobs are excluded2494 only persists the job without rules2495 with complex if: clauses2496 matches the first rule2497 changes:2498 and matches2499 creates five jobs2500 sets when: for all jobs2501 sets allow_failure: for negligible job2502 and matches the second rule2503 includes both jobs2504 sets when: for the created rules job based on the second clause2505 and does not match2506 sets when: for the created job2507 behaves like rules jobs are excluded2508 only persists the job without rules2509 with paths and compare_to2510 for jobs rules2511 when there is no such compare_to ref2512 returns an error2513 when the compare_to ref exists2514 when the rule matches2515 creates job1 and job22516 when the rule does not match2517 does not create job12518 for workflow rules2519 when the rule matches2520 creates job12521 when the rule does not match2522 does not create job12523 mixed if: and changes: rules2524 and changes: matches before if2525 creates two jobs2526 sets when: for all jobs2527 sets allow_failure: for all jobs2528 and if: matches after changes2529 includes both jobs2530 sets when: for the created rules job based on the second clause2531 and does not match2532 sets when: for the created job2533 behaves like rules jobs are excluded2534 only persists the job without rules2535 mixed if: and changes: clauses2536 with if matches and changes matches2537 persists all jobs2538 with if matches and no change matches2539 behaves like rules jobs are excluded2540 only persists the job without rules2541 with change matches and no if matches2542 behaves like rules jobs are excluded2543 only persists the job without rules2544 and no matches2545 behaves like rules jobs are excluded2546 only persists the job without rules2547 complex if: allow_failure usages2548 creates a pipeline2549 assigns job:allow_failure values to the builds2550 complex if: allow_failure & when usages2551 creates a pipeline2552 assigns job:allow_failure values to the builds2553 assigns job:when values to the builds2554 deploy freeze period `if:` clause2555 with 2 jobs2556 when outside freeze period2557 creates two jobs2558 when inside freeze period2559 creates one job2560 with 1 job2561 when outside freeze period2562 creates two jobs2563 when inside freeze period2564 does not create the pipeline2565 with when:manual2566 when matching the rules2567 adds the job-with-rules with a when:manual2568 when there is no match to the rule2569 does not add job_with_rules2570 when workflow:rules are used2571 with a single regex-matching if: clause2572 matching the first rule in the list2573 saves a created pipeline2574 matching the last rule in the list2575 saves a created pipeline2576 matching the when:never rule2577 invalidates the pipeline with a workflow rules error2578 matching no rules in the list2579 invalidates the pipeline with a workflow rules error2580 when root variables are used2581 matching the first rule in the list2582 saves a created pipeline2583 with a multiple regex-matching if: clause2584 with partial match2585 saves a created pipeline2586 with complete match2587 invalidates the pipeline with a workflow rules error2588 with job rules2589 where workflow passes and the job fails2590 invalidates the pipeline with an empty jobs error2591 where workflow passes and the job passes2592 saves a created pipeline2593 where workflow fails and the job fails2594 invalidates the pipeline with a workflow rules error2595 where workflow fails and the job passes2596 invalidates the pipeline with a workflow rules error2597 with persisted variables2598 with matches2599 creates a pipeline2600 with no matches2601 does not create a pipeline2602 with pipeline variables2603 with matches2604 creates a pipeline2605 with no matches2606 does not create a pipeline2607 with trigger variables2608 with matches2609 creates a pipeline2610 when a job requires the same variable2611 creates a pipeline2612 with no matches2613 does not create a pipeline2614 when a job requires the same variable2615 does not create a pipeline2616 changes2617 changes is an array2618 behaves like comparing file changes with workflow rules2619 when matches2620 creates the pipeline with a job2621 when does not match2622 creates the pipeline with a job2623 changes:paths is an array2624 behaves like comparing file changes with workflow rules2625 when matches2626 creates the pipeline with a job2627 when does not match2628 creates the pipeline with a job2629 workflow name with rules2630 substitutes variables in pipeline name2631Projects::ForkService2632 when forking a new project2633 fork by user2634 fork project2635 when forker is a guest2636 is expected not to be persisted2637 is expected to eq ["is forbidden"]2638 does not create a fork network2639 behaves like forks count cache refresh2640 flushes the forks count cache of the source project2641 successfully creates project in the user namespace2642 is expected to be persisted2643 is expected to be empty2644 is expected to eq #<User id:718 @user229>2645 is expected to eq #<Namespaces::UserNamespace id:1296 @user231>2646 is expected to be zero2647 is expected to eq "wow such project"2648 is expected to be exists2649 is expected to eq nil2650 is expected to eq "classification-label"2651 is expected to eq nil2652 is expected to eq nil2653 is expected to eq nil2654 after forking the from-project still has its avatar2655 creates a fork network with the new project and the root project set2656 imports the repository of the forked project2657 behaves like forks count cache refresh2658 flushes the forks count cache of the source project2659 creating a fork of a fork2660 sets the root of the network to the root project2661 sets the forked_from_project on the membership2662 when the forked project has higher visibility than the root project2663 successfully creates a fork of the fork with correct visibility2664 behaves like forks count cache refresh2665 flushes the forks count cache of the source project2666 project already exists2667 fails due to validation, not transaction failure2668 repository in legacy storage already exists2669 does not allow creation2670 when repository disk validation is explicitly skipped2671 allows fork project creation2672 CI/CD settings2673 when origin has git depth specified2674 inherits default_git_depth from the origin project2675 when origin does not define git depth2676 the fork has git depth set to 02677 when project has restricted visibility level2678 and only one visibility level is restricted2679 creates fork with lowest level2680 and all visibility levels are restricted2681 creates fork with private visibility levels2682 when forking is disabled2683 fails2684 fork to namespace2685 fork project for group2686 group owner successfully forks project into the group2687 fork project for group when user not owner2688 group developer fails to fork project into the group2689 project already exists in group2690 fails due to validation, not transaction failure2691 when the namespace has a lower visibility level than the project2692 creates the project with the lower visibility level2693 fork with optional attributes2694 sets optional attributes to specified values2695 sets visibility level to private if an unknown visibility is requested2696 sets visibility level to project visibility level if requested visibility is greater2697 sets visibility level to target namespace visibility level if requested visibility is greater2698 copies project features visibility settings to the fork2699 when a project is already forked2700 creates a new poolresository after the project is moved to a new shard2701 when forking with object pools2702 when no pool exists2703 creates a new object pool2704 when a pool already exists2705 joins the object pool2706 when linking fork to an existing project2707 if project is already forked2708 does not create fork relation2709 if project is not forked2710 creates fork relation2711 flushes the forks count cache of the source project2712 if the fork is not allowed2713 does not delete the LFS objects2714 #valid_fork_targets2715 returns whatever finder returns2716 #valid_fork_target?2717 when target is not passed2718 when current user is an admin2719 is expected to be truthy2720 when current_user is not an admin2721 when target namespace is in valid fork targets2722 is expected to be truthy2723 when target namespace is not in valid fork targets2724 is expected to be falsey2725 when target is passed2726 when current user is an admin2727 is expected to be truthy2728 when current user is not an admin2729 when target namespace is in valid fork targets2730 is expected to be truthy2731 when target namespace is not in valid fork targets2732 is expected to be falsey2733Ci::BuildTraceChunk2734 associations2735 is expected to belong to build class_name => Ci::Build required: false inverse_of => trace_chunks2736 behaves like having unique enum values2737 has unique values in "data_store"2738 default attributes2739 is expected to eq "redis_trace_chunks"2740 is expected to eq "fog"2741 chunk creation2742 increments trace operation chunked metric2743 FastDestroyAll2744 Forbid #destroy and #destroy_all2745 does not delete database rows and associted external data2746 .fast_destroy_all2747 deletes database rows and associted external data2748 .use_fast_destroy2749 performs cascading delete with fast_destroy_all2750 CHUNK_SIZE2751 chunk size can not be changed without special care2752 .all_stores2753 returns a correctly ordered array2754 #data2755 data_store: :redis2756 is expected to eq "Sample data in redis"2757 data_store: :redis_trace_chunks2758 is expected to eq "Sample data in redis"2759 when data_store is database2760 is expected to eq "Sample data in database"2761 when data_store is fog2762 is expected to eq "Sample data in fog"2763 returns a new Fog store2764 #data_store2765 default value2766 is expected to eq "redis_trace_chunks"2767 #get_store_class2768 raises an error2769 data_store: :redis, expected_store: Ci::BuildTraceChunks::Redis2770 with store2771 returns an instance of the right class2772 data_store: :database, expected_store: Ci::BuildTraceChunks::Database2773 with store2774 returns an instance of the right class2775 data_store: :fog, expected_store: Ci::BuildTraceChunks::Fog2776 with store2777 returns an instance of the right class2778 data_store: :redis_trace_chunks, expected_store: Ci::BuildTraceChunks::RedisTraceChunks2779 with store2780 returns an instance of the right class2781 #append2782 data_store: :redis2783 when there are no data2784 has no data2785 does not read data when appending2786 behaves like Appending correctly2787 when offset is negative2788 is expected to raise Exception with "Offset is out of range"2789 when offset is bigger than data size2790 is expected to raise Exception with "Offset is out of range"2791 when new data overflows chunk size2792 is expected to raise Exception with "Chunk size overflow"2793 when offset is EOF2794 appends2795 when the other process is appending2796 raise an error2797 when new_data is nil2798 raises an error2799 when new_data is empty2800 does not append2801 does not execute UPDATE2802 when offset is middle of datasize2803 appends2804 behaves like Scheduling sidekiq worker to flush data to persist store2805 when new data fulfilled chunk size2806 schedules trace chunk flush worker2807 migrates data to object storage2808 when there are some data2809 has data2810 behaves like Appending correctly2811 when offset is negative2812 is expected to raise Exception with "Offset is out of range"2813 when offset is bigger than data size2814 is expected to raise Exception with "Offset is out of range"2815 when new data overflows chunk size2816 is expected to raise Exception with "Chunk size overflow"2817 when offset is EOF2818 appends2819 when the other process is appending2820 raise an error2821 when new_data is nil2822 raises an error2823 when new_data is empty2824 does not append2825 does not execute UPDATE2826 when offset is middle of datasize2827 appends2828 behaves like Scheduling sidekiq worker to flush data to persist store2829 when new data fulfilled chunk size2830 schedules trace chunk flush worker2831 migrates data to object storage2832 data_store: :redis_trace_chunks2833 when there are no data2834 has no data2835 does not read data when appending2836 behaves like Appending correctly2837 when offset is negative2838 is expected to raise Exception with "Offset is out of range"2839 when offset is bigger than data size2840 is expected to raise Exception with "Offset is out of range"2841 when new data overflows chunk size2842 is expected to raise Exception with "Chunk size overflow"2843 when offset is EOF2844 appends2845 when the other process is appending2846 raise an error2847 when new_data is nil2848 raises an error2849 when new_data is empty2850 does not append2851 does not execute UPDATE2852 when offset is middle of datasize2853 appends2854 behaves like Scheduling sidekiq worker to flush data to persist store2855 when new data fulfilled chunk size2856 schedules trace chunk flush worker2857 migrates data to object storage2858 when there are some data2859 has data2860 behaves like Appending correctly2861 when offset is negative2862 is expected to raise Exception with "Offset is out of range"2863 when offset is bigger than data size2864 is expected to raise Exception with "Offset is out of range"2865 when new data overflows chunk size2866 is expected to raise Exception with "Chunk size overflow"2867 when offset is EOF2868 appends2869 when the other process is appending2870 raise an error2871 when new_data is nil2872 raises an error2873 when new_data is empty2874 does not append2875 does not execute UPDATE2876 when offset is middle of datasize2877 appends2878 behaves like Scheduling sidekiq worker to flush data to persist store2879 when new data fulfilled chunk size2880 schedules trace chunk flush worker2881 migrates data to object storage2882 when data_store is database2883 when there are no data2884 has no data2885 behaves like Appending correctly2886 when offset is negative2887 is expected to raise Exception with "Offset is out of range"2888 when offset is bigger than data size2889 is expected to raise Exception with "Offset is out of range"2890 when new data overflows chunk size2891 is expected to raise Exception with "Chunk size overflow"2892 when offset is EOF2893 appends2894 when the other process is appending2895 raise an error2896 when new_data is nil2897 raises an error2898 when new_data is empty2899 does not append2900 does not execute UPDATE2901 when offset is middle of datasize2902 appends2903 behaves like Scheduling no sidekiq worker2904 when new data fulfilled chunk size2905 does not schedule trace chunk flush worker2906 does not migrate data to object storage2907 when there are some data2908 has data2909 behaves like Appending correctly2910 when offset is negative2911 is expected to raise Exception with "Offset is out of range"2912 when offset is bigger than data size2913 is expected to raise Exception with "Offset is out of range"2914 when new data overflows chunk size2915 is expected to raise Exception with "Chunk size overflow"2916 when offset is EOF2917 appends2918 when the other process is appending2919 raise an error2920 when new_data is nil2921 raises an error2922 when new_data is empty2923 does not append2924 does not execute UPDATE2925 when offset is middle of datasize2926 appends2927 behaves like Scheduling no sidekiq worker2928 when new data fulfilled chunk size2929 does not schedule trace chunk flush worker2930 does not migrate data to object storage2931 when data_store is fog2932 when there are no data2933 has no data2934 behaves like Appending correctly2935 when offset is negative2936 is expected to raise Exception with "Offset is out of range"2937 when offset is bigger than data size2938 is expected to raise Exception with "Offset is out of range"2939 when new data overflows chunk size2940 is expected to raise Exception with "Chunk size overflow"2941 when offset is EOF2942 appends2943 when the other process is appending2944 raise an error2945 when new_data is nil2946 raises an error2947 when new_data is empty2948 does not append2949 does not execute UPDATE2950 when offset is middle of datasize2951 appends2952 behaves like Scheduling no sidekiq worker2953 when new data fulfilled chunk size2954 does not schedule trace chunk flush worker2955 does not migrate data to object storage2956 when there are some data2957 has data2958 behaves like Appending correctly2959 when offset is negative2960 is expected to raise Exception with "Offset is out of range"2961 when offset is bigger than data size2962 is expected to raise Exception with "Offset is out of range"2963 when new data overflows chunk size2964 is expected to raise Exception with "Chunk size overflow"2965 when offset is EOF2966 appends2967 when the other process is appending2968 raise an error2969 when new_data is nil2970 raises an error2971 when new_data is empty2972 does not append2973 does not execute UPDATE2974 when offset is middle of datasize2975 appends2976 behaves like Scheduling no sidekiq worker2977 when new data fulfilled chunk size2978 does not schedule trace chunk flush worker2979 does not migrate data to object storage2980 append metrics2981 increments trace operation appended metric2982 #truncate2983 data_store: :redis2984 behaves like truncates2985 when offset is negative2986 is expected to raise Exception with "Offset is out of range"2987 when offset is bigger than data size2988 is expected to raise Exception with "Offset is out of range"2989 when offset is 102990 truncates2991 data_store: :redis_trace_chunks2992 behaves like truncates2993 when offset is negative2994 is expected to raise Exception with "Offset is out of range"2995 when offset is bigger than data size2996 is expected to raise Exception with "Offset is out of range"2997 when offset is 102998 truncates2999 when data_store is database3000 behaves like truncates3001 when offset is negative3002 is expected to raise Exception with "Offset is out of range"3003 when offset is bigger than data size3004 is expected to raise Exception with "Offset is out of range"3005 when offset is 103006 truncates3007 when data_store is fog3008 behaves like truncates3009 when offset is negative3010 is expected to raise Exception with "Offset is out of range"3011 when offset is bigger than data size3012 is expected to raise Exception with "Offset is out of range"3013 when offset is 103014 truncates3015 #size3016 data_store: :redis3017 when data exists3018 is expected to eq 203019 when data exists3020 is expected to eq 03021 data_store: :redis_trace_chunks3022 when data exists3023 is expected to eq 203024 when data exists3025 is expected to eq 03026 when data_store is database3027 when data exists3028 is expected to eq 233029 when data does not exist3030 is expected to eq 03031 when data_store is fog3032 when data exists3033 is expected to eq 183034 when data does not exist3035 is expected to eq 03036 #persist_data!3037 data_store: :redis, redis_class: Ci::BuildTraceChunks::Redis3038 when data exists3039 when data size reached CHUNK_SIZE3040 persists the data3041 calculates CRC32 checksum3042 when data size has not reached CHUNK_SIZE3043 does not persist the data and the orignal data is intact3044 when chunk is a final one3045 persists the data3046 when the chunk has been modifed by a different worker3047 reloads the chunk before migration3048 verifies the operation using optimistic locking3049 does not allow flushing unpersisted chunk3050 when the chunk is being locked by a different worker3051 increments stalled chunk trace metric3052 when data does not exist3053 does not persist3054 data_store: :redis_trace_chunks, redis_class: Ci::BuildTraceChunks::RedisTraceChunks3055 when data exists3056 when data size reached CHUNK_SIZE3057 persists the data3058 calculates CRC32 checksum3059 when data size has not reached CHUNK_SIZE3060 does not persist the data and the orignal data is intact3061 when chunk is a final one3062 persists the data3063 when the chunk has been modifed by a different worker3064 reloads the chunk before migration3065 verifies the operation using optimistic locking3066 does not allow flushing unpersisted chunk3067 when the chunk is being locked by a different worker3068 increments stalled chunk trace metric3069 when data does not exist3070 does not persist3071 when data_store is database3072 when data exists3073 when data size reached CHUNK_SIZE3074 persists the data3075 when data size has not reached CHUNK_SIZE3076 does not persist the data and the orignal data is intact3077 when chunk is a final one3078 persists the data3079 when data does not exist3080 does not persist3081 when data_store is fog3082 when data exists3083 when data size reached CHUNK_SIZE3084 does not change data store3085 when data size has not reached CHUNK_SIZE3086 does not raise error3087 final?3088 when build pending state exists3089 when chunks is not the last one3090 is not a final chunk3091 when chunks is the last one3092 is a final chunk3093 when build pending state does not exist3094 when chunks is not the last one3095 is not a final chunk3096 when chunks is the last one3097 is not a final chunk3098 deletes data in redis after a parent record destroyed3099 when traces are archived3100 behaves like deletes all build_trace_chunk and data in redis3101 deletes all build_trace_chunk and data in redis3102 when project is destroyed3103 behaves like deletes all build_trace_chunk and data in redis3104 deletes all build_trace_chunk and data in redis3105 comparable build trace chunks3106 #<=>3107 when chunks are associated with different builds3108 returns nil3109 when there are two chunks with different indexes3110 indicates the the first one is greater than then second3111 when there are two chunks with the same index within the same build3112 indicates the these are equal3113 #==3114 when chunks have the same index3115 indicates that the chunks are equal3116 when chunks have different indexes3117 indicates that the chunks are not equal3118 when chunks are associated with different builds3119 indicates that the chunks are not equal3120 #live?3121 data_store: :redis, value: true3122 is expected to eq true3123 data_store: :redis_trace_chunks, value: true3124 is expected to eq true3125 data_store: :database, value: false3126 is expected to eq false3127 data_store: :fog, value: false3128 is expected to eq false3129 #flushed?3130 data_store: :redis, value: false3131 is expected to eq false3132 data_store: :redis_trace_chunks, value: false3133 is expected to eq false3134 data_store: :database, value: true3135 is expected to eq true3136 data_store: :fog, value: true3137 is expected to eq true3138 partitioning3139 with build3140 sets partition_id to the current partition value3141 when it is already set3142 does not change the partition_id value3143 without build3144 is expected to validate that :partition_id cannot be empty/falsy3145 does not change the partition_id value3146Commit3147 modules3148 is expected to includes the Mentionable module3149 is expected to includes the Participable module3150 is expected to includes the Referable module3151 is expected to includes the StaticModel module3152 is expected to includes the Presentable module3153 .lazy3154 with project3155 behaves like .lazy checks3156 when the commits are found3157 batches requests for commits3158 maintains ordering3159 does not attempt to replace methods via BatchLoader3160 when not found3161 returns nil as commit3162 with personal snippet3163 behaves like .lazy checks3164 when the commits are found3165 batches requests for commits3166 maintains ordering3167 does not attempt to replace methods via BatchLoader3168 when not found3169 returns nil as commit3170 with project snippet3171 behaves like .lazy checks3172 when the commits are found3173 batches requests for commits3174 maintains ordering3175 does not attempt to replace methods via BatchLoader3176 when not found3177 returns nil as commit3178 .build_from_sidekiq_hash3179 returns a Commit3180 parses date strings into Time instances3181 #diff_refs3182 is equal to itself3183 from a factory3184 is equal to itself3185 #author3186 looks up the author in a case-insensitive way3187 caches the author3188 with a user with an unconfirmed e-mail3189 returns no user3190 using eager loading3191 executes only two SQL queries3192 preloads the authors for Commits matching a user's primary Email3193 preloads the authors for Commits using a User's alternative Email3194 preloads the authors for Commits using a User's private commit Email3195 preloads the authors for Commits using a User's outdated private commit Email3196 sets the author to Nil if an author could not be found for a Commit3197 does not execute SQL queries once the authors are preloaded3198 #committer3199 when committer_email is the user's primary email3200 when the user email is confirmed3201 returns the user3202 when the user email is unconfirmed3203 returns the user according to confirmed argument3204 when committer_email is the user's secondary email3205 when the user email is confirmed3206 returns the user3207 when the user email is unconfirmed3208 does not return the user3209 #to_reference3210 with project3211 returns a String reference to the object3212 supports a cross-project reference3213 with personal snippet3214 returns a String reference to the object3215 supports a cross-snippet reference3216 with project snippet3217 returns a String reference to the object3218 supports a cross-snippet project reference3219 .reference_valid?3220 ref: "1234567", result: true3221 is expected to eq true3222 ref: "123456", result: false3223 is expected to eq false3224 ref: "1", result: false3225 is expected to eq false3226 ref: "0000000000000000000000000000000000000000", result: true3227 is expected to eq true3228 ref: "c1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: true3229 is expected to eq true3230 ref: "H1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: false3231 is expected to eq false3232 ref: nil, result: false3233 is expected to eq false3234 #reference_link_text3235 with project3236 returns a String reference to the object3237 supports a cross-project reference3238 with personal snippet3239 returns a String reference to the object3240 supports a cross-snippet reference3241 with project snippet3242 returns a String reference to the object3243 supports a cross-snippet project reference3244 #title3245 returns no_commit_message when safe_message is blank3246 truncates a message without a newline at natural break to 80 characters3247 truncates a message with a newline before 80 characters at the newline3248 does not truncates a message with a newline after 80 but less 100 characters3249 #full_title3250 returns no_commit_message when safe_message is blank3251 returns entire message if there is no newline3252 returns first line of message if there is a newLine3253 truncates html representation if more than 1KiB3254 description3255 returns no_commit_message when safe_message is blank3256 returns description of commit message if title less than 100 characters3257 returns full commit message if commit title more than 100 characters3258 truncates html representation if more than 1Mib3259 delegation3260 is expected to respond to #message3261 is expected to respond to #authored_date3262 is expected to respond to #committed_date3263 is expected to respond to #committer_email3264 is expected to respond to #author_email3265 is expected to respond to #parents3266 is expected to respond to #date3267 is expected to respond to #diffs3268 is expected to respond to #id3269 behaves like a mentionable3270 generates a descriptive back-reference3271 extracts references from its reference property3272 creates cross-reference notes3273 uses the CachedMarkdownField cache instead of the Mentionable cache3274 when there are cached markdown fields3275 sends in cached markdown fields when appropriate3276 #hook_attrs3277 is expected to be a kind of Hash3278 is expected to include "adds bar folder and branch-test text file to check Repository merged_to_root_ref method"3279 is expected to eq "2016-09-27T14:37:46+00:00"3280 is expected to contain exactly "bar/branch-test.txt"3281 is expected to eq []3282 is expected to eq []3283 #cherry_pick_message3284 of a regular commit3285 is expected to include "\n\n(cherry picked from commit 88790590ed1337ab189bccaa355f068481c90bec)"3286 of a merge commit3287 that is found3288 is expected to include "\n(cherry picked from commit 01cc2ad122fd3bdcb8a2a5df00758db204d42488)\n\n467dc98f Add new 'videos' directory\n88790590 Upload new video file"3289 that is existing but not found3290 does not include details of the merged commits3291 #reverts_commit?3292 is expected to be falsy3293 commit has no description3294 is expected to be falsy3295 another_commit's description does not revert commit3296 is expected to be falsy3297 another_commit's description reverts commit3298 is expected to be truthy3299 another_commit's description reverts merged merge request3300 is expected to be truthy3301 #participants3302 includes the commit author3303 includes the committer3304 includes the authors of the commit notes3305 #uri_type with Gitaly enabled3306 behaves like #uri_type3307 returns the URI type at the given path3308 returns nil if the path doesn't exists3309 is nil if the path is nil or empty3310 #uri_type with Rugged enabled3311 calls out to the Rugged implementation3312 behaves like #uri_type3313 returns the URI type at the given path3314 returns nil if the path doesn't exists3315 is nil if the path is nil or empty3316 .diff_max_files3317 returns the current settings3318 .diff_max_lines3319 returns the current settings3320 .diff_safe_max_files3321 returns the commit diff max divided by the limit factor of 103322 .diff_safe_max_lines3323 returns the commit diff max divided by the limit factor of 103324 .from_hash3325 with project3326 behaves like returns Commit3327 returns a Commit3328 wraps a Gitlab::Git::Commit3329 stores the correct commit fields3330 with personal snippet3331 behaves like returns Commit3332 returns a Commit3333 wraps a Gitlab::Git::Commit3334 stores the correct commit fields3335 with project snippet3336 behaves like returns Commit3337 returns a Commit3338 wraps a Gitlab::Git::Commit3339 stores the correct commit fields3340 #draft?3341 detects the 'squash! ' prefix3342 detects the 'fixup! ' prefix3343 detects the 'draft: ' prefix3344 detects the '[Draft] ' prefix3345 detects the '(draft) ' prefix3346 detects the 'Draft: ' prefix3347 does not detect a commit just saying 'draft' as draft? == true3348 doesn't detect 'FIXUP!' at the start of the title as a draft3349 doesn't detect 'Draft - ' at the start of the title as a draft3350 doesn't detect 'Wipeout' at the start of the title as a draft3351 doesn't detect 'WIP: ' at the start of the title as a draft3352 doesn't detect '[WIP] ' at the start of the title as a draft3353 doesn't detect 'wip: ' at the start of the title as a draft3354 .valid_hash?3355 checks hash contents3356 checks hash length3357 signed commits3358 returns signature_type properly3359 returns has_signature? properly3360 #has_been_reverted?3361 returns true if the commit has been reverted3362 returns false if the commit has not been reverted3363Gitlab::SearchResults3364 does not list issues on private projects3365 does not list merge requests on projects with limited access3366 as a user with access3367 does not include merge requests from source projects3368 #objects3369 returns without_counts collection by default3370 returns with counts collection when requested3371 returns without counts collection when requested3372 uses page and per_page to paginate results3373 #formatted_count3374 scope: "projects", count_method: :limited_projects_count, expected: "99+"3375 returns the expected formatted count3376 scope: "issues", count_method: :limited_issues_count, expected: "99+"3377 returns the expected formatted count3378 scope: "merge_requests", count_method: :limited_merge_requests_count, expected: "99+"3379 returns the expected formatted count3380 scope: "milestones", count_method: :limited_milestones_count, expected: "99+"3381 returns the expected formatted count3382 scope: "users", count_method: :limited_users_count, expected: "99+"3383 returns the expected formatted count3384 scope: "unknown", count_method: nil, expected: nil3385 returns the expected formatted count3386 #highlight_map3387 scope: "projects", expected: {}3388 returns the expected highlight_map3389 scope: "issues", expected: {}3390 returns the expected highlight_map3391 scope: "merge_requests", expected: {}3392 returns the expected highlight_map3393 scope: "milestones", expected: {}3394 returns the expected highlight_map3395 scope: "users", expected: {}3396 returns the expected highlight_map3397 scope: "unknown", expected: {}3398 returns the expected highlight_map3399 #formatted_limited_count3400 count: 23, expected: "23"3401 returns the expected formatted limited count3402 count: 99, expected: "99"3403 returns the expected formatted limited count3404 count: 100, expected: "99+"3405 returns the expected formatted limited count3406 count: 1234, expected: "99+"3407 returns the expected formatted limited count3408 #aggregations3409 scope: "projects"3410 returns an empty array3411 scope: "issues"3412 returns an empty array3413 scope: "merge_requests"3414 returns an empty array3415 scope: "blobs"3416 returns an empty array3417 scope: "commits"3418 returns an empty array3419 scope: "wiki_blobs"3420 returns an empty array3421 scope: "epics"3422 returns an empty array3423 scope: "milestones"3424 returns an empty array3425 scope: "users"3426 returns an empty array3427 scope: "unknown"3428 returns an empty array3429 when count_limit is lower than total amount3430 #limited_projects_count3431 returns the limited amount of projects3432 #limited_merge_requests_count3433 returns the limited amount of merge requests3434 #limited_milestones_count3435 returns the limited amount of milestones3436 #limited_issues_count3437 runs single SQL query to get the limited amount of issues3438 when count_limit is higher than total amount3439 #limited_issues_count3440 runs multiple queries to get the limited amount of issues3441 #merge_requests3442 includes project filter by default3443 skips project filter if default project context is used3444 filtering3445 state not provided3446 returns opened and closed results3447 all state3448 returns opened and closed results3449 closed state3450 returns only closed results3451 opened state3452 returns only opened results3453 unsupported state3454 returns only opened results3455 ordering3456 sort: created_desc3457 sorts results by created_at3458 sort: created_asc3459 sorts results by created_at3460 sort: updated_desc3461 sorts results by updated_desc3462 sort: updated_asc3463 sorts results by updated_asc3464 #issues3465 includes project filter by default3466 skips project filter if default project context is used3467 filtering3468 state not provided3469 returns opened and closed results3470 all state3471 returns opened and closed results3472 closed state3473 returns only closed results3474 opened state3475 returns only opened results3476 unsupported state3477 returns only opened results3478 filter not provided (all behavior)3479 returns confidential and not confidential results3480 confidential filter3481 returns only confidential results3482 not confidential filter3483 returns not confidential results3484 ordering3485 sort: created_desc3486 sorts results by created_at3487 sort: created_asc3488 sorts results by created_at3489 sort: updated_desc3490 sorts results by updated_desc3491 sort: updated_asc3492 sorts results by updated_asc3493 sort: popularity_desc3494 sorts results by upvotes3495 sort: popularity_asc3496 sorts results by created_at3497 #users3498 does not call the UsersFinder when the current_user is not allowed to read users list3499 calls the UsersFinder3500 confidential issues3501 does not list confidential issues for non project members3502 does not list confidential issues for project members with guest role3503 lists confidential issues for author3504 lists confidential issues for assignee3505 lists confidential issues for project members3506 with admin user3507 when admin mode enabled3508 lists all issues3509 when admin mode disabled3510 does not list confidential issues3511 milestones3512 returns correct set of milestones3513Gitlab::ImportExport::Project::RelationTreeRestorer3514 with legacy reader3515 behaves like import project successfully3516 imported project3517 has the project attributes and relations3518 with logging of relations creation3519 logs top-level relation creation3520 with ndjson reader3521 behaves like import project successfully3522 imported project3523 has the project attributes and relations3524 when inside a group3525 behaves like import project successfully3526 imported project3527 has the project attributes and relations3528 with invalid relations3529 logs the invalid relation and its errors3530Groups::GroupMembersHelper3531 #group_members_app_data3532 returns expected json3533 group members3534 behaves like members.json3535 returns `members` property that matches json schema3536 sets `member_path` property3537 with user status set3538 behaves like members.json3539 returns `members` property that matches json schema3540 sets `member_path` property3541 invited group members3542 behaves like members.json3543 returns `members` property that matches json schema3544 sets `member_path` property3545 access requests3546 behaves like members.json3547 returns `members` property that matches json schema3548 sets `member_path` property3549 group links3550 sets `group.members` property that matches json schema3551 sets `member_path` property3552 inherited3553 include_relations: [:inherited, :direct], result: lazy { [group_group_link, sub_group_group_link].map(&:id) }3554 returns correct group links3555 include_relations: [:inherited], result: lazy { [group_group_link].map(&:id) }3556 returns correct group links3557 include_relations: [:direct], result: lazy { [sub_group_group_link].map(&:id) }3558 returns correct group links3559 when pagination is not available3560 sets `pagination` attribute to expected json3561 when pagination is available3562 sets `pagination` attribute to expected json3563 #group_member_header_subtext3564 contains expected text with group name3565Gitlab::Auth::AuthFinders3566 #find_user_from_bearer_token3567 when the token is passed as an oauth token3568 behaves like find user from job token3569 when route is allowed to be authenticated3570 for an invalid token3571 returns an Unauthorized exception3572 with a running job3573 return user3574 with a job that is not running3575 returns an Unauthorized exception3576 when route is not allowed to be authenticated3577 with a running job3578 returns an Unauthorized exception3579 with oauth token3580 is expected to eq #<User id:1076 @user477>3581 with a personal access token3582 is expected to eq #<User id:1076 @user477>3583 #find_user_from_warden3584 with CSRF token3585 with invalid credentials3586 returns nil3587 with valid credentials3588 returns the user3589 without CSRF token3590 returns nil3591 #find_user_from_feed_token3592 when the request format is atom3593 when feed_token param is provided3594 returns user if valid feed_token3595 returns nil if valid feed_token and disabled3596 returns nil if feed_token is blank3597 returns exception if invalid feed_token3598 when rss_token param is provided3599 returns user if valid rss_token3600 returns nil if rss_token is blank3601 returns exception if invalid rss_token3602 when the request format is not atom3603 returns nil3604 when the request format is empty3605 the method call does not modify the original value3606 #find_user_from_static_object_token3607 when request format is archive3608 behaves like static object request3609 when token header param is present3610 when token is correct3611 returns the user3612 when token is incorrect3613 returns the user3614 when token query param is present3615 when token is correct3616 returns the user3617 when token is incorrect3618 returns the user3619 when request format is blob3620 behaves like static object request3621 when token header param is present3622 when token is correct3623 returns the user3624 when token is incorrect3625 returns the user3626 when token query param is present3627 when token is correct3628 returns the user3629 when token is incorrect3630 returns the user3631 when request format is not archive nor blob3632 returns nil3633 #deploy_token_from_request3634 is expected to be nil3635 with deploy token headers3636 with valid deploy token3637 is expected to eq #<DeployToken id: 5, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-04...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>3638 behaves like an unauthenticated route3639 when route is not allowed to use deploy_tokens3640 is expected to be nil3641 with incorrect token3642 is expected to be nil3643 with oauth headers3644 with valid token3645 is expected to eq #<DeployToken id: 5, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-04...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>3646 behaves like an unauthenticated route3647 when route is not allowed to use deploy_tokens3648 is expected to be nil3649 with invalid token3650 is expected to be nil3651 with basic auth headers3652 is expected to eq #<DeployToken id: 5, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-04...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>3653 behaves like an unauthenticated route3654 when route is not allowed to use deploy_tokens3655 is expected to be nil3656 with incorrect token3657 is expected to be nil3658 when the the deploy token is restricted with external_authorization3659 is expected to be nil3660 #find_user_from_access_token3661 returns nil if no access_token present3662 when validate_access_token! returns valid3663 returns user3664 returns exception if token has no user3665 with OAuth headers3666 with valid personal access token3667 returns user3668 with invalid personal_access_token3669 returns exception3670 when using a non-prefixed access token3671 returns user3672 #find_user_from_web_access_token3673 returns exception if token has no user3674 returns the user for RSS requests3675 returns the user for ICS requests3676 returns the user for ARCHIVE requests3677 returns the user for DOWNLOAD requests3678 no feed, API, archive or download requests3679 returns nil if the request is not RSS3680 returns nil if the request is not ICS3681 returns nil if the request is not API3682 returns nil if the request is not ARCHIVE3683 returns nil if the request is not DOWNLOAD3684 for API requests3685 returns the user3686 returns nil if URL does not start with /api/3687 when the token has read_api scope3688 raises InsufficientScopeError by default3689 finds the user when the read_api scope is passed3690 when relative_url_root is set3691 returns the user3692 #find_personal_access_token3693 returns nil if no personal_access_token3694 returns exception if invalid personal_access_token3695 passed as header3696 returns token if valid personal_access_token3697 passed as param3698 returns token if valid personal_access_token3699 #find_oauth_access_token3700 returns nil if no oauth_access_token3701 passed as header3702 returns token if valid oauth_access_token3703 passed as param3704 returns user if valid oauth_access_token3705 with invalid token3706 returns exception if invalid oauth_access_token3707 #find_personal_access_token_from_http_basic_auth3708 access token is valid3709 finds the token from basic auth3710 access token is not valid3711 returns nil3712 route_setting is not set3713 returns nil3714 route_setting is not correct3715 returns nil3716 #find_user_from_basic_auth_job3717 when the request does not have AUTHORIZATION header3718 is expected to be nil3719 with wrong credentials3720 returns nil without user and password3721 returns nil without password3722 returns nil without user3723 returns nil without CI username3724 with CI username3725 behaves like find user from job token3726 when route is allowed to be authenticated3727 for an invalid token3728 returns an Unauthorized exception3729 with a running job3730 return user3731 with a job that is not running3732 returns an Unauthorized exception3733 when route is not allowed to be authenticated3734 with a running job3735 returns the user3736 #find_user_from_basic_auth_password3737 returns nil without user and password3738 returns nil without password3739 returns nil without user3740 returns nil with CI username3741 returns nil with wrong password3742 returns user with correct credentials3743 when the request does not have AUTHORIZATION header3744 is expected to be nil3745 #find_user_from_lfs_token3746 returns nil without user and token3747 returns nil without token3748 returns nil without user3749 returns nil with wrong token3750 returns user with correct user and correct token3751 returns nil with wrong user and correct token3752 when the request does not have AUTHORIZATION header3753 is expected to be nil3754 #find_user_from_personal_access_token3755 returns nil without access token3756 returns user with correct access token3757 returns exception if access token has no user3758 #validate_access_token!3759 returns nil if no access_token present3760 with a job token3761 does not raise an error3762 token is not valid3763 returns Gitlab::Auth::ExpiredError if token expired3764 returns Gitlab::Auth::RevokedError if token revoked3765 returns Gitlab::Auth::InsufficientScopeError if invalid token scope3766 with impersonation token3767 when impersonation is disabled3768 returns Gitlab::Auth::ImpersonationDisabled3769 #find_user_from_job_token3770 when route setting allows job_token3771 when the token is in the headers3772 behaves like find user from job token3773 when route is allowed to be authenticated3774 for an invalid token3775 returns an Unauthorized exception3776 with a running job3777 return user3778 with a job that is not running3779 returns an Unauthorized exception3780 when route is not allowed to be authenticated3781 with a running job3782 returns nil3783 when the token is in the job_token param3784 behaves like find user from job token3785 when route is allowed to be authenticated3786 for an invalid token3787 returns an Unauthorized exception3788 with a running job3789 return user3790 with a job that is not running3791 returns an Unauthorized exception3792 when route is not allowed to be authenticated3793 with a running job3794 returns nil3795 when the token is in the token param3796 behaves like find user from job token3797 when route is allowed to be authenticated3798 for an invalid token3799 returns an Unauthorized exception3800 with a running job3801 return user3802 with a job that is not running3803 returns an Unauthorized exception3804 when route is not allowed to be authenticated3805 with a running job3806 returns nil3807 when route setting is basic auth3808 when the token is provided via basic auth3809 is expected to eq #<User id:1076 @user477>3810 when the token is in the headers3811 behaves like find user from job token3812 when route is allowed to be authenticated3813 for an invalid token3814 returns an Unauthorized exception3815 with a running job3816 return user3817 with a job that is not running3818 returns an Unauthorized exception3819 when route is not allowed to be authenticated3820 with a running job3821 returns nil3822 when the token is in the job_token param3823 behaves like find user from job token3824 when route is allowed to be authenticated3825 for an invalid token3826 returns an Unauthorized exception3827 with a running job3828 return user3829 with a job that is not running3830 returns an Unauthorized exception3831 when route is not allowed to be authenticated3832 with a running job3833 returns nil3834 when the token is in the token param3835 behaves like find user from job token3836 when route is allowed to be authenticated3837 for an invalid token3838 returns an Unauthorized exception3839 with a running job3840 return user3841 with a job that is not running3842 returns an Unauthorized exception3843 when route is not allowed to be authenticated3844 with a running job3845 returns nil3846 when route setting job_token_allowed is invalid3847 when the token is provided3848 is expected to be nil3849 #cluster_agent_token_from_authorization_token3850 when route_setting is empty3851 is expected to be nil3852 when route_setting allows cluster agent token3853 Authorization header is empty3854 is expected to be nil3855 Authorization header is incorrect3856 is expected to be nil3857 Authorization header is malformed3858 is expected to be nil3859 Authorization header matches agent token3860 is expected to eq #<Clusters::AgentToken id: 1, created_at: "2023-03-30 11:54:02.251691931 +0000", updated_at: "2023-03...ated_by_user_id: 1082, description: nil, name: "agent-token-1", last_used_at: nil, status: "active">3861 agent token has been revoked3862 is expected to be nil3863 #find_runner_from_token3864 with API requests3865 returns the runner if token is valid3866 returns nil if token is not present3867 returns nil if token is blank3868 returns exception if invalid token3869 without API requests3870 returns nil if token is valid3871 returns nil if token is blank3872 returns nil if invalid token3873Ci::RunnerJobsFinder3874 #execute3875 when params is empty3876 returns all jobs assigned to Runner3877 when the user has guest access3878 does not returns jobs the user does not have permission to see3879 when the user has permission to read all resources3880 returns all the jobs assigned to a runner3881 when the user has different access levels in different projects3882 returns only the jobs the user has permission to see3883 when the user has reporter access level or greater3884 returns jobs assigned to the Runner that the user has accesss to3885 when params contains status3886 when status is created3887 returns matched job3888 when status is waiting_for_resource3889 returns matched job3890 when status is preparing3891 returns matched job3892 when status is pending3893 returns matched job3894 when status is running3895 returns matched job3896 when status is success3897 returns matched job3898 when status is failed3899 returns matched job3900 when status is canceled3901 returns matched job3902 when status is skipped3903 returns matched job3904 when status is manual3905 returns matched job3906 when status is scheduled3907 returns matched job3908 when order_by and sort are specified3909 when order_by id and sort is asc3910 sorts as id: :asc3911 when order_by is specified and sort is not specified3912 when order_by id and sort is not specified3913 sorts as id: :desc3914Integrations::Field3915 #initialize3916 sets type password for secret fields3917 uses the given type for other names3918 raises an error if an invalid attribute is given3919 raises an error if an invalid type is given3920 #name3921 is stringified3922 when not set3923 complains3924 #section3925 responds to section3926 when not set3927 has the correct default3928 when set to a static value3929 is known3930 when set to a dynamic value3931 is computed3932 is executed in the class scope3933 #type3934 responds to type3935 when not set3936 has the correct default3937 when set to a static value3938 is known3939 when set to a dynamic value3940 is computed3941 is executed in the class scope3942 #placeholder3943 responds to placeholder3944 when not set3945 has the correct default3946 when set to a static value3947 is known3948 when set to a dynamic value3949 is computed3950 is executed in the class scope3951 #choices3952 responds to choices3953 when not set3954 has the correct default3955 when set to a static value3956 is known3957 when set to a dynamic value3958 is computed3959 is executed in the class scope3960 #value3961 responds to value3962 when not set3963 has the correct default3964 when set to a static value3965 is known3966 when set to a dynamic value3967 is computed3968 is executed in the class scope3969 #checkbox_label3970 responds to checkbox_label3971 when not set3972 has the correct default3973 when set to a static value3974 is known3975 when set to a dynamic value3976 is computed3977 is executed in the class scope3978 #title3979 responds to title3980 when not set3981 has the correct default3982 when set to a static value3983 is known3984 when set to a dynamic value3985 is computed3986 is executed in the class scope3987 #help3988 responds to help3989 when not set3990 has the correct default3991 when set to a static value3992 is known3993 when set to a dynamic value3994 is computed3995 is executed in the class scope3996 #non_empty_password_help3997 responds to non_empty_password_help3998 when not set3999 has the correct default4000 when set to a static value4001 is known4002 when set to a dynamic value4003 is computed4004 is executed in the class scope4005 #non_empty_password_title4006 responds to non_empty_password_title4007 when not set4008 has the correct default4009 when set to a static value4010 is known4011 when set to a dynamic value4012 is computed4013 is executed in the class scope4014 #required4015 responds to required4016 when not set4017 has the correct default4018 when set to a static value4019 is known4020 when set to a dynamic value4021 is computed4022 is executed in the class scope4023 #api_only4024 responds to api_only4025 when not set4026 has the correct default4027 when set to a static value4028 is known4029 when set to a dynamic value4030 is computed4031 is executed in the class scope4032 #is_secret4033 responds to is_secret4034 when not set4035 has the correct default4036 when set to a static value4037 is known4038 when set to a dynamic value4039 is computed4040 is executed in the class scope4041 #exposes_secrets4042 responds to exposes_secrets4043 when not set4044 has the correct default4045 when set to a static value4046 is known4047 when set to a dynamic value4048 is computed4049 is executed in the class scope4050 #required?4051 returns true if the value is truthy4052 returns false if the value is falsey4053 #api_only?4054 returns true if the value is truthy4055 returns false if the value is falsey4056 #is_secret?4057 returns true if the value is truthy4058 returns false if the value is falsey4059 #exposes_secrets?4060 returns true if the value is truthy4061 returns false if the value is falsey4062 #text?4063 returns true if the type matches4064 returns false if the type does not match4065 #textarea?4066 returns true if the type matches4067 returns false if the type does not match4068 #password?4069 returns true if the type matches4070 returns false if the type does not match4071 #checkbox?4072 returns true if the type matches4073 returns false if the type does not match4074 #select?4075 returns true if the type matches4076 returns false if the type does not match4077 #secret?4078 when empty4079 is expected not to be secret4080 when a secret field4081 is expected to be secret4082 when named url4083 is expected not to be secret4084Gitlab::Counters::BufferedCounter4085 # order random4086 #commit_increment!4087 obtains an exclusive lease during processing4088 when there is an amount to commit4089 commits the increment into the database4090 removes the increment entry from Redis4091 when there are no counters to flush4092 when there are no counters in the relative :flushed key4093 does not change the record4094 when there are counters in the relative :flushed key4095 updates the record4096 deletes the relative :flushed key4097 when deleting :flushed key fails4098 does a rollback of the counter update4099 when the counter record has after_commit callbacks4100 has registered callbacks4101 when there are increments to flush4102 executes the callbacks4103 when there are no increments to flush4104 does not execute the callbacks4105 #finalize_refresh4106 with existing amount in refresh key4107 moves the deduplicated amount in the refresh key into the counter key4108 removes the refresh counter key and the refresh indicator4109 schedules a worker to clean up the refresh tracking keys4110 without existing amount in refresh key4111 does not change the counter key4112 removes the refresh indicator key4113 schedules a worker to commit the counter key into database4114 #increment4115 when the counter is not undergoing refresh4116 sets a new key by the given value4117 increments an existing key by the given value4118 returns the value of the key after the increment4119 schedules a worker to commit the counter key into database4120 when the counter is undergoing refresh4121 does not increment the counter key4122 increments the amount in the refresh key4123 schedules a worker to commit the counter key into database4124 when it is an increment (positive amount)4125 when it is the first increment on the ref4126 behaves like changing the counter refresh key by the given amount4127 changes the refresh counter key by the given value4128 returns the value of the key after the increment4129 when it follows an existing increment on the same ref4130 behaves like not changing the counter refresh key4131 does not change the counter4132 returns the unchanged value of the key4133 when it follows an existing decrement on the same ref4134 behaves like not changing the counter refresh key4135 does not change the counter4136 returns the unchanged value of the key4137 when there has been an existing increment on another ref4138 behaves like changing the counter refresh key by the given amount4139 changes the refresh counter key by the given value4140 returns the value of the key after the increment4141 when there has been an existing decrement on another ref4142 behaves like changing the counter refresh key by the given amount4143 changes the refresh counter key by the given value4144 returns the value of the key after the increment4145 when it is a decrement (negative amount)4146 when it is the first decrement on the same ref4147 behaves like not changing the counter refresh key4148 does not change the counter4149 returns the unchanged value of the key4150 when it follows an existing decrement on the ref4151 behaves like not changing the counter refresh key4152 does not change the counter4153 returns the unchanged value of the key4154 when it follows an existing increment on the ref4155 behaves like changing the counter refresh key by the given amount4156 changes the refresh counter key by the given value4157 returns the value of the key after the increment4158 when there has been an existing increment on another ref4159 behaves like not changing the counter refresh key4160 does not change the counter4161 returns the unchanged value of the key4162 when there has been an existing decrement on another ref4163 behaves like not changing the counter refresh key4164 does not change the counter4165 returns the unchanged value of the key4166 when the amount is 04167 when it is the first increment on the ref4168 behaves like not changing the counter refresh key4169 does not change the counter4170 returns the unchanged value of the key4171 when it follows the another increment on the ref4172 behaves like not changing the counter refresh key4173 does not change the counter4174 returns the unchanged value of the key4175 when the ref is greater than 67108863 (8MB)4176 deduplicates increments correctly4177 when feature flag is disabled4178 when the counter is not undergoing refresh4179 sets a new key by the given value4180 increments an existing key by the given value4181 when the counter is undergoing refresh4182 when it is a decrement (negative amount)4183 immediately decrements the counter key to negative4184 #bulk_increment4185 when the counter is not undergoing refresh4186 increments the key by the given values4187 returns the value of the key after the increment4188 schedules a worker to commit the counter into database4189 when the counter is undergoing refresh4190 when there are 2 increments on different ref4191 behaves like changing the counter refresh key by the expected amount4192 changes the counter refresh key by the net change4193 returns the value of the key after the increment4194 when there has been previous decrements4195 behaves like changing the counter refresh key by the expected amount4196 changes the counter refresh key by the net change4197 returns the value of the key after the increment4198 when one of the increment is repeated4199 behaves like changing the counter refresh key by the expected amount4200 changes the counter refresh key by the net change4201 returns the value of the key after the increment4202 when there are 2 decrements on different ref4203 behaves like changing the counter refresh key by the expected amount4204 changes the counter refresh key by the net change4205 returns the value of the key after the increment4206 when there has been previous increments4207 behaves like changing the counter refresh key by the expected amount4208 changes the counter refresh key by the net change4209 returns the value of the key after the increment4210 when there is a mixture of increment and decrement on different refs4211 behaves like changing the counter refresh key by the expected amount4212 changes the counter refresh key by the net change4213 returns the value of the key after the increment4214 when the increment ref has been decremented4215 behaves like changing the counter refresh key by the expected amount4216 changes the counter refresh key by the net change4217 returns the value of the key after the increment4218 when the decrement ref has been incremented4219 behaves like changing the counter refresh key by the expected amount4220 changes the counter refresh key by the net change4221 returns the value of the key after the increment4222 when feature flag is disabled4223 when the counter is not undergoing refresh4224 sets a new key by the given value4225 increments an existing key by the given value4226 when the counter is undergoing refresh4227 when it is a decrement (negative amount)4228 immediately decrements the counter key to negative4229 #initiate_refresh!4230 removes the key from Redis4231 resets the counter to 04232 resets the record to 04233 sets a refresh indicator with a long expiry4234 #cleanup_refresh4235 removes all tracking keys4236 #amount_to_be_flushed4237 increment: nil, flushed: nil, result: 0, flushed_key_present: false4238 returns the current value to be flushed4239 drops the increment key and creates the flushed key if it does not exist4240 increment: nil, flushed: 0, result: 0, flushed_key_present: false4241 returns the current value to be flushed4242 drops the increment key and creates the flushed key if it does not exist4243 increment: 0, flushed: 0, result: 0, flushed_key_present: false4244 returns the current value to be flushed4245 drops the increment key and creates the flushed key if it does not exist4246 increment: 1, flushed: 0, result: 1, flushed_key_present: true4247 returns the current value to be flushed4248 drops the increment key and creates the flushed key if it does not exist4249 increment: 1, flushed: nil, result: 1, flushed_key_present: true4250 returns the current value to be flushed4251 drops the increment key and creates the flushed key if it does not exist4252 increment: 1, flushed: 1, result: 2, flushed_key_present: true4253 returns the current value to be flushed4254 drops the increment key and creates the flushed key if it does not exist4255 increment: 1, flushed: -2, result: -1, flushed_key_present: true4256 returns the current value to be flushed4257 drops the increment key and creates the flushed key if it does not exist4258 increment: -1, flushed: 1, result: 0, flushed_key_present: false4259 returns the current value to be flushed4260 drops the increment key and creates the flushed key if it does not exist4261 #get4262 returns the value when there is an existing value stored in the counter4263 returns 0 when there is no existing value4264Integrations::HasDataFields4265 when data are stored in data_fields4266 behaves like data fields4267 #arg4268 returns the expected values4269 {arg}_changed?4270 returns false when the property has not been assigned a new value4271 returns true when the property has been assigned a different value4272 returns true when the property has been assigned a different value twice4273 returns false when the property has been re-assigned the same value4274 {arg}_touched?4275 returns false when the property has not been assigned a new value4276 returns true when the property has been assigned a different value4277 returns true when the property has been assigned a different value twice4278 returns true when the property has been re-assigned the same value4279 returns false when the property has been re-assigned the same value4280 data_fields_present?4281 returns true from the issue tracker integration4282 {arg}_was?4283 returns nil4284 when integration and data_fields are not persisted4285 data_fields_present?4286 returns true4287 when data are stored in properties4288 behaves like data fields4289 #arg4290 returns the expected values4291 {arg}_changed?4292 returns false when the property has not been assigned a new value4293 returns true when the property has been assigned a different value4294 returns true when the property has been assigned a different value twice4295 returns false when the property has been re-assigned the same value4296 {arg}_touched?4297 returns false when the property has not been assigned a new value4298 returns true when the property has been assigned a different value4299 returns true when the property has been assigned a different value twice4300 returns true when the property has been re-assigned the same value4301 returns false when the property has been re-assigned the same value4302 data_fields_present?4303 returns true from the issue tracker integration4304 {arg}_was?4305 returns nil when the property has not been assigned a new value4306 returns initial value when the property has been assigned a different value4307 returns initial value when the property has been re-assigned the same value4308 when data are stored in both properties and data_fields4309 behaves like data fields4310 #arg4311 returns the expected values4312 {arg}_changed?4313 returns false when the property has not been assigned a new value4314 returns true when the property has been assigned a different value4315 returns true when the property has been assigned a different value twice4316 returns false when the property has been re-assigned the same value4317 {arg}_touched?4318 returns false when the property has not been assigned a new value4319 returns true when the property has been assigned a different value4320 returns true when the property has been assigned a different value twice4321 returns true when the property has been re-assigned the same value4322 returns false when the property has been re-assigned the same value4323 data_fields_present?4324 returns true from the issue tracker integration4325 {arg}_was?4326 returns nil4327Integrations::Datadog4328 behaves like Integrations::ResetSecretFields4329 #exposing_secrets_fields4330 returns an array of strings4331 #reset_secret_fields?4332 returns false if no exposing field has changed4333 returns true if any exposing field has changed4334 validation callback4335 when an exposing field has changed4336 clears all secret fields4337 when a secret field has been updated4338 does not clear this secret field4339 when a secret field has been updated with the same value4340 does not clear this secret field4341 when no exposing field has changed4342 does not clear any secret fields4343 behaves like Integrations::HasWebHook4344 associations4345 is expected to have one service_hook inverse_of => integration4346 callbacks4347 calls #update_web_hook! when enabled4348 does not call #update_web_hook! when disabled4349 does not call #update_web_hook! when validation fails4350 #hook_url4351 returns a string4352 #url_variables4353 returns a hash4354 #hook_ssl_verification4355 returns a boolean4356 delegates to #enable_ssl_verification if the concern is included4357 #update_web_hook!4358 creates or updates a service hook4359 raises an error if the service hook could not be saved4360 does not attempt to save the service hook if there are no changes4361 #execute_web_hook!4362 creates the webhook if necessary and executes it4363 raises an error if the service hook could not be saved4364 validations4365 when service is active4366 is expected to validate that :api_key cannot be empty/falsy4367 is expected to allow :api_key to be ‹"e8ce3abdcfa7f13f3ea28a019242b4db77acabce36171b6fafee1893b1f224c7"›4368 is expected not to allow :api_key to be ‹"87dab2403c9d462 87aec4d9214edb1e"›4369 is expected not to allow :api_key to be ‹"................................"›4370 when selecting site4371 is expected to validate that :datadog_site cannot be empty/falsy4372 is expected not to validate that :api_url cannot be empty/falsy4373 is expected to allow :datadog_site to be ‹"data-dog-hq.com"›4374 is expected to allow :datadog_site to be ‹"dataDOG.com"›4375 is expected not to allow :datadog_site to be ‹"datadog hq.com"›4376 is expected not to allow :datadog_site to be ‹"-datadoghq.com"›4377 is expected not to allow :datadog_site to be ‹".datadoghq.com"›4378 is expected not to allow :datadog_site to be ‹"datadoghq.com_"›4379 is expected not to allow :datadog_site to be ‹"data-dog"›4380 is expected not to allow :datadog_site to be ‹"datadoghq.com-"›4381 is expected not to allow :datadog_site to be ‹"datadoghq.com."›4382 with custom api_url4383 is expected not to validate that :datadog_site cannot be empty/falsy4384 is expected to validate that :api_url cannot be empty/falsy4385 is expected to allow :api_url to be ‹"https://webhook-intake.datad0g.com/api/v2/webhook"›4386 is expected not to allow :api_url to be ‹"example.com"›4387 when missing site and api_url4388 is expected not to be valid4389 is expected to validate that :datadog_site cannot be empty/falsy4390 is expected to validate that :api_url cannot be empty/falsy4391 when providing both site and api_url4392 is expected not to allow :datadog_site to be ‹"datadog hq.com"›4393 is expected not to allow :api_url to be ‹"example.com"›4394 with custom tags4395 is expected to allow :datadog_tags to be ‹""›4396 is expected to allow :datadog_tags to be ‹"key:value"›4397 is expected to allow :datadog_tags to be ‹"key:value\nkey2:value2"›4398 is expected to allow :datadog_tags to be ‹"key:value\nkey2:value with spaces and 123?&$"›4399 is expected to allow :datadog_tags to be ‹"key:value\n\n\n\nkey2:value2\n"›4400 is expected not to allow :datadog_tags to be ‹"value"›4401 is expected not to allow :datadog_tags to be ‹"key:"›4402 is expected not to allow :datadog_tags to be ‹"key: "›4403 is expected not to allow :datadog_tags to be ‹":value"›4404 is expected not to allow :datadog_tags to be ‹"key:value\nINVALID"›4405 when integration is not active4406 is expected to be valid4407 is expected not to validate that :api_key cannot be empty/falsy4408 #help4409 is expected to be a kind of String4410 is expected not to be empty4411 #hook_url4412 with standard site URL4413 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"4414 with custom URL4415 is expected to eq "https://webhook-intake.datad0g.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"4416 blank4417 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"4418 without optional params4419 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}"4420 with custom tags4421 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab&tags=key%3Avalue%2C%22key2%3Avalue%2C+2%22"4422 and empty lines4423 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab&tags=key%3Avalue%2C%22key2%3Avalue%2C+2%22"4424 #test4425 when request is successful with a HTTP 200 status4426 is expected to eq {:result=>"OK", :success=>true}4427 when request is successful with a HTTP 202 status4428 is expected to eq {:result=>"OK", :success=>true}4429 when request fails with a HTTP 500 status4430 is expected to eq {:result=>"CRASH!!!", :success=>false}4431 #execute4432 with pipeline data4433 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=83ffba233183f4dd07e0407b129db95fb6a49323c404152fe1af58a49b13da2c&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"pipeline\",\"object_attributes\":{\"id\":424,\"iid\":1,\"ref\":\"master\",\"tag\":false,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"before_sha\":\"0000000000000000000000000000000000000000\",\"source\":\"push\",\"status\":\"pending\",\"detailed_status\":\"pending\",\"stages\":[\"test\"],\"created_at\":\"2023-03-30T11:55:02.691Z\",\"finished_at\":null,\"duration\":null,\"queued_duration\":null,\"variables\":[]},\"merge_request\":null,\"user\":null,\"project\":{\"id\":802,\"name\":\"project840\",\"description\":null,\"web_url\":\"http://localhost/namespace812/project840\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace812/project840.git\",\"git_http_url\":\"http://localhost/namespace812/project840.git\",\"namespace\":\"Sidney Jones1324\",\"visibility_level\":0,\"path_with_namespace\":\"namespace812/project840\",\"default_branch\":null,\"ci_config_path\":null},\"commit\":null,\"builds\":[{\"id\":563,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2023-03-30T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":11078.0,\"failure_reason\":null,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null},{\"id\":564,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2023-03-30T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":11078.0,\"failure_reason\":null,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null}]}" with headers {'X-Gitlab-Event'=>'Pipeline Hook'} 1 time4434 with job data4435 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=aaa169a717cd7645a07ad2836f28e8fc813ee2d407eb3155a60e7935a017638d&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"build\",\"ref\":\"master\",\"tag\":false,\"before_sha\":\"0000000000000000000000000000000000000000\",\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"build_id\":563,\"build_name\":\"test\",\"build_stage\":\"test\",\"build_status\":\"pending\",\"build_created_at\":\"2023-03-30T08:50:29.000Z\",\"build_started_at\":null,\"build_finished_at\":null,\"build_duration\":null,\"build_queued_duration\":11078.0,\"build_allow_failure\":false,\"build_failure_reason\":\"unknown_failure\",\"pipeline_id\":424,\"runner\":null,\"project_id\":802,\"project_name\":\"Sidney Jones1324 / project840\",\"user\":null,\"commit\":{\"id\":424,\"name\":null,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"message\":null,\"author_name\":null,\"author_email\":null,\"author_url\":\"mailto:\",\"status\":\"pending\",\"duration\":null,\"started_at\":null,\"finished_at\":null},\"repository\":{\"name\":\"project840\",\"url\":\"git@localhost:namespace812/project840.git\",\"description\":null,\"homepage\":\"http://localhost/namespace812/project840\",\"git_http_url\":\"http://localhost/namespace812/project840.git\",\"git_ssh_url\":\"git@localhost:namespace812/project840.git\",\"visibility_level\":0},\"environment\":null,\"retries_count\":1}" with headers {'X-Gitlab-Event'=>'Job Hook'} 1 time4436 with archive trace data4437 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=ac58b00a1540f3a61d0a20bfe062d49e3d40c0e5f7dad9e56be6ea8583279175&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"archive_trace\",\"trace_url\":\"/47/7f/477f4b2cdd3fe2b9fdd7dfb887f98252ef26cecf13eb53289116a1344382256d/2023_03_30/563/4/sample_trace\",\"build_id\":563,\"pipeline_id\":424,\"project\":{\"id\":802,\"name\":\"project840\",\"description\":null,\"web_url\":\"http://localhost/namespace812/project840\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace812/project840.git\",\"git_http_url\":\"http://localhost/namespace812/project840.git\",\"namespace\":\"Sidney Jones1324\",\"visibility_level\":0,\"path_with_namespace\":\"namespace812/project840\",\"default_branch\":null,\"ci_config_path\":null,\"homepage\":\"http://localhost/namespace812/project840\",\"url\":\"git@localhost:namespace812/project840.git\",\"ssh_url\":\"git@localhost:namespace812/project840.git\",\"http_url\":\"http://localhost/namespace812/project840.git\"}}" with headers {'X-Gitlab-Event'=>'Archive Trace Hook'} 1 time4438Git::TagHooksService4439 System hooks4440 executes system hooks4441 Webhooks4442 executes hooks on the project4443 Pipelines4444 creates a new pipeline4445 Push data4446 annotated tag4447 has expected push data attributes4448 with repository data4449 has expected repository attributes4450 with commits4451 is expected to be a kind of Array4452 has 1 element4453 the commit4454 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}4455 has expected commit attributes4456 with an author4457 has expected author attributes4458 lightweight tag4459 has expected push data attributes4460 with repository data4461 has expected repository attributes4462 with commits4463 is expected to be a kind of Array4464 has 1 element4465 the commit4466 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}4467 has expected commit attributes4468 with an author4469 has expected author attributes4470ProjectMemberPolicy4471 with regular member4472 is expected to be allowed :read_project4473 is expected to be allowed :update_project_member4474 is expected to be allowed :destroy_project_member4475 is expected not to be allowed :destroy_project_bot_member4476 when user is the holder of personal namespace in which the project resides4477 is expected to be allowed :read_project4478 is expected to be disallowed :update_project_member4479 is expected to be disallowed :destroy_project_member4480 with a bot member4481 is expected to be allowed :destroy_project_bot_member4482 is expected not to be allowed :update_project_member4483 is expected not to be allowed :destroy_project_member4484 for access requests4485 for own access request4486 is expected to be allowed :withdraw_member_access_request4487 for another user's access request4488 is expected not to be allowed :withdraw_member_access_request4489 for own, valid membership4490 is expected not to be allowed :withdraw_member_access_request4491Pages::InvalidateDomainCacheWorker4492 when a project have multiple domains4493 clears the cache with Gitlab::Pages::CacheControl4494 behaves like clears caches with4495 clears the cache with Gitlab::Pages::CacheControl4496 behaves like subscribes to event4497 consumes the published event4498 behaves like an idempotent worker4499 is labeled as idempotent4500 performs multiple times sequentially without raising an exception4501 behaves like clears caches with4502 clears the cache with Gitlab::Pages::CacheControl4503 behaves like subscribes to event4504 consumes the published event4505 behaves like an idempotent worker4506 is labeled as idempotent4507 performs multiple times sequentially without raising an exception4508 behaves like clears caches with4509 clears the cache with Gitlab::Pages::CacheControl4510 behaves like subscribes to event4511 consumes the published event4512 behaves like an idempotent worker4513 is labeled as idempotent4514 performs multiple times sequentially without raising an exception4515 behaves like clears caches with4516 clears the cache with Gitlab::Pages::CacheControl4517 behaves like subscribes to event4518 consumes the published event4519 behaves like an idempotent worker4520 is labeled as idempotent4521 performs multiple times sequentially without raising an exception4522 behaves like clears caches with4523 clears the cache with Gitlab::Pages::CacheControl4524 behaves like subscribes to event4525 consumes the published event4526 behaves like an idempotent worker4527 is labeled as idempotent4528 performs multiple times sequentially without raising an exception4529 behaves like clears caches with4530 clears the cache with Gitlab::Pages::CacheControl4531 behaves like subscribes to event4532 consumes the published event4533 behaves like an idempotent worker4534 is labeled as idempotent4535 performs multiple times sequentially without raising an exception4536 behaves like clears caches with4537 clears the cache with Gitlab::Pages::CacheControl4538 behaves like subscribes to event4539 consumes the published event4540 behaves like an idempotent worker4541 is labeled as idempotent4542 performs multiple times sequentially without raising an exception4543 behaves like clears caches with4544 clears the cache with Gitlab::Pages::CacheControl4545 behaves like subscribes to event4546 consumes the published event4547 behaves like an idempotent worker4548 is labeled as idempotent4549 performs multiple times sequentially without raising an exception4550 behaves like clears caches with4551 clears the cache with Gitlab::Pages::CacheControl4552 behaves like subscribes to event4553 consumes the published event4554 behaves like an idempotent worker4555 is labeled as idempotent4556 performs multiple times sequentially without raising an exception4557 behaves like clears caches with4558 clears the cache with Gitlab::Pages::CacheControl4559 behaves like subscribes to event4560 consumes the published event4561 behaves like an idempotent worker4562 is labeled as idempotent4563 performs multiple times sequentially without raising an exception4564 behaves like clears caches with4565 clears the cache with Gitlab::Pages::CacheControl4566 behaves like subscribes to event4567 consumes the published event4568 behaves like an idempotent worker4569 is labeled as idempotent4570 performs multiple times sequentially without raising an exception4571 behaves like clears caches with4572 clears the cache with Gitlab::Pages::CacheControl4573 behaves like subscribes to event4574 consumes the published event4575 behaves like an idempotent worker4576 is labeled as idempotent4577 performs multiple times sequentially without raising an exception4578 behaves like clears caches with4579 clears the cache with Gitlab::Pages::CacheControl4580 behaves like subscribes to event4581 consumes the published event4582 behaves like an idempotent worker4583 is labeled as idempotent4584 performs multiple times sequentially without raising an exception4585 when project attributes change4586 behaves like clears caches with4587 clears the cache with Gitlab::Pages::CacheControl4588 behaves like subscribes to event4589 consumes the published event4590 behaves like an idempotent worker4591 is labeled as idempotent4592 performs multiple times sequentially without raising an exception4593 behaves like clears caches with4594 clears the cache with Gitlab::Pages::CacheControl4595 behaves like subscribes to event4596 consumes the published event4597 behaves like an idempotent worker4598 is labeled as idempotent4599 performs multiple times sequentially without raising an exception4600 behaves like ignores the published event4601 does not consume the published event4602 when project features change4603 behaves like clears caches with4604 clears the cache with Gitlab::Pages::CacheControl4605 behaves like subscribes to event4606 consumes the published event4607 behaves like an idempotent worker4608 is labeled as idempotent4609 performs multiple times sequentially without raising an exception4610 behaves like ignores the published event4611 does not consume the published event4612 when namespace based cache keys are duplicated4613 behaves like clears caches with4614 clears the cache with Gitlab::Pages::CacheControl4615 behaves like subscribes to event4616 consumes the published event4617 behaves like an idempotent worker4618 is labeled as idempotent4619 performs multiple times sequentially without raising an exception4620Gitlab::Database::TablesTruncate4621 # order random4622 when truncating gitlab_main tables on the ci database4623 behaves like truncating legacy tables on a database4624 when the truncated tables are not locked for writes4625WARNING: Active Record does not support composite primary key.4626_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4627WARNING: Active Record does not support composite primary key.4628gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4629WARNING: Active Record does not support composite primary key.4630_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4631WARNING: Active Record does not support composite primary key.4632gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4633 raises an error that the tables are not locked for writes4634 when the truncated tables are locked for writes4635WARNING: Active Record does not support composite primary key.4636_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4637WARNING: Active Record does not support composite primary key.4638gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4639WARNING: Active Record does not support composite primary key.4640_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4641WARNING: Active Record does not support composite primary key.4642gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4643 truncates the legacy tables4644WARNING: Active Record does not support composite primary key.4645_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4646WARNING: Active Record does not support composite primary key.4647gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4648WARNING: Active Record does not support composite primary key.4649_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4650WARNING: Active Record does not support composite primary key.4651gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4652 does not affect the other tables4653WARNING: Active Record does not support composite primary key.4654_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4655WARNING: Active Record does not support composite primary key.4656gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4657WARNING: Active Record does not support composite primary key.4658_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4659WARNING: Active Record does not support composite primary key.4660gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4661 logs the sql statements to the logger4662 when running in dry_run mode4663WARNING: Active Record does not support composite primary key.4664_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4665WARNING: Active Record does not support composite primary key.4666gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4667WARNING: Active Record does not support composite primary key.4668_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4669WARNING: Active Record does not support composite primary key.4670gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4671 does not truncate the legacy tables if running in dry run mode4672 when passing until_table parameter4673 with a table that exists4674WARNING: Active Record does not support composite primary key.4675_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4676WARNING: Active Record does not support composite primary key.4677gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4678WARNING: Active Record does not support composite primary key.4679_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4680WARNING: Active Record does not support composite primary key.4681gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4682 only truncates until the table specified4683 with a table that does not exist4684WARNING: Active Record does not support composite primary key.4685_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4686WARNING: Active Record does not support composite primary key.4687gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4688WARNING: Active Record does not support composite primary key.4689_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4690WARNING: Active Record does not support composite primary key.4691gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4692 raises an error if the specified table does not exist4693 when one of the attached partitions happened to be locked for writes4694WARNING: Active Record does not support composite primary key.4695_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4696WARNING: Active Record does not support composite primary key.4697gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4698WARNING: Active Record does not support composite primary key.4699_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4700WARNING: Active Record does not support composite primary key.4701gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4702 truncates the locked partition successfully4703 with geo configured4704WARNING: Active Record does not support composite primary key.4705_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4706WARNING: Active Record does not support composite primary key.4707gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4708WARNING: Active Record does not support composite primary key.4709_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4710WARNING: Active Record does not support composite primary key.4711gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4712 does not truncate gitlab_geo tables (PENDING: No reason given)4713 when truncating gitlab_ci tables on the main database4714 behaves like truncating legacy tables on a database4715 when the truncated tables are not locked for writes4716WARNING: Active Record does not support composite primary key.4717_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4718WARNING: Active Record does not support composite primary key.4719gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4720WARNING: Active Record does not support composite primary key.4721_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4722WARNING: Active Record does not support composite primary key.4723gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4724 raises an error that the tables are not locked for writes4725 when the truncated tables are locked for writes4726WARNING: Active Record does not support composite primary key.4727_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4728WARNING: Active Record does not support composite primary key.4729gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4730WARNING: Active Record does not support composite primary key.4731_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4732WARNING: Active Record does not support composite primary key.4733gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4734 truncates the legacy tables4735WARNING: Active Record does not support composite primary key.4736_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4737WARNING: Active Record does not support composite primary key.4738gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4739WARNING: Active Record does not support composite primary key.4740_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4741WARNING: Active Record does not support composite primary key.4742gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4743 does not affect the other tables4744WARNING: Active Record does not support composite primary key.4745_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4746WARNING: Active Record does not support composite primary key.4747gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4748WARNING: Active Record does not support composite primary key.4749_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4750WARNING: Active Record does not support composite primary key.4751gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4752 logs the sql statements to the logger4753 when running in dry_run mode4754WARNING: Active Record does not support composite primary key.4755_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4756WARNING: Active Record does not support composite primary key.4757gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4758WARNING: Active Record does not support composite primary key.4759_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4760WARNING: Active Record does not support composite primary key.4761gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4762 does not truncate the legacy tables if running in dry run mode4763 when passing until_table parameter4764 with a table that exists4765WARNING: Active Record does not support composite primary key.4766_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4767WARNING: Active Record does not support composite primary key.4768gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4769WARNING: Active Record does not support composite primary key.4770_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4771WARNING: Active Record does not support composite primary key.4772gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4773 only truncates until the table specified4774 with a table that does not exist4775WARNING: Active Record does not support composite primary key.4776_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4777WARNING: Active Record does not support composite primary key.4778gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4779WARNING: Active Record does not support composite primary key.4780_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4781WARNING: Active Record does not support composite primary key.4782gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4783 raises an error if the specified table does not exist4784 when one of the attached partitions happened to be locked for writes4785WARNING: Active Record does not support composite primary key.4786_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4787WARNING: Active Record does not support composite primary key.4788gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4789WARNING: Active Record does not support composite primary key.4790_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4791WARNING: Active Record does not support composite primary key.4792gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4793 truncates the locked partition successfully (PENDING: No reason given)4794 with geo configured4795WARNING: Active Record does not support composite primary key.4796_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4797WARNING: Active Record does not support composite primary key.4798gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4799WARNING: Active Record does not support composite primary key.4800_test_gitlab_hook_logs has composite primary key. Composite primary key is ignored.4801WARNING: Active Record does not support composite primary key.4802gitlab_partitions_dynamic._test_gitlab_hook_logs_202201 has composite primary key. Composite primary key is ignored.4803 does not truncate gitlab_geo tables (PENDING: No reason given)4804 when running in a single database mode4805 raises an error when truncating the main database that it is a single database setup (PENDING: Skipping because some of the extra databases [:ci] are setup)4806 raises an error when truncating the ci database that it is a single database setup (PENDING: Skipping because some of the extra databases [:ci] are setup)4807 when running with multiple shared databases4808 raises an error when truncating the main database that it is a single database setup (PENDING: Skipping because database ci exists)4809 raises an error when truncating the ci database that it is a single database setup (PENDING: Skipping because database ci exists)4810PostReceiveService4811 when project is nil4812 does not return error4813 behaves like does not record an onboarding progress action4814 is expected not to receive new(*(any args)) 0 times4815 when repository is nil4816 does not return error4817 when both repository and project are nil4818 does not return error4819 with Project4820 returns link to create new merge request4821 returns the link to an existing merge request when it exists4822 does not invoke MergeRequests::PushOptionsHandlerService4823 behaves like post_receive_service actions4824 enqueues a PostReceive worker job4825 decreases the reference counter and returns the result4826 behaves like records an onboarding progress action4827 is expected to receive execute({:action=>:git_write}) 1 time4828 when printing_merge_request_link_enabled is false4829 returns no merge request messages4830 when there are merge_request push options4831 invalidates the branch name cache4832 invokes MergeRequests::PushOptionsHandlerService4833 creates a new merge request4834 links to the newly created merge request4835 adds errors on the service instance to warnings4836 adds ActiveRecord errors on invalid MergeRequest records to warnings4837 with PersonalSnippet4838 does not return link to create new merge request4839 does not return the link to an existing merge request when it exists4840 behaves like post_receive_service actions4841 enqueues a PostReceive worker job4842 decreases the reference counter and returns the result4843 behaves like records an onboarding progress action4844 is expected to receive execute({:action=>:git_write}) 1 time4845 with ProjectSnippet4846 does not return link to create new merge request4847 does not return the link to an existing merge request when it exists4848 behaves like post_receive_service actions4849 enqueues a PostReceive worker job4850 decreases the reference counter and returns the result4851 behaves like records an onboarding progress action4852 is expected to receive execute({:action=>:git_write}) 1 time4853 broadcast message banner exists4854 outputs a broadcast message4855 broadcast message notification exists4856 does not output a broadcast message4857 broadcast message does not exist4858 does not output a broadcast message4859 nil broadcast message4860 does not output a broadcast message4861 broadcast message has a target_path4862 no project path matches4863 does not output the scoped broadcast messages4864 does output another message that doesn't have a target_path4865 project path matches4866 does output the latest scoped broadcast message4867 does not output the older scoped broadcast message4868 does not output another message that doesn't have a target_path4869 with a redirected data4870 returns redirected message on the response4871 with new project data4872 returns new project message on the response4873 #process_mr_push_options4874 when repository belongs to a snippet4875 with PersonalSnippet4876 returns an error message4877 with ProjectSnippet4878 returns an error message4879 #merge_request_urls4880 when repository belongs to a snippet4881 with PersonalSnippet4882 returns an empty array4883 with ProjectSnippet4884 returns an empty array4885Gitlab::Auth::Ldap::Person4886 .normalize_dn4887 behaves like normalizes a DN4888 test_description: "strips extraneous whitespace", given: "uid =John Smith , ou = People, dc= example,dc =com", expected: "uid=john smith,ou=people,dc=example,dc=com"4889 normalizes the DN4890 test_description: "strips extraneous whitespace for a DN with a single RDN", given: "uid = John Smith", expected: "uid=john smith"4891 normalizes the DN4892 test_description: "unescapes non-reserved, non-special Unicode characters", given: "uid = Sebasti\\c3\\a1n\\ C.\\20Smith, ou=People (aka. \\22humans\\\") ,dc=example, dc=com", expected: "uid=sebastián c. smith,ou=people (aka. \\\"humans\\\"),dc=example,dc=com"4893 normalizes the DN4894 test_description: "downcases the whole string", given: "UID=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4895 normalizes the DN4896 test_description: "for a null DN (empty string), returns empty string and does not error", given: "", expected: ""4897 normalizes the DN4898 test_description: "does not strip an escaped leading space in an attribute value", given: "uid=\\ John Smith,ou=People,dc=example,dc=com", expected: "uid=\\ john smith,ou=people,dc=example,dc=com"4899 normalizes the DN4900 test_description: "does not strip an escaped leading space in the last attribute value", given: "uid=\\ John Smith", expected: "uid=\\ john smith"4901 normalizes the DN4902 test_description: "does not strip an escaped trailing space in an attribute value", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"4903 normalizes the DN4904 test_description: "strips extraneous spaces after an escaped trailing space", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"4905 normalizes the DN4906 test_description: "strips extraneous spaces after an escaped trailing space at the end of the DN", given: "uid=John Smith,ou=People,dc=example,dc=com\\ ", expected: "uid=john smith,ou=people,dc=example,dc=com\\ "4907 normalizes the DN4908 test_description: "properly preserves escaped trailing space after unescaped trailing spaces", given: "uid=John Smith \\ ,ou=People,dc=example,dc=com", expected: "uid=john smith \\ ,ou=people,dc=example,dc=com"4909 normalizes the DN4910 test_description: "preserves multiple inner spaces in an attribute value", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4911 normalizes the DN4912 test_description: "preserves inner spaces after an escaped space", given: "uid=John\\ Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4913 normalizes the DN4914 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "uid=\\\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"4915 normalizes the DN4916 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "uid=John Smith\\\n,ou=People,dc=example,dc=com", expected: "uid=john smith\\0a,ou=people,dc=example,dc=com"4917 normalizes the DN4918 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN?)", given: "uid=\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"4919 normalizes the DN4920 test_description: "strips an unescaped trailing newline (actually an invalid DN?)", given: "uid=John Smith\n,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4921 normalizes the DN4922 test_description: "does not strip if no extraneous whitespace", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4923 normalizes the DN4924 test_description: "does not modify an escaped equal sign in an attribute value", given: "uid= foo \\= bar", expected: "uid=foo \\= bar"4925 normalizes the DN4926 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: "uid= foo \\3D bar", expected: "uid=foo \\= bar"4927 normalizes the DN4928 test_description: "does not modify an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\, CA", expected: "uid=john c. smith,ou=san francisco\\, ca"4929 normalizes the DN4930 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\2C CA", expected: "uid=john c. smith,ou=san francisco\\, ca"4931 normalizes the DN4932 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0DCA", expected: "uid=john c. smith,ou=san francisco\\,\\0dca"4933 normalizes the DN4934 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0aca"4935 normalizes the DN4936 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0D\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0d\\0aca"4937 normalizes the DN4938 test_description: "allows attribute type name OIDs", given: "0.9.2342.19200300.100.1.25=Example,0.9.2342.19200300.100.1.25=Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"4939 normalizes the DN4940 test_description: "strips extraneous whitespace from attribute type name OIDs", given: "0.9.2342.19200300.100.1.25 = Example, 0.9.2342.19200300.100.1.25 = Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"4941 normalizes the DN4942 with an exception during normalization4943 returns the given DN unmodified4944 .normalize_uid4945 behaves like normalizes a DN attribute value4946 test_description: "strips extraneous whitespace", given: " John Smith ", expected: "john smith"4947 normalizes the DN attribute value4948 test_description: "unescapes non-reserved, non-special Unicode characters", given: "Sebasti\\c3\\a1n\\ C.\\20Smith", expected: "sebastián c. smith"4949 normalizes the DN attribute value4950 test_description: "downcases the whole string", given: "JoHn C. Smith", expected: "john c. smith"4951 normalizes the DN attribute value4952 test_description: "does not strip an escaped leading space in an attribute value", given: "\\ John Smith", expected: "\\ john smith"4953 normalizes the DN attribute value4954 test_description: "does not strip an escaped trailing space in an attribute value", given: "John Smith\\ ", expected: "john smith\\ "4955 normalizes the DN attribute value4956 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "\\\nJohn Smith", expected: "\\0ajohn smith"4957 normalizes the DN attribute value4958 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "John Smith\\\n", expected: "john smith\\0a"4959 normalizes the DN attribute value4960 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN value?)", given: "\nJohn Smith", expected: "\\0ajohn smith"4961 normalizes the DN attribute value4962 test_description: "strips an unescaped trailing newline (actually an invalid DN value?)", given: "John Smith\n", expected: "john smith"4963 normalizes the DN attribute value4964 test_description: "does not strip if no extraneous whitespace", given: "John Smith", expected: "john smith"4965 normalizes the DN attribute value4966 test_description: "does not modify an escaped equal sign in an attribute value", given: " foo \\= bar", expected: "foo \\= bar"4967 normalizes the DN attribute value4968 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: " foo \\3D bar", expected: "foo \\= bar"4969 normalizes the DN attribute value4970 test_description: "does not modify an escaped comma in an attribute value", given: "San Francisco\\, CA", expected: "san francisco\\, ca"4971 normalizes the DN attribute value4972 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "San Francisco\\2C CA", expected: "san francisco\\, ca"4973 normalizes the DN attribute value4974 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "San Francisco\\,\\0DCA", expected: "san francisco\\,\\0dca"4975 normalizes the DN attribute value4976 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "San Francisco\\,\\0ACA", expected: "san francisco\\,\\0aca"4977 normalizes the DN attribute value4978 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "San Francisco\\,\\0D\\0ACA", expected: "san francisco\\,\\0d\\0aca"4979 normalizes the DN attribute value4980 with an exception during normalization4981 returns the given UID unmodified4982 .ldap_attributes4983 returns a compact and unique array4984 #name4985 uses the configured name attribute and handles values as an array4986 #email4987 returns the value of mail, if present4988 returns the value of userPrincipalName, if mail and email are not present4989 #username4990 with default uid username attribute4991 returns the proper username value4992 with a different username attribute4993 returns the proper username value4994 with a non-standard username attribute4995 returns the proper username value4996 if lowercase_usernames setting is4997 enabled the username attribute is lower cased4998 disabled the username attribute is not lower cased4999Gitlab::Diff::FileCollection::MergeRequestDiff5000 returns a valid instance of a DiffCollection5001 #diff_files5002 does not highlight binary files5003 does not highlight files marked as undiffable in .gitattributes5004 behaves like unfoldable diff5005 calls Gitlab::Diff::File#unfold_diff_lines with correct position5006 behaves like diff statistics5007 when include_stats is true5008 Repository#diff_stats is called5009 Gitlab::Diff::File is initialized with diff stats5010 when should not request diff stats5011 Repository#diff_stats is not called5012 behaves like cacheable diff collection5013 #write_cache5014 calls Gitlab::Diff::HighlightCache#write_if_empty5015 calls Gitlab::Diff::StatsCache#write_if_empty with diff stats5016 #clear_cache5017 calls Gitlab::Diff::HighlightCache#clear5018 calls Gitlab::Diff::StatsCache#clear5019 #diff_files5020 calls Gitlab::Diff::HighlightCache#decorate5021 when there are stats cached5022 does not make a diff stats rpc call5023 when there are no stats cached5024 makes a diff stats rpc call5025 behaves like unsortable diff files5026 #raw_diff_files5027 does not call Gitlab::Diff::FileCollectionSorter even when sorted is true5028MergeRequests::CreatePipelineService5029 #execute5030 creates a detached merge request pipeline5031 defaults to merge_request_event5032 when push options contain ci.skip5033 creates a skipped pipeline5034 with fork merge request5035 when actor has permission to create pipelines in target project5036 creates a pipeline in the target project5037 when the feature is disabled in CI/CD settings5038 creates a pipeline in the source project5039 when source branch is protected5040 when actor does not have permission to update the protected branch in target project5041 creates a pipeline in the source project5042 when actor has permission to update the protected branch in target project5043 creates a pipeline in the target project5044 when actor has permission to create pipelines in forked project5045 creates a pipeline in the source project5046 when actor does not have permission to create pipelines5047 responds with error5048 when service is called multiple times5049 creates a pipeline once5050 when allow_duplicate option is true5051 creates pipelines multiple times5052 when .gitlab-ci.yml does not use workflow:rules5053 without only: [merge_requests] keyword5054 does not create a pipeline5055 with rules that specify creation on a tag5056 does not create a pipeline5057 when workflow:rules are specified5058 when rules request creation on merge request5059 creates a detached merge request pipeline5060 with rules do specify creation on a tag5061 does not create a pipeline5062 when merge request has no commits5063 does not create a pipeline5064 when merge request pipeline creates a dynamic environment5065 associates merge request with the environment5066Packages::Debian::ComponentFileUploader5067 Packages::Debian::ProjectComponentFile5068 behaves like builds correct paths5069 #store_dir5070 behaves like matches the method pattern5071 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_component_file\/\d+$/5072 #cache_dir5073 behaves like matches the method pattern5074 is expected to match /\/packages\/tmp\/cache$/5075 #work_dir5076 behaves like matches the method pattern5077 is expected to match /\/packages\/tmp\/work$/5078 #upload_path5079 behaves like matches the method pattern5080 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5081 #relative_path5082 is relative (PENDING: Path not set, skipping.)5083 .absolute_path5084 behaves like matches the method pattern5085 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5086 .base_dir5087 behaves like matches the method pattern5088 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5089 path traversal exploits5090 throws an exception5091 object store is remote5092 behaves like builds correct paths5093 #store_dir5094 behaves like matches the method pattern5095 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_component_file\/\d+$/5096 #cache_dir5097 behaves like matches the method pattern5098 is expected to match /\/packages\/tmp\/cache$/5099 #work_dir5100 behaves like matches the method pattern5101 is expected to match /\/packages\/tmp\/work$/5102 #upload_path5103 behaves like matches the method pattern5104 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5105 #relative_path5106 is relative (PENDING: Path not set, skipping.)5107 .absolute_path5108 behaves like matches the method pattern5109 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5110 .base_dir5111 behaves like matches the method pattern5112 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5113 path traversal exploits5114 throws an exception5115 remote file5116 with object storage enabled5117 can store file remotely5118 Packages::Debian::GroupComponentFile5119 behaves like builds correct paths5120 #store_dir5121 behaves like matches the method pattern5122 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_component_file\/\d+$/5123 #cache_dir5124 behaves like matches the method pattern5125 is expected to match /\/packages\/tmp\/cache$/5126 #work_dir5127 behaves like matches the method pattern5128 is expected to match /\/packages\/tmp\/work$/5129 #upload_path5130 behaves like matches the method pattern5131 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5132 #relative_path5133 is relative (PENDING: Path not set, skipping.)5134 .absolute_path5135 behaves like matches the method pattern5136 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5137 .base_dir5138 behaves like matches the method pattern5139 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5140 path traversal exploits5141 throws an exception5142 object store is remote5143 behaves like builds correct paths5144 #store_dir5145 behaves like matches the method pattern5146 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_component_file\/\d+$/5147 #cache_dir5148 behaves like matches the method pattern5149 is expected to match /\/packages\/tmp\/cache$/5150 #work_dir5151 behaves like matches the method pattern5152 is expected to match /\/packages\/tmp\/work$/5153 #upload_path5154 behaves like matches the method pattern5155 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5156 #relative_path5157 is relative (PENDING: Path not set, skipping.)5158 .absolute_path5159 behaves like matches the method pattern5160 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5161 .base_dir5162 behaves like matches the method pattern5163 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5164 path traversal exploits5165 throws an exception5166 remote file5167 with object storage enabled5168 can store file remotely5169Mutations::MergeRequests::SetAssignees5170 when the user does not have permissions5171 #resolve5172 behaves like permission level for merge request mutation is correctly verified5173 when the user is not a project member5174 behaves like when the user does not have access to the resource5175 raises an error5176 even if assigned to the merge request5177 does not modify merge request5178 even if reviewer of the merge request5179 raises an error5180 even if author of the merge request5181 raises an error5182 when the user is a project member5183 with guest role5184 behaves like when the user does not have access to the resource5185 raises an error5186 even if assigned to the merge request5187 does not modify merge request5188 even if reviewer of the merge request5189 raises an error5190 even if author of the merge request5191 raises an error5192 with reporter role5193 behaves like when the user does not have access to the resource5194 raises an error5195 even if assigned to the merge request5196 does not modify merge request5197 even if reviewer of the merge request5198 raises an error5199 even if author of the merge request5200 raises an error5201 behaves like an assignable resource5202 #resolve5203 raises an error if the resource is not accessible to the user5204 does not change assignees if the resource is not accessible to the assignees5205 returns an operational error if the resource is not accessible to the assignees5206 when the user can update the resource5207 replaces the assignee5208 returns errors when resource could not be updated5209 when passing an empty assignee list5210 removes all assignees5211 when passing "append" as true5212 is a NO-OP in FOSS5213 when passing "remove" as true5214 removes named assignee5215 does not remove unnamed assignee5216Mutations::MergeRequests::SetReviewers5217 #resolve5218 does not change reviewers if the merge_request is not accessible to the reviewers5219 returns an operational error if the merge_request is not accessible to the reviewers5220 when the user does not have permissions5221 behaves like permission level for merge request mutation is correctly verified5222 when the user is not a project member5223 behaves like when the user does not have access to the resource5224 raises an error5225 even if assigned to the merge request5226 does not modify merge request5227 even if reviewer of the merge request5228 raises an error5229 even if author of the merge request5230 raises an error5231 when the user is a project member5232 with guest role5233 behaves like when the user does not have access to the resource5234 raises an error5235 even if assigned to the merge request5236 does not modify merge request5237 even if reviewer of the merge request5238 raises an error5239 even if author of the merge request5240 raises an error5241 with reporter role5242 behaves like when the user does not have access to the resource5243 raises an error5244 even if assigned to the merge request5245 does not modify merge request5246 even if reviewer of the merge request5247 raises an error5248 even if author of the merge request5249 raises an error5250 when the user can update the merge_request5251 replaces the reviewer5252 returns errors when merge_request could not be updated5253 when passing an empty reviewer list5254 removes all reviewers5255 when passing "append" as true5256 is a NO-OP in FOSS5257 when passing "remove" as true5258 removes named reviewer5259 does not remove unnamed reviewer5260DraftNotes::CreateService5261 creates a simple draft note5262 tracks the start event when the draft is persisted5263 does not track the start event when the draft is not persisted5264 cannot resolve when there is nothing to resolve5265 creates a draft note with a position in a diff5266 in a thread5267 creates a draft note with discussion_id5268 creates a draft that resolves the thread5269 diff highlight cache clearing5270 when diff file is unfolded and it is not a reply5271 clears diff highlighting cache5272 when diff file is not unfolded and it is not a reply5273 clears diff highlighting cache5274Deployments::LinkMergeRequestsService5275 #execute5276 when the deployment is for a review environment5277 does nothing5278 when the deployment is for one of the production environments5279 links merge requests5280 when the deployment failed5281 does nothing5282 when there is a previous deployment5283 links all merge requests merged since the previous deployment5284 when there are no previous deployments5285 links all merged merge requests5286 #link_merge_requests_for_range5287 links merge requests5288 links picked merge requests5289 doesn't link the same merge_request twice5290 #link_all_merged_merge_requests5291 links all merged merge requests targeting the deployed branch5292BulkImports::Projects::Pipelines::SnippetsRepositoryPipeline5293 extractor5294 is a GraphqlExtractor with Graphql::GetSnippetRepositoryQuery5295 #run5296 when a snippet is not matched5297 behaves like skippable snippet5298 does not create snippet repo5299 when httpUrlToRepo is empty5300 behaves like skippable snippet5301 does not create snippet repo5302 when a snippet matches5303 when snippet url is valid5304 creates snippet repo5305 updates snippets statistics5306 fetches snippet repo from url5307 when url is invalid5308 when not a real URL5309 behaves like skippable snippet5310 does not create snippet repo5311 when scheme is blocked5312 logs the failure5313 behaves like skippable snippet5314 does not create snippet repo5315 when snippet is invalid5316 does not leave a hanging SnippetRepository behind5317 does not call UpdateStatisticsService5318 behaves like skippable snippet5319 does not create snippet repo5320WebHookLog5321 is expected to belong to web_hook required: false5322 is expected to serialize :request_headers class_name => Hash5323 is expected to serialize :request_data class_name => Hash5324 is expected to serialize :response_headers class_name => Hash5325 is expected to validate that :web_hook cannot be empty/falsy5326 .recent5327 does not return web hook logs that are too old5328 returns the web hook logs in descending order5329 #save5330 with basic auth credentials5331 is expected to eq true5332 obfuscates the basic auth credentials5333 with users' emails5334 redacts users' emails5335 before_save5336 #set_url_hash5337 when interpolated_url is nil5338 is expected not to change `web_hook_log.url_hash`5339 when interpolated_url has a blank value5340 is expected not to change `web_hook_log.url_hash`5341 when interpolated_url has a value5342 assigns correct digest value5343 .delete_batch_for5344 does not loop forever5345 when the batch size is less than one5346 raises an argument error5347 when the batch size is smaller than the total5348 is expected to equal true5349 deletes min(batch_size, total) records5350 when the batch size is equal to the total5351 is expected to equal true5352 deletes min(batch_size, total) records5353 when the batch size is greater than the total5354 is expected to equal false5355 deletes min(batch_size, total) records5356 #success?5357 2xx5358 is expected to be truthy5359 not 2xx5360 is expected to be falsey5361 internal erorr5362 is expected to be falsey5363 #internal_error?5364 when response status is not an internal error5365 is expected to be falsey5366 when response status is an internal error5367 is expected to be truthy5368 #request_headers5369 with redacted headers token5370 is expected to eq {"X-Gitlab-Token"=>"[REDACTED]"}5371 with exposed headers token5372 is expected to eq {"X-Gitlab-Token"=>"[REDACTED]"}5373Gitlab::Metrics::RailsSlis5374 .initialize_request_slis!5375 initializes the SLI for all possible endpoints if they weren't5376 when initializeing for limited types5377 git: true, api: true, web: true5378 initializes only with the expected labels5379 git: true, api: true, web: false5380 initializes only with the expected labels5381 git: true, api: false, web: true5382 initializes only with the expected labels5383 git: true, api: false, web: false5384 initializes only with the expected labels5385 git: false, api: true, web: true5386 initializes only with the expected labels5387 git: false, api: true, web: false5388 initializes only with the expected labels5389 git: false, api: false, web: true5390 initializes only with the expected labels5391 git: false, api: false, web: false5392 initializes only with the expected labels5393 .request_apdex5394 returns the initialized request apdex SLI object5395 .request_error5396 returns the initialized request error rate SLI object5397 .graphql_query_apdex5398 returns the initialized request apdex SLI object5399Gitlab::GithubImport::Importer::PullRequestsImporter5400 #parallel?5401 returns true when running in parallel mode5402 returns false when running in sequential mode5403 #execute5404 when running in parallel mode5405 imports pull requests in parallel5406 when running in sequential mode5407 imports pull requests in sequence5408 #sequential_import5409 imports each pull request in sequence5410 #parallel_import5411 imports each note in parallel5412 #each_object_to_import5413 yields every pull request to the supplied block5414 updates the repository if a pull request was updated after the last clone5415 #update_repository5416 updates the repository5417 #update_repository?5418 when the pull request was updated after the last update5419 returns true when the head SHA is not present5420 returns true when the base SHA is not present5421 returns false if both the head and base SHAs are present5422 when the pull request was updated before the last update5423 returns false5424 #commit_exists?5425 returns true when a commit exists5426 returns false when a commit does not exist5427 #id_for_already_imported_cache5428 returns the PR number of the given PR5429BulkImports::Common::Pipelines::MembersPipeline5430 when importing to group5431 #run5432 creates memberships for existing users5433 #load5434 creates new membership5435 when user_id is current user id5436 does not create new membership5437 when data is nil5438 does not create new membership5439 when user membership already exists with the same access level5440 does not create new membership5441 when portable is in a parent group5442 when the same membership exists in parent group5443 does not create new membership5444 when membership with higher access level exists in parent group5445 creates new direct membership5446 when membership with lower access level exists in parent group5447 does not create new membership5448 when importing to project5449 #run5450 creates memberships for existing users5451 #load5452 creates new membership5453 when user_id is current user id5454 does not create new membership5455 when data is nil5456 does not create new membership5457 when user membership already exists with the same access level5458 does not create new membership5459 when portable is in a parent group5460 when the same membership exists in parent group5461 does not create new membership5462 when membership with higher access level exists in parent group5463 creates new direct membership5464 when membership with lower access level exists in parent group5465 does not create new membership5466Packages::PackageFileUploader5467 behaves like builds correct paths5468 #store_dir5469 behaves like matches the method pattern5470 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/5471 #cache_dir5472 behaves like matches the method pattern5473 is expected to match /\/packages\/tmp\/cache/5474 #work_dir5475 behaves like matches the method pattern5476 is expected to match /\/packages\/tmp\/work/5477 #upload_path5478 behaves like matches the method pattern5479 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5480 #relative_path5481 is relative (PENDING: Path not set, skipping.)5482 .absolute_path5483 behaves like matches the method pattern5484 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5485 .base_dir5486 behaves like matches the method pattern5487 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5488 path traversal exploits5489 throws an exception5490 object store is remote5491 behaves like builds correct paths5492 #store_dir5493 behaves like matches the method pattern5494 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/5495 #cache_dir5496 behaves like matches the method pattern5497 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5498 #work_dir5499 behaves like matches the method pattern5500 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5501 #upload_path5502 behaves like matches the method pattern5503 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5504 #relative_path5505 is relative (PENDING: Path not set, skipping.)5506 .absolute_path5507 behaves like matches the method pattern5508 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5509 .base_dir5510 behaves like matches the method pattern5511 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5512 path traversal exploits5513 throws an exception5514 remote file5515 with object storage enabled5516 can store file remotely5517MergeRequests::Mergeability::DetailedMergeStatusService5518 # order random5519 when merge status have a failure5520 returns the failure reason5521 when merge status is preparing5522 returns :checking5523 when merge status is unchecked5524 returns :unchecked5525 when merge checks are a success5526 returns :mergeable5527 when merge status is cannot_be_merged_rechecking5528 returns :checking5529 when merge status is checking5530 returns :checking5531 when all but the ci check fails5532 when pipeline does not exist5533 returns the failure reason5534 when pipeline exists5535 when the pipeline is running5536 returns the failure reason5537 when the pipeline is not running5538 returns the failure reason5539Notes::CopyService5540 #initialize5541 validates that we cannot copy notes to the same Noteable5542 #execute5543 rewriting the note body5544 simple notes5545 rewrites existing notes in valid order5546 copies all the issue notes5547 does not change the note attributes5548 copies the award emojis5549 copies system_note_metadata for system note5550 returns success5551 copies rendered markdown from note_html5552 notes with mentions5553 saves user mentions with actual mentions for new issue5554 notes with reference5555 rewrites the references correctly5556 does not copy rendered markdown from note_html5557 notes with upload5558 rewrites note content correctly5559 does not copy rendered markdown from note_html5560 discussion notes5561 rewrites discussion correctly5562projects/tags/index.html.haml5563 when tag is associated with a release5564 when name does not contain a backslash5565 renders a link to the release page5566 when name contains backslash5567 renders a link to the release page with backslash escaped5568 when the most recent build for a tag has artifacts5569 renders the Artifacts section in the download list5570 renders artifact download links5571 when the most recent build for a tag has expired artifacts5572 does not render the Artifacts section in the download list5573 does not render artifact download links5574 build stats5575 shows build status or placeholder when pipelines present5576 shows no build status or placeholder when no pipelines present5577 shows no build status or placeholder when pipelines are private5578 when Gitaly is unavailable5579 renders an error5580ProjectMemberPresenter5581 #can_resend_invite?5582 when project_member is invited5583 and user can admin_project_member5584 is expected to eq true5585 and user cannot admin_project_member5586 is expected to eq false5587 when project_member is not invited5588 and user can admin_project_member5589 is expected to eq false5590 and user cannot admin_project_member5591 is expected to eq false5592 #last_owner?5593 when member is the holder of the personal namespace5594 is expected to eq true5595 when member is not the holder of the personal namespace5596 is expected to eq false5597 #can_update?5598 when user is NOT attempting to update an Owner5599 when user can update_project_member5600 is expected to eq true5601 when user cannot update_project_member5602 is expected to eq false5603 when user is attempting to update an Owner5604 when user can manage owners5605 is expected to eq true5606 when user cannot manage owners5607 is expected to eq false5608 #can_remove?5609 when user is NOT attempting to remove an Owner5610 when user can destroy_project_member5611 is expected to eq true5612 when user cannot destroy_project_member5613 is expected to eq false5614 when user is attempting to remove an Owner5615 when user can manage owners5616 is expected to eq true5617 when user cannot manage owners5618 is expected to eq false5619 #can_approve?5620 when project_member has request an invite5621 and user can update_project_member5622 is expected to eq true5623 and user cannot update_project_member5624 is expected to eq false5625 when project_member did not request an invite5626 and user can update_project_member5627 is expected to eq false5628 and user cannot update_project_member5629 is expected to eq false5630 valid level roles5631 when user cannot manage owners5632 behaves like #valid_level_roles5633 when no parent member is present5634 returns all permissible roles5635 when parent member is present5636 returns higher roles when a parent member is present5637 when user can manage owners5638 behaves like #valid_level_roles5639 when no parent member is present5640 returns all permissible roles5641 when parent member is present5642 returns higher roles when a parent member is present5643Gitlab::Database::LoadBalancing::Host5644 #connection5645 returns a connection from the pool5646 #disconnect!5647 disconnects the pool5648 disconnects the pool when waiting for connections takes too long5649 #release_connection5650 releases the current connection from the pool5651 #offline!5652 marks the host as offline5653 #online?5654 when the replica status is recent enough5655 returns the latest status5656 returns an offline status5657 when the replica status is outdated5658 refreshes the status5659 and replica is not up to date5660 marks the host offline5661 when the replica is not online5662 returns false when ActionView::Template::Error is raised5663 returns false when ActiveRecord::StatementInvalid is raised5664 returns false when PG::Error is raised5665 returns false when ActiveRecord::ConnectionNotEstablished is raised5666 #refresh_status5667 refreshes the status5668 #check_replica_status?5669 returns true when we need to check the replica status5670 returns false when we do not need to check the replica status5671 #replica_is_up_to_date?5672 when the lag time is below the threshold5673 returns true5674 when the lag time exceeds the threshold5675 returns true if the data is recent enough5676 returns false when the data is not recent enough5677 #replication_lag_below_threshold5678 returns true when the lag time is below the threshold5679 returns false when the lag time exceeds the threshold5680 returns false when no lag time could be calculated5681 #data_is_recent_enough?5682 returns true when the data is recent enough5683 returns false when the data is not recent enough5684 returns false when no lag size could be calculated5685 #replication_lag_time5686 returns the lag time as a Float5687 returns nil when the database query returned no rows5688 #replication_lag_size5689 returns the lag size as an Integer5690 returns nil when the database query returned no rows5691 returns nil when the database connection fails5692 #primary_write_location5693 returns the write location of the primary5694 #caught_up?5695 returns true when a host has caught up5696 returns true when a host has caught up5697 returns false when a host has not caught up5698 returns false when a host has not caught up5699 returns false when the connection fails5700 #database_replica_location5701 returns the write ahead location of the replica5702 returns nil when the database query returned no rows5703 returns nil when the database connection fails5704 #query_and_release5705 executes a SQL query5706 releases the connection after running the query5707 returns an empty Hash in the event of an error5708 #host5709 returns the hostname5710Gitlab::Verify::Uploads5711 behaves like Gitlab::Verify::BatchVerifier subclass5712 batching5713 iterates through objects in batches5714 allows the starting ID to be specified5715 allows the finishing ID to be specified5716 #run_batches5717 passes uploads with the correct file5718 fails uploads with a missing file5719 fails uploads with a mismatched checksum5720 fails uploads with a missing precalculated checksum5721 with remote files5722 returned hash object5723 passes uploads in object storage that exist5724 fails uploads in object storage that do not exist5725 performance5726 avoids N+1 queries5727shared/runners/_runner_details.html.haml5728 Page title5729 sets proper page title5730 Runner id and type5731 when runner is of type instance5732 is expected to have text "Runner #21 shared"5733 when runner is of type group5734 is expected to have text "Runner #22 group"5735 when runner is of type project5736 is expected to have text "Runner #23 project"5737 Active value5738 when runner is active5739 is expected to have text "Active Yes"5740 when runner is inactive5741 is expected to have text "Active No"5742 Protected value5743 when runner is not protected5744 is expected to have text "Protected No"5745 when runner is protected5746 is expected to have text "Protected Yes"5747 Can run untagged jobs value5748 when runner run untagged job is set5749 is expected to have text "Can run untagged jobs Yes"5750 when runner run untagged job is unset5751 is expected to have text "Can run untagged jobs No"5752 Locked to this project value5753 when runner locked is not set5754 is expected to have text "Locked to this project No"5755 when runner is of type group5756 is expected not to have text "Locked to this project"5757 when runner locked is set5758 is expected to have text "Locked to this project Yes"5759 when runner is of type group5760 is expected not to have text "Locked to this project"5761 Tags value5762 when runner does not have tags5763 is expected to have text "Tags"5764 is expected not to have visible css "span.gl-badge.badge.badge-info"5765 when runner have tags5766 is expected to have text "Tags tag1 tag2 tag3"5767 is expected to have visible css "span.gl-badge.badge.badge-info"5768 Metadata values5769 is expected to have text "Name test runner"5770 is expected to have text "Version 11.4.0"5771 is expected to have text "IP Address 127.1.2.3"5772 is expected to have text "Revision abcd1234"5773 is expected to have text "Platform darwin"5774 is expected to have text "Architecture amd64"5775 is expected to have text "Description My runner48"5776 Maximum job timeout value5777 is expected to have text "Maximum job timeout 1h 30m"5778 Last contact value5779 when runner have not contacted yet5780 is expected to have text "Last contact Never"5781 when runner have already contacted5782 is expected to have text "Last contact Mar 24, 2023"5783ObjectStorage::Config5784 #credentials5785 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}5786 #storage_options5787 is expected to eq {:server_side_encryption=>"AES256", :server_side_encryption_kms_key_id=>"arn:aws:12345"}5788 #enabled?5789 is expected to eq true5790 #bucket5791 is expected to eq "test-bucket"5792 #use_iam_profile5793 is expected to equal false5794 #use_path_style5795 is expected to equal false5796 with unconsolidated settings5797 consolidated_settings? returns false5798 is expected to equal false5799 with consolidated settings5800 consolidated_settings? returns true5801 is expected to equal true5802 with IAM profile configured5803 value: true, expected: true5804 coerces the value to a boolean5805 value: "true", expected: true5806 coerces the value to a boolean5807 value: "yes", expected: true5808 coerces the value to a boolean5809 value: false, expected: false5810 coerces the value to a boolean5811 value: "false", expected: false5812 coerces the value to a boolean5813 value: "no", expected: false5814 coerces the value to a boolean5815 value: nil, expected: false5816 coerces the value to a boolean5817 with path style configured5818 value: true, expected: true5819 coerces the value to a boolean5820 value: "true", expected: true5821 coerces the value to a boolean5822 value: "yes", expected: true5823 coerces the value to a boolean5824 value: false, expected: false5825 coerces the value to a boolean5826 value: "false", expected: false5827 coerces the value to a boolean5828 value: "no", expected: false5829 coerces the value to a boolean5830 value: nil, expected: false5831 coerces the value to a boolean5832 with hostname style access5833 #use_path_style? returns false5834 with AWS credentials5835 is expected to eq "AWS"5836 is expected to equal true5837 is expected to equal false5838 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}5839 with FIPS enabled5840 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :disable_content_md5_validation=>true, :provider=>"AWS", :region=>"us-east-1"}5841 with Google credentials5842 is expected to eq "Google"5843 is expected to equal false5844 is expected to equal true5845 is expected to eq {}5846 with SSE-KMS enabled5847 is expected to equal true5848 is expected to eq "AES256"5849 is expected to eq "arn:aws:12345"5850 is expected to contain exactly "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id"5851 with only server side encryption enabled5852 is expected to equal true5853 is expected to eq "AES256"5854 is expected to be nil5855 is expected to eq {"x-amz-server-side-encryption"=>"AES256"}5856 without encryption enabled5857 is expected to equal false5858 is expected to be nil5859 is expected to be nil5860 is expected to eq {}5861 with object storage disabled5862 is expected to equal false5863Verify/Load-Performance-Testing.gitlab-ci.yml5864 the created pipeline5865 has no errors5866 on master5867 behaves like load_performance job on tag or branch5868 by default5869 on another branch5870 behaves like load_performance job on tag or branch5871 by default5872 on tag5873 behaves like load_performance job on tag or branch5874 by default5875 on merge request5876 has no jobs5877UserRecentEventsFinder5878 #execute5879 does not include the events if the user cannot read cross project5880 when profile is public5881 returns all the events5882 when profile is private5883 returns no event5884 events from multiple users5885 includes events from all users5886 does not include events from users with private profile5887 selected events5888 event_filter: #<EventFilter:0x00007fc25098d0b8 @filter="push">, ordered_expected_events: lazy { [push_event1, push_event2] }5889 only returns selected events from all users (id DESC)5890 event_filter: #<EventFilter:0x00007fc2509786b8 @filter="merged">, ordered_expected_events: lazy { [merge_event1, merge_event2] }5891 only returns selected events from all users (id DESC)5892 event_filter: #<EventFilter:0x00007fc25096ccc8 @filter="comments">, ordered_expected_events: lazy { [comment_event1, comment_event2, comment_event3] }5893 only returns selected events from all users (id DESC)5894 event_filter: #<EventFilter:0x00007fc25095f050 @filter="team">, ordered_expected_events: lazy { [private_event, internal_event, public_event, private_event_second_user, internal_event_second_user, public_event_second_user] }5895 only returns selected events from all users (id DESC)5896 event_filter: #<EventFilter:0x00007fc25095cdc8 @filter="issue">, ordered_expected_events: lazy { [issue_event1, issue_event2, issue_event3] }5897 only returns selected events from all users (id DESC)5898 event_filter: #<EventFilter:0x00007fc25084e3f0 @filter="wiki">, ordered_expected_events: lazy { [wiki_event1, wiki_event2] }5899 only returns selected events from all users (id DESC)5900 event_filter: #<EventFilter:0x00007fc250952940 @filter="designs">, ordered_expected_events: lazy { [design_event1, design_event2] }5901 only returns selected events from all users (id DESC)5902 with pagination params5903 limit: nil, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user, private_event_second_user, public_event, internal_event, private_event] }5904 returns paginated events sorted by id (DESC)5905 limit: 2, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user] }5906 returns paginated events sorted by id (DESC)5907 limit: nil, offset: 4, ordered_expected_events: lazy { [internal_event, private_event] }5908 returns paginated events sorted by id (DESC)5909 limit: 2, offset: 2, ordered_expected_events: lazy { [private_event_second_user, public_event] }5910 returns paginated events sorted by id (DESC)5911 filter activity events5912 includes all events5913 only includes push events5914 only includes merge events5915 only includes issue events5916 only includes comments events5917 only includes wiki events5918 only includes design events5919 only includes team events5920 when unknown filter is given5921 includes returns all events5922 issue activity events5923 includes all issue related events5924 limits5925 when limit is not set5926 returns events limited to DEFAULT_LIMIT5927 when limit is set5928 returns events limited to specified limit5929 when limit is set to a number that exceeds maximum limit5930 returns events limited to MAX_LIMIT5931Gitlab::I18n::Pluralization5932 # order random5933 .install_on5934 adds pluralisation_rule method5935 .call5936 with available locales5937 locale: "bg"5938 supports pluralization5939 locale: "cs_CZ"5940 supports pluralization5941 locale: "da_DK"5942 supports pluralization5943 locale: "de"5944 supports pluralization5945 locale: "en"5946 supports pluralization5947 locale: "eo"5948 supports pluralization5949 locale: "es"5950 supports pluralization5951 locale: "fil_PH"5952 supports pluralization5953 locale: "fr"5954 supports pluralization5955 locale: "gl_ES"5956 supports pluralization5957 locale: "id_ID"5958 supports pluralization5959 locale: "it"5960 supports pluralization5961 locale: "ja"5962 supports pluralization5963 locale: "ko"5964 supports pluralization5965 locale: "nb_NO"5966 supports pluralization5967 locale: "nl_NL"5968 supports pluralization5969 locale: "pl_PL"5970 supports pluralization5971 locale: "pt_BR"5972 supports pluralization5973 locale: "ro_RO"5974 supports pluralization5975 locale: "ru"5976 supports pluralization5977 locale: "si_LK"5978 supports pluralization5979 locale: "tr_TR"5980 supports pluralization5981 locale: "uk"5982 supports pluralization5983 locale: "zh_CN"5984 supports pluralization5985 locale: "zh_HK"5986 supports pluralization5987 locale: "zh_TW"5988 supports pluralization5989 with missing rules5990 raises an ArgumentError5991WorkItems::TaskListReferenceReplacementService5992 #execute5993 when task mardown spans a single line5994 creates description version note5995 behaves like successful work item task reference replacement service5996 is expected to be success5997 replaces the original issue markdown description with new work item reference5998 when task mardown spans multiple lines5999 behaves like successful work item task reference replacement service6000 is expected to be success6001 replaces the original issue markdown description with new work item reference6002 when description does not contain a task6003 behaves like failing work item task reference replacement service6004 is expected to be error6005 returns an error message6006 when description is empty6007 behaves like failing work item task reference replacement service6008 is expected to be error6009 returns an error message6010 when line_number_start is lower than 16011 behaves like failing work item task reference replacement service6012 is expected to be error6013 returns an error message6014 when line_number_end is lower than line_number_start6015 behaves like failing work item task reference replacement service6016 is expected to be error6017 returns an error message6018 when lock_version is older than current6019 behaves like failing work item task reference replacement service6020 is expected to be error6021 returns an error message6022 when work item is stale before updating6023 behaves like failing work item task reference replacement service6024 is expected to be error6025 returns an error message6026Gitlab::WebHooks::RecursionDetection6027 .set_from_headers6028 when the detection header is present6029 sets the request UUID value from the headers6030 when detection header is not present6031 does not set the request UUID6032 .set_request_uuid6033 sets the request UUID value6034 .register!6035 stores IDs in the same cache when a request UUID is set, until the request UUID changes6036 stores IDs in unique caches when no request UUID is present6037 touches the storage ttl each time it is called6038 block?6039 returns false if webhook should not be blocked6040 when the webhook has previously fired6041 returns true6042 when the request UUID changes again6043 returns false6044 when the count limit has been reached6045 returns true6046 when the request UUID changes again6047 returns false6048 .header6049 returns a header with the UUID value6050 .to_log6051 returns the UUID value and all registered webhook IDs in a Hash6052Gitlab::Ci::Status::Composite6053 .initialize6054 when passing a single status6055 raises ArgumentError6056 #status6057 allow_failure: false6058 build_statuses: [:skipped], dag: false, result: "skipped", has_warnings: false6059 behaves like compares status and warnings6060 returns status and warnings?6061 build_statuses: [:skipped, :success], dag: false, result: "success", has_warnings: false6062 behaves like compares status and warnings6063 returns status and warnings?6064 build_statuses: [:skipped, :success], dag: true, result: "skipped", has_warnings: false6065 behaves like compares status and warnings6066 returns status and warnings?6067 build_statuses: [:created], dag: false, result: "created", has_warnings: false6068 behaves like compares status and warnings6069 returns status and warnings?6070 build_statuses: [:preparing], dag: false, result: "preparing", has_warnings: false6071 behaves like compares status and warnings6072 returns status and warnings?6073 build_statuses: [:canceled, :success, :skipped], dag: false, result: "canceled", has_warnings: false6074 behaves like compares status and warnings6075 returns status and warnings?6076 build_statuses: [:canceled, :success, :skipped], dag: true, result: "skipped", has_warnings: false6077 behaves like compares status and warnings6078 returns status and warnings?6079 build_statuses: [:pending, :created, :skipped], dag: false, result: "pending", has_warnings: false6080 behaves like compares status and warnings6081 returns status and warnings?6082 build_statuses: [:pending, :created, :skipped, :success], dag: false, result: "running", has_warnings: false6083 behaves like compares status and warnings6084 returns status and warnings?6085 build_statuses: [:running, :created, :skipped, :success], dag: false, result: "running", has_warnings: false6086 behaves like compares status and warnings6087 returns status and warnings?6088 build_statuses: [:pending, :created, :skipped], dag: true, result: "skipped", has_warnings: false6089 behaves like compares status and warnings6090 returns status and warnings?6091 build_statuses: [:pending, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false6092 behaves like compares status and warnings6093 returns status and warnings?6094 build_statuses: [:running, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false6095 behaves like compares status and warnings6096 returns status and warnings?6097 build_statuses: [:success, :waiting_for_resource], dag: false, result: "waiting_for_resource", has_warnings: false6098 behaves like compares status and warnings6099 returns status and warnings?6100 build_statuses: [:success, :manual], dag: false, result: "manual", has_warnings: false6101 behaves like compares status and warnings6102 returns status and warnings?6103 build_statuses: [:success, :scheduled], dag: false, result: "scheduled", has_warnings: false6104 behaves like compares status and warnings6105 returns status and warnings?6106 build_statuses: [:created, :preparing], dag: false, result: "preparing", has_warnings: false6107 behaves like compares status and warnings6108 returns status and warnings?6109 build_statuses: [:created, :success, :pending], dag: false, result: "running", has_warnings: false6110 behaves like compares status and warnings6111 returns status and warnings?6112 build_statuses: [:skipped, :success, :failed], dag: false, result: "failed", has_warnings: false6113 behaves like compares status and warnings6114 returns status and warnings?6115 build_statuses: [:skipped, :success, :failed], dag: true, result: "skipped", has_warnings: false6116 behaves like compares status and warnings6117 returns status and warnings?6118 build_statuses: [:success, :manual], dag: true, result: "pending", has_warnings: false6119 behaves like compares status and warnings6120 returns status and warnings?6121 build_statuses: [:success, :failed, :created], dag: true, result: "pending", has_warnings: false6122 behaves like compares status and warnings6123 returns status and warnings?6124 allow_failure: true6125 build_statuses: [:manual], dag: false, result: "skipped", has_warnings: false6126 behaves like compares status and warnings6127 returns status and warnings?6128 build_statuses: [:skipped, :failed], dag: false, result: "success", has_warnings: true6129 behaves like compares status and warnings6130 returns status and warnings?6131 build_statuses: [:skipped, :failed], dag: true, result: "skipped", has_warnings: true6132 behaves like compares status and warnings6133 returns status and warnings?6134 build_statuses: [:success, :manual], dag: true, result: "skipped", has_warnings: false6135 behaves like compares status and warnings6136 returns status and warnings?6137 build_statuses: [:success, :manual], dag: false, result: "success", has_warnings: false6138 behaves like compares status and warnings6139 returns status and warnings?6140 build_statuses: [:created, :failed], dag: false, result: "created", has_warnings: true6141 behaves like compares status and warnings6142 returns status and warnings?6143 build_statuses: [:preparing, :manual], dag: false, result: "preparing", has_warnings: false6144 behaves like compares status and warnings6145 returns status and warnings?6146Gitlab::UsageMetricDefinition::RedisHllGenerator6147 creates metric definition files6148 with multiple events6149 creates metric definition files6150 with ee option6151 creates metric definition files6152Projects::DownloadService6153 File service6154 for a URL that is not on whitelist6155 is expected to eq nil6156 for URLs that are on the whitelist6157 an image file6158 is expected to have key :alt6159 is expected to have key :url6160 is expected to match "rails_sample.jpg"6161 is expected to eq "rails_sample"6162 a txt file6163 is expected to have key :alt6164 is expected to have key :url6165 is expected to match "doc_sample.txt"6166 is expected to eq "doc_sample.txt"6167Gitlab::Kubernetes::DefaultNamespace6168 #from_environment_name6169 generates a slug and passes it to #from_environment_slug6170 #from_environment_slug6171 namespace per environment is enabled6172 platform namespace is specified6173 is expected to eq "platform-namespace-environment197"6174 cluster is unmanaged6175 is expected to eq "platform-namespace"6176 platform namespace is blank6177 constructs a namespace from the project and environment slug6178 behaves like handles very long project paths6179 is expected to satisfy expression `s.length <= 63`6180 namespace per environment is disabled6181 platform namespace is specified6182 is expected to eq "platform-namespace"6183 platform namespace is blank6184 constructs a namespace from just the project6185 behaves like handles very long project paths6186 is expected to satisfy expression `s.length <= 63`6187WikiHelper6188 #wiki_page_title6189 sets the title for the show action6190 sets the title for a custom action6191 sets the title for an unsaved page6192 #breadcrumb6193 when the page is at the root level6194 returns the capitalized page name6195 when the page is inside a directory6196 returns the capitalized name of each directory and of the page itself6197 #wiki_attachment_upload_url6198 returns the upload endpoint for project wikis6199 raises an exception for unsupported wiki containers6200 #wiki_sort_controls6201 initial call6202 renders with default values6203 sort by asc order6204 renders a link with opposite direction6205 sort by desc order6206 renders a link with opposite direction6207 #wiki_sort_title6208 returns a title corresponding to a key6209 defaults to Title if a key is unknown6210 #wiki_page_tracking_context6211 returns the tracking context6212 returns a nest level of zero for toplevel files6213 behaves like wiki endpoint helpers6214 returns the full endpoint url6215 when relative url is set6216 returns the full endpoint url with the relative path6217ContainerRegistry::Migration::ObserverWorker6218 #perform6219 when the migration feature flag is disabled6220 does nothing6221 when the migration is enabled6222 logs all the counts6223 with load balancing enabled6224 uses the replica6225PreferencesHelper6226 #dashboard_choices6227 raises an exception when defined choices may be missing6228 raises an exception when defined choices may be using the wrong key6229 provides better option descriptions6230 #first_day_of_week_choices6231 returns Saturday, Sunday and Monday as choices6232 #first_day_of_week_choices_with_default6233 returns choices including system default6234 returns choices including system default set to Monday6235 returns choices including system default set to Saturday6236 #user_application_theme6237 with a user6238 returns user's theme's css_class6239 returns the default when id is invalid6240 without a user6241 returns the default theme6242 #user_application_dark_mode?6243 with a user6244 returns true if user's selected dark theme6245 returns false if user's selected any light theme6246 without a user6247 returns false6248 #user_color_scheme6249 with a user6250 returns user's scheme's css_class6251 returns the default when id is invalid6252 without a user6253 returns the default theme6254 #user_diffs_colors6255 with a user6256 returns user's diffs colors6257 omits property if nil6258 omits property if blank6259 without a user6260 returns no properties6261 #custom_diff_color_classes6262 with a user6263 returns color classes6264 omits property if nil6265 omits property if blank6266 without a user6267 returns no classes6268 #language_choices6269 lists all the selectable language options with their translation percent6270 #integration_views6271 when Gitpod is not enabled6272 does not include Gitpod integration6273 when Gitpod is enabled6274 includes Gitpod integration6275 returns the Gitpod url configured in settings6276 when Gitpod url is not set6277 returns the Gitpod default url6278PagesDeployment6279 saves size along with the file6280 associations6281 is expected to belong to project required: true6282 is expected to belong to ci_build optional: true6283 validations6284 is expected to validate that :file cannot be empty/falsy6285 is expected to validate that :size cannot be empty/falsy6286 is expected to validate that :size looks like an integer greater than 06287 is expected to validate that :file_count cannot be empty/falsy6288 is expected to validate that :file_count looks like an integer greater than or equal to 06289 is expected to validate that :file_sha256 cannot be empty/falsy6290 is expected to validate that :file_store is either ‹1› or ‹2›6291 is valid when created from the factory6292 .migrated_from_legacy_storage6293 only returns migrated deployments6294 with deployments stored locally and remotely6295 .with_files_stored_locally6296 only returns deployments with files stored locally6297 .with_files_stored_remotely6298 only returns deployments with files stored remotely6299 when uploading the file6300 #store_after_commit?6301 when feature flag pages_deploy_upload_file_outside_transaction is disabled6302 returns false6303 when feature flag pages_deploy_upload_file_outside_transaction is enabled6304 returns true6305 when feature flag pages_deploy_upload_file_outside_transaction is disabled6306 stores the file within the transaction6307 when feature flag pages_deploy_upload_file_outside_transaction is enabled6308 stores the file outsize of the transaction6309 does nothing when the file did not change6310 #migrated?6311 returns false for normal deployment6312 returns true for migrated deployment6313 default for file_store6314 uses local store when object storage is not enabled6315 uses remote store when object storage is enabled6316 .older_than6317 returns deployments with lower id6318Todos::Destroy::ConfidentialIssueService6319 #execute6320 when issue_id parameter is present6321 when provided issue is confidential6322 removes issue todos for users who can not access the confidential issue6323 when provided issue is not confidential6324 does not remove any todos6325 when project_id parameter is present6326 removes issues todos for users that cannot access confidential issues6327Ci::UnitTestFailure6328 relationships6329 is expected to belong to build required: false6330 is expected to belong to unit_test required: false6331 validations6332 is expected to validate that :unit_test cannot be empty/falsy6333 is expected to validate that :build cannot be empty/falsy6334 is expected to validate that :failed_at cannot be empty/falsy6335 .recent_failures_count6336 when unit test failures are within the date range and are for the unit test keys6337 returns the number of failures for each unit test key hash for the past 14 days by default6338 when unit test failures are within the date range but are not for the unit test keys6339 excludes them from the count6340 when unit test failures are not within the date range but are for the unit test keys6341 excludes them from the count6342 partitioning6343 with build6344 copies the partition_id from build (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6345 when it is already set6346 does not change the partition_id value (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6347 without build6348 example at ./spec/models/ci/unit_test_failure_spec.rb:108 (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6349 does not change the partition_id value (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6350DesignManagement::DesignCollection6351 .find_or_create_design!6352 finds an existing design6353 creates a new design if one didn't exist6354 only queries the designs once6355 inserts the design after any existing designs6356 #copy_state6357 defaults to ready6358 persists its state changes between initializations6359 state: "ready", can_start: true, can_end: false, can_error: true, can_reset: true6360 maintains state machine transition rules6361 state: "in_progress", can_start: false, can_end: true, can_error: true, can_reset: true6362 maintains state machine transition rules6363 state: "error", can_start: false, can_end: false, can_error: false, can_reset: true6364 maintains state machine transition rules6365 clearing the redis cached state when state changes back to ready6366 clears the cached state on end_copy!6367 clears the cached state on reset_copy!6368 #empty?6369 is true when the design collection has no designs6370 is false when the design collection has designs6371 #versions6372 includes versions for all designs6373 #repository6374 builds a design repository6375 #designs_by_filename6376 finds all the designs with those filenames on this issue6377 only makes a single query6378 some are deleted6379 takes deletion into account6380layouts/header/_new_dropdown6381 with group-specific links6382 as a Group owner6383 has a "New project" link6384 has a "New subgroup" link6385 invite members item6386 behaves like invite member selector6387 with ability to invite members6388 is expected to have visible css ".js-invite-members-trigger"6389 without ability to invite members6390 is expected not to have visible css ".js-invite-members-trigger"6391 with project-specific links6392 as a Project owner6393 has a "New issue" link6394 has a "New merge request" link6395 has a "New snippet" link6396 as a Project guest6397 has no "New merge request" link6398 has no "New snippet" link6399 invite members item6400 behaves like invite member selector6401 with ability to invite members6402 is expected to have visible css ".js-invite-members-trigger"6403 without ability to invite members6404 is expected not to have visible css ".js-invite-members-trigger"6405 with global links6406 has a "New project" link6407 has a "New group" link6408 has a "New snippet" link6409 when partial exists in a menu item6410 renders the menu item partial without rendering invite modal partial6411 when the user is not allowed to do anything6412 is nil6413Gitlab::Usage::Metrics::Instrumentations::InProductMarketingEmailSentMetric6414 # order random6415 behaves like a correct instrumented metric value and query6416 behaves like a correct instrumented metric value6417 has correct value6418 behaves like a correct instrumented metric query6419 has correct generate query6420 options_key: :track, valid_value: "admin_verify", invalid_value: "invite_team"6421 raises an exception if option is not present6422 raises an exception if option has invalid value6423 doesn't raise exceptions if option has valid value6424 options_key: :series, valid_value: 1, invalid_value: 56425 raises an exception if option is not present6426 raises an exception if option has invalid value6427 doesn't raise exceptions if option has valid value6428Namespaces::ProcessSyncEventsWorker6429 is labeled as idempotent6430 performs multiple times sequentially without raising an exception6431 deduplication6432 has the `until_executed` deduplicate strategy6433 has an option to reschedule once if deduplicated6434 expect the job to enqueue itself again if there was more items to be processed6435 #perform6436 consumes all sync events6437 syncs namespace hierarchy traversal ids6438 logs the service result6439Groups::GroupLinks::DestroyService#execute6440 when authorizing by user6441 single link6442 destroys the link6443 with skip_group_share_unlink_auth_refresh feature flag disabled6444 revokes project authorization6445 with skip_group_share_unlink_auth_refresh feature flag enabled6446 maintains project authorization6447 multiple links6448 with skip_group_share_unlink_auth_refresh feature flag disabled6449 updates project authorization once per group6450 with skip_group_share_unlink_auth_refresh feature flag enabled6451 does not update project authorization once per group6452 when skipping authorization6453 with provided group and owner6454 destroys the link6455 without providing group or owner6456 destroys the link6457DeleteDiffFilesWorker6458 #perform6459 deletes all merge request diff files6460 updates state to without_files6461 resets the files_count of the diff6462 does nothing if diff was already marked as "without_files"6463 rollsback if something goes wrong6464Gitlab::Git6465 .ref_name6466 ensure ref is a valid UTF-8 string6467 when ref contains characters \x80 - \xFF6468 correctly converts it6469 .commit_id?6470 sha: "", result: false6471 returns the expected result6472 sha: "foobar", result: false6473 returns the expected result6474 sha: "4b825dc", result: false6475 returns the expected result6476 sha: "zzz25dc642cb6eb9a060e54bf8d69288fbee4904", result: false6477 returns the expected result6478 sha: "4b825dc642cb6eb9a060e54bf8d69288fbee4904", result: true6479 returns the expected result6480 sha: "0000000000000000000000000000000000000000", result: true6481 returns the expected result6482 .shas_eql?6483 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", result: true6484 is expected to eq true6485 is commutative6486 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2", result: true6487 is expected to eq true6488 is commutative6489 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "d42df6f6db32cf340875f2f59b848ddba2b7e075", result: false6490 is expected to eq false6491 is commutative6492 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b", result: false6493 is expected to eq false6494 is commutative6495 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: nil, result: false6496 is expected to eq false6497 is commutative6498 sha1: nil, sha2: nil, result: true6499 is expected to eq true6500 is commutative6501Gitlab::Ci::Pipeline::Expression::Parser6502 #tree6503 validates simple operators6504 expression: "$VAR1 == \"123\"", result_tree: "equals($VAR1, \"123\")"6505 is expected to eq "equals($VAR1, \"123\")"6506 expression: "$VAR1 == \"123\" == $VAR2", result_tree: "equals(equals($VAR1, \"123\"), $VAR2)"6507 is expected to eq "equals(equals($VAR1, \"123\"), $VAR2)"6508 expression: "$VAR", result_tree: "$VAR"6509 is expected to eq "$VAR"6510 expression: "\"some value\"", result_tree: "\"some value\""6511 is expected to eq "\"some value\""6512 expression: "null", result_tree: "null"6513 is expected to eq "null"6514 expression: "$VAR1 || $VAR2 && $VAR3", result_tree: "or($VAR1, and($VAR2, $VAR3))"6515 is expected to eq "or($VAR1, and($VAR2, $VAR3))"6516 expression: "$VAR1 && $VAR2 || $VAR3", result_tree: "or(and($VAR1, $VAR2), $VAR3)"6517 is expected to eq "or(and($VAR1, $VAR2), $VAR3)"6518 expression: "$VAR1 && $VAR2 || $VAR3 && $VAR4", result_tree: "or(and($VAR1, $VAR2), and($VAR3, $VAR4))"6519 is expected to eq "or(and($VAR1, $VAR2), and($VAR3, $VAR4))"6520 expression: "$VAR1 && ($VAR2 || $VAR3) && $VAR4", result_tree: "and(and($VAR1, or($VAR2, $VAR3)), $VAR4)"6521 is expected to eq "and(and($VAR1, or($VAR2, $VAR3)), $VAR4)"6522 when combining && and OR operators6523 returns operations in a correct order6524 when using parenthesis6525 returns operations in a correct order6526 when expression is empty6527 raises a parsing error6528 when two value tokens have no operator6529 raises a parsing error6530 when an operator has no left side6531 raises an OperatorError6532 when an operator has no right side6533 raises an OperatorError6534 when parenthesis are unmatched6535 expression: "$VAR == ("6536 raises a ParseError6537 expression: "$VAR2 == (\"aa\""6538 raises a ParseError6539 expression: "$VAR2 == (\"aa\"))"6540 raises a ParseError6541 expression: "$VAR2 == \"aa\")"6542 raises a ParseError6543 expression: "(($VAR2 == \"aa\")"6544 raises a ParseError6545 expression: "($VAR2 == \"aa\"))"6546 raises a ParseError6547Gitlab::ImportExport::AttributesFinder6548 #find_root6549 generates hash from project tree config6550 individual scenarios6551 generates the correct hash for a single project relation6552 generates the correct hash for a single project feature relation6553 generates the correct hash for a multiple project relation6554 generates the correct hash for a single sub-relation6555 generates the correct hash for a multiple sub-relation6556 generates the correct hash for a sub-relation with another sub-relation6557 generates the correct hash for a relation with included attributes6558 generates the correct hash for a relation with excluded attributes6559 generates the correct hash for a relation with both excluded and included attributes6560 generates the correct hash for a relation with custom methods6561 #find_relations_tree6562 when initialized with config including tree6563 when relation is in top-level keys of the tree6564 is expected to eq {:issues=>{}}6565 when the relation is not in top-level keys6566 is expected to be nil6567 when tree is not present in config6568 is expected to be nil6569 when include_import_only_tree is true6570 is expected to eq {:ci_pipelines=>{:stages=>{:builds=>nil, :statuses=>nil}}}6571 #find_excluded_keys6572 when initialized with excluded_attributes6573 is expected to eq ["name", "path"]6574 when excluded_attributes are not present in config6575 is expected to eq []6576Gitlab::Ci::SecureFiles::MobileProvision6577 # order random6578 when the supplied profile cannot be parsed6579 when the supplied certificate cannot be parsed6580 #decoded_plist6581 assigns the error message and returns nil6582 #properties6583 returns nil6584 #metadata6585 returns an empty hash6586 #expires_at6587 returns nil6588 when the supplied profile can be parsed6589 #decoded_plist6590 returns an XML string6591 #properties6592 returns the property list of the decoded plist provided6593 returns nil if the property list fails to be parsed from the decoded plist6594 #metadata6595 returns a hash with the expected keys6596 #id6597 returns the profile UUID6598 #expires_at6599 returns the expiration timestamp of the profile6600 #platforms6601 returns the platforms assigned to the profile6602 #team_name6603 returns the team name in the profile6604 #team_id6605 returns the team ids in the profile6606 #app_name6607 returns the app name in the profile6608 #app_id6609 returns the app id in the profile6610 #app_id_prefix6611 returns the app id prefixes in the profile6612 #xcode_managed6613 returns the xcode_managed property in the profile6614 #entitlements6615 returns the entitlements in the profile6616 #devices6617 returns the devices attached to the profile6618 #certificate_ids6619 returns the certificate ids attached to the profile6620Packages::Helm::ProcessFileService6621 #execute6622 without a file6623 returns error6624 with existing package6625 reuses existing package6626 marked as pending_destruction6627 reuses the processing package6628 with a valid file6629 processes file6630 without Chart.yaml6631 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"6632 with Chart.yaml at root6633 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"6634 with an invalid YAML6635 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"6636Ci::BuildsHelper6637 #build_summary6638 when build has no trace6639 when skip is false6640 returns no job log6641 when skip is true6642 returns no job log6643 when build has trace6644 when skip is true6645 returns link to logs6646 when skip is false6647 returns log lines6648 #sidebar_build_class6649 build_id: 1, current_build_id: 1, retried: true, expected_result: "active retried"6650 builds sidebar html class6651 build_id: 1, current_build_id: 1, retried: false, expected_result: "active"6652 builds sidebar html class6653 build_id: 1, current_build_id: 2, retried: false, expected_result: ""6654 builds sidebar html class6655 build_id: 1, current_build_id: 2, retried: true, expected_result: "retried"6656 builds sidebar html class6657 #javascript_build_options6658 returns build options6659 #build_failed_issue_options6660 returns failed title and description6661 #prepare_failed_jobs_summary_data6662 returns array of failed jobs with id, failure and failure summary6663UsersStatistics6664 scopes6665 .order_created_at_desc6666 returns the entries ordered by created at descending6667 .latest6668 returns the latest entry6669 .create_current_stats!6670 when successful6671 creates an entry with the current statistics values6672 when unsuccessful6673 raises an ActiveRecord::RecordInvalid exception6674 #active6675 sums users statistics values without the value for blocked6676 #total6677 sums all users statistics values6678Gitlab::GithubImport::Importer::PullRequestsReviewsImporter6679 is expected to includes the Gitlab::GithubImport::ParallelScheduling module6680 #representation_class6681 is expected to eq Gitlab::GithubImport::Representation::PullRequestReview6682 #importer_class6683 is expected to eq Gitlab::GithubImport::Importer::PullRequestReviewImporter6684 #collection_method6685 is expected to eq :pull_request_reviews6686 #id_for_already_imported_cache6687 is expected to eq 16688 #each_object_to_import6689 fetches the pull requests reviews data6690 skips cached pages6691 skips cached merge requests6692Sidebars::Panel6693 #renderable_menus6694 returns only renderable menus6695 #super_sidebar_menu_items6696 serializes every renderable menu and returns a flattened result6697 #super_sidebar_context_header6698 raises `NotImplementedError`6699 #has_renderable_menus?6700 returns false when no renderable menus6701 returns true when no renderable menus6702 #add_element6703 adds the element to the last position of the list6704 does not add nil elements6705 #insert_element_before6706 adds element before the specific element class6707 does not add nil elements6708 when reference element does not exist6709 adds the element to the top of the list6710 #insert_element_after6711 adds element after the specific element class6712 does not add nil elements6713 when reference element does not exist6714 adds the element to the end of the list6715 #replace_element6716 replace existing element in the list6717 does not add nil elements6718 does not add the element if the other element is not found6719SortingHelper6720 #issuable_sort_options6721 behaves like without merged date option6722 does not set merged date option6723 when viewing_merge_requests is true6724 behaves like without merged date option6725 does not set merged date option6726 when state param is all6727 behaves like with merged date option6728 adds merged date option6729 when state param is merged6730 behaves like with merged date option6731 adds merged date option6732 #admin_users_sort_options6733 returns correct link attributes in array6734 #issuable_sort_option_title6735 returns correct title for issuable_sort_option_overrides key6736 returns correct title for a valid sort value6737 returns nil for invalid sort value6738 #issuable_sort_direction_button6739 keeps label filter param6740 returns icon with sort-highest when sort is created_date6741 returns icon with sort-lowest when sort is asc6742 returns icon with sort-lowest when sorting by milestone6743 returns icon with sort-lowest when sorting by due_date6744 #can_sort_by_issue_weight?6745 returns false6746 with `admin/projects` controller6747 #projects_sort_options_hash6748 returns a hash of available sorting options6749 with `projects` controller6750 #projects_sort_options_hash6751 returns a hash of available sorting options6752 #tags_sort_options_hash6753 returns a hash of available sorting options6754 with `forks` controller6755 #forks_sort_options_hash6756 returns a hash of available sorting options6757 #forks_reverse_sort_options_hash6758 for each sort option6759 sort_key: "created_desc", reverse_sort_title: "created_asc"6760 returns the correct reversed hash6761 sort_key: "created_asc", reverse_sort_title: "created_desc"6762 returns the correct reversed hash6763 sort_key: "latest_activity_desc", reverse_sort_title: "latest_activity_asc"6764 returns the correct reversed hash6765 sort_key: "latest_activity_asc", reverse_sort_title: "latest_activity_desc"6766 returns the correct reversed hash6767 #forks_sort_direction_button6768 returns the correct link to reverse the current sort option6769 for each sort option6770 selected_sort: "created_desc", icon: "sort-highest"6771 returns the correct icon6772 selected_sort: "latest_activity_desc", icon: "sort-highest"6773 returns the correct icon6774 selected_sort: "created_asc", icon: "sort-lowest"6775 returns the correct icon6776 selected_sort: "latest_activity_asc", icon: "sort-lowest"6777 returns the correct icon6778Sidebars::Groups::Menus::SettingsMenu6779 #render?6780 when user cannot admin group6781 returns false6782 Menu items6783 General menu6784 behaves like access rights checks6785 is expected not to be nil6786 when the user does not have access6787 is expected to be nil6788 Integrations menu6789 behaves like access rights checks6790 is expected not to be nil6791 when the user does not have access6792 is expected to be nil6793 Projects menu6794 behaves like access rights checks6795 is expected not to be nil6796 when the user does not have access6797 is expected to be nil6798 Access Tokens6799 behaves like access rights checks6800 is expected not to be nil6801 when the user does not have access6802 is expected to be nil6803 Repository menu6804 behaves like access rights checks6805 is expected not to be nil6806 when the user does not have access6807 is expected to be nil6808 CI/CD menu6809 behaves like access rights checks6810 is expected not to be nil6811 when the user does not have access6812 is expected to be nil6813 Applications menu6814 behaves like access rights checks6815 is expected not to be nil6816 when the user does not have access6817 is expected to be nil6818 Packages and registries6819 when packages feature is disabled6820 is expected to be nil6821 when packages feature is enabled6822 behaves like access rights checks6823 is expected not to be nil6824 when the user does not have access6825 is expected to be nil6826DesignManagement::Action6827 relations6828 is expected to belong to design required: false6829 is expected to belong to version required: false6830 scopes6831 with 3 designs6832 .most_recent6833 finds the correct version for each design6834 .by_design6835 returns the actions by design_id6836 .with_version6837 preloads the version6838 .by_event6839 returns the actions by event type6840 .up_to_version6841 the version is nil6842 returns all design_versions6843 when given a Version instance6844 the version is the most current6845 is expected to have attributes {:size => 6}6846 the version is the oldest6847 is expected to have attributes {:size => 2}6848 the version is the middle one6849 is expected to have attributes {:size => 4}6850 when given a commit SHA6851 the version is the most current6852 is expected to have attributes {:size => 6}6853 the version is the oldest6854 is expected to have attributes {:size => 2}6855 the version is the middle one6856 is expected to have attributes {:size => 4}6857 when given a String that is not a commit SHA6858 is expected to raise ArgumentError6859Admin::UserActionsHelper6860 #admin_actions6861 the user is a bot6862 is expected to be empty6863 the current user and user are the same6864 is expected to contain exactly "edit"6865 the user is a standard user6866 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6867 the user is an admin user6868 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6869 the user is blocked by LDAP6870 is expected to contain exactly "edit", "ldap", "delete", and "delete_with_contributions"6871 the user is blocked pending approval6872 is expected to contain exactly "edit", "approve", and "reject"6873 the user is blocked6874 is expected to contain exactly "edit", "unblock", "delete", and "delete_with_contributions"6875 the user is deactivated6876 is expected to contain exactly "edit", "block", "ban", "activate", "delete", and "delete_with_contributions"6877 the user is locked6878 is expected to contain exactly "edit", "block", "ban", "deactivate", "unlock", "delete", and "delete_with_contributions"6879 the user is banned6880 is expected to contain exactly "edit", "unban", "delete", and "delete_with_contributions"6881 the current_user does not have permission to delete the user6882 is expected to contain exactly "edit", "block", "ban", and "deactivate"6883 the user is a sole owner of a group6884 is expected to contain exactly "edit", "block", "ban", "deactivate", and "delete_with_contributions"6885 the user is a bot6886 is expected to contain exactly6887BitbucketServer::Representation::PullRequestComment6888 #id6889 is expected to eq 76890 #from_sha6891 is expected to eq "c5f4288162e2e6218180779c7f6ac1735bb56eab"6892 #to_sha6893 is expected to eq "a4c2164330f2549f67c13f36a93884cf66e976be"6894 #to?6895 is expected to be falsey6896 #from?6897 is expected to be truthy6898 #added?6899 is expected to be falsey6900 #removed?6901 is expected to be falsey6902 #new_pos6903 is expected to eq 116904 #old_pos6905 is expected to eq 96906 #file_path6907 is expected to eq "CHANGELOG.md"6908Packages::Helm::PackagesFinder6909 #execute6910 with project6911 with channel6912 is expected to eq [#<Packages::Package id: 26, project_id: 1147, created_at: "2023-03-30 12:01:33.099943003 +0000", upd...sion: "v1.0.7", package_type: "helm", creator_id: 1777, status: "default", last_downloaded_at: nil>]6913 ignores duplicate package files6914 is expected to eq [#<Packages::Package id: 26, project_id: 1147, created_at: "2023-03-30 12:01:33.099943003 +0000", upd...sion: "v1.0.7", package_type: "helm", creator_id: 1777, status: "default", last_downloaded_at: nil>]6915 let clients use select id6916 is expected to eq [26]6917 with not existing channel6918 is expected to be empty6919 with no channel6920 is expected to be empty6921 with no helm packages6922 is expected to be empty6923 with no project6924 is expected to be empty6925 when the limit is hit6926 is expected to eq [#<Packages::Package id: 31, project_id: 1147, created_at: "2023-03-30 12:01:33.606233801 +0000", upd...sion: "v1.0.9", package_type: "helm", creator_id: 1777, status: "default", last_downloaded_at: nil>]6927MigrationsHelpers6928 #active_record_base6929 returns the main base model6930 raises ArgumentError for bad database argument6931 ci database configured6932 returns the CI base model6933 ci database not configured6934 returns the main base model (PENDING: Skipping because some of the extra databases [:ci] are setup)6935 #table6936 creates a class based on main base model6937 ci database configured6938 create a class based on the CI base model6939 ci database not configured6940 creates a class based on main base model (PENDING: Skipping because some of the extra databases [:ci] are setup)6941 #reset_column_information6942 with a regular ActiveRecord model class6943 calls reset_column_information6944 with an anonymous class with table name defined6945 calls reset_column_information6946 with an anonymous class with no table name defined6947 does not call reset_column_information6948Gitlab::Lograge::CustomOptions6949 .call6950 ignores some parameters6951 formats the parameters6952 adds the current time6953 adds the user id6954 adds the response length6955 adds Cloudflare headers6956 adds the metadata6957 with log_response_length disabled6958 does not add the response length6959 when metadata is missing6960 does not break6961 trusted payload6962 is expected to include {:remote_ip => "192.168.1.2", :user_id => "test", :ua => "Nyxt", :queue_duration_s => 0.2, :response_bytes => 1234, :etag_route => "/etag", :request_urgency => :default, :target_duration_s => 1, :cf_ray => "af3e8d3ca7f530880e58a4e9bf932f58", :cf_request_id => "bc57bde4622d66f2b9f9f194a7774469"}6963 payload with rejected fields6964 is expected to include {:request_urgency => :high}6965 is expected not to include {:something => "random"}6966 is expected not to include {:username => nil}6967 when correlation_id is overridden6968 sets the overridden value6969 when feature flags are present6970 and :feature_flag_log_states is enabled6971 adds feature flag events6972 and :feature_flag_log_states is disabled6973 does not track or add feature flag events6974Gitlab::GithubImport::Importer::RepositoryImporter6975 #import_wiki?6976 returns true if the wiki should be imported6977 returns false if the GitHub wiki is disabled6978 returns false if the wiki has already been imported6979 #execute6980 imports the repository and wiki6981 does not import the repository if it already exists6982 does not import the wiki if it is disabled6983 does not import the wiki if the repository could not be imported6984 #import_repository6985 imports the repository6986 #import_wiki_repository6987 imports the wiki repository6988 when it raises a Gitlab::Git::CommandError6989 when the error is not a "repository not exported"6990 creates the wiki and re-raise the exception6991 when the error is a "repository not exported"6992 returns true6993 #update_clone_time6994 sets the timestamp for when the cloning process finished6995Ml::ExperimentTracking::ExperimentRepository6996 # order random6997 #by_iid_or_name6998 when iid passed6999 fetches the experiment7000 and name passed7001 ignores the name7002 and does not exist7003 is expected to eq nil7004 when iid is not passed and name is passed7005 when name exists7006 fetches the experiment7007 when name does not exist7008 is expected to eq nil7009 #add_tag!7010 adds a new tag7011 when name missing7012 throws RecordInvalid7013 when tag was already added7014 throws RecordInvalid7015 #all7016 fetches experiments for project7017 #create!7018 creates the experiment7019 when name exists7020 throws error7021 when has tags7022 creates the experiment with tag7023 when name is missing7024 throws error7025Gitlab::Pages::VirtualHostFinder7026 # order random7027 returns nil when host is empty7028 when host is a unique domain7029 when pages unique domain is enabled7030 when there are no pages deployed for the project7031 returns nil7032 when there are pages deployed for the project7033 returns the virual domain when there are pages deployed for the project7034 when :cache_pages_domain_api is disabled7035 returns the virual domain when there are pages deployed for the project7036 when pages unique domain is disabled7037 when there are no pages deployed for the project7038 returns nil7039 when there are pages deployed for the project7040 returns nil7041 when host is a pages custom domain host7042 when there are no pages deployed for the project7043 returns nil7044 when there are pages deployed for the project7045 returns the virual domain when there are pages deployed for the project7046 when :cache_pages_domain_api is disabled7047 returns the virual domain when there are pages deployed for the project7048 when host is a namespace domain7049 when there are no pages deployed for the project7050 returns no result if the provided host is not subdomain of the Pages host7051 returns the virual domain with no lookup_paths7052 when :cache_pages_domain_api is disabled7053 returns the virual domain with no lookup_paths7054 when there are pages deployed for the project7055 returns no result if the provided host is not subdomain of the Pages host7056 returns the virual domain when there are pages deployed for the project7057 finds domain with case-insensitive7058 when :cache_pages_domain_api is disabled7059 returns the virual domain when there are pages deployed for the project7060Gitlab::ImportExport::FileImporter7061 normal run7062 removes symlinks in root folder7063 removes hidden symlinks in root folder7064 removes evil symlinks in root folder7065 removes symlinks in subfolders7066 removes symlinks without any file permissions7067 does not remove a valid file7068 does not change a valid file permissions7069 creates the file in the right subfolder7070 when the import file is not remote7071 downloads the file from a remote object storage7072 when the import file is remote7073 downloads the file from a remote object storage7074 error7075 removes symlinks in root folder7076 removes hidden symlinks in root folder7077 removes symlinks in subfolders7078 does not remove a valid file7079 when file exceeds acceptable decompressed size7080 when validate_import_decompressed_archive_size feature flag is enabled7081 returns false7082 when validate_import_decompressed_archive_size feature flag is disabled7083 skips validation7084Resolvers::Admin::Analytics::UsageTrends::MeasurementsResolver7085 #resolve7086 when requesting project count measurements7087 as an admin user7088 returns the records, latest first7089 as a non-admin user7090 generates a ResourceNotAvailable error7091 as an unauthenticated user7092 generates a ResourceNotAvailable error7093 when filtering by recorded_after and recorded_before7094 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 1, count: 1000, recorded_at: "2023-03-28 12:01:42.661897038 +0000", identifier: "projects">7095 when "incorrect" values are passed7096 is expected to be empty7097 when requesting pipeline counts by pipeline status7098 filter for pipelines_succeeded7099 is expected to eq [#<Analytics::UsageTrends::Measurement id: 3, count: 1000, recorded_at: "2023-03-28 12:01:42.912393402 +0000", identifier: "pipelines_succeeded">]7100 filter for pipelines_skipped7101 is expected to eq [#<Analytics::UsageTrends::Measurement id: 4, count: 1000, recorded_at: "2023-03-28 12:01:42.919979771 +0000", identifier: "pipelines_skipped">]7102 filter for pipelines_failed7103 is expected to be empty7104 filter for pipelines_canceled7105 is expected to be empty7106GroupImportState7107 validations7108 is expected to belong to user required: true7109 is expected to validate that :group cannot be empty/falsy7110 is expected to validate that :status cannot be empty/falsy7111 can be created without a jid7112 cannot be started without a jid7113 cannot be finished without a jid7114 can fail without a jid7115 #in_progress?7116 when the import is 'created'7117 returns true7118 when the import is 'started'7119 returns true7120 when the import is 'finished'7121 returns false7122 when the import is 'failed'7123 returns false7124 when import failed7125 when error message is present7126 truncates error message7127 when error message is missing7128 has no error message7129ContainerRegistry::DeleteContainerRepositoryWorker7130 # order random7131 #max_running_jobs7132 is expected to eq 27133 #perform_work7134 with no work to do - no container repositories pending deletion7135 will not delete any container repository7136 with work to do7137 picks and destroys the delete scheduled container repository7138 with an error during the tags cleanup7139 does not delete the container repository7140 with an error during the destroy7141 does not delete the container repository7142 with tags left to destroy7143 does not delete the container repository7144 with no tags on the container repository7145 picks and destroys the delete scheduled container repository7146 #remaining_work_count7147 is expected to eq 37148Ci::TrackEnvironmentUsage7149 # order random7150 deployment_name?7151 does detect deployment names7152 does detect partial deployment names7153 does not detect non-deployment names7154 is case insensitive7155 #verifies_environment?7156 when build is the verify action for the environment7157 is expected to be truthy7158 when build is not the verify action for the environment7159 is expected to be falsey7160Banzai::Filter::TableOfContentsFilter7161 does nothing when :no_header_anchors is truthy7162 does nothing with empty headers7163 processes h1 elements7164 processes h2 elements7165 processes h3 elements7166 processes h4 elements7167 processes h5 elements7168 processes h6 elements7169 anchor tag7170 has an `anchor` class7171 has a namespaced id7172 links to the non-namespaced id7173 generated IDs7174 translates spaces to dashes7175 squeezes multiple spaces and dashes7176 removes punctuation7177 removes any leading or trailing spaces7178 removes a product suffix7179 appends a unique number to duplicates7180 prepends a prefix to digits-only ids7181 supports Unicode7182 limits header href length with 255 characters7183 result7184 is contained within a `ul` element7185 contains an `li` element for each header7186 table of contents nesting7187 keeps list levels regarding header levels7188 header text contains escaped content7189 outputs escaped content7190Gitlab::Changelog::Committer7191 #commit7192 when the release isn't in the changelog7193 commits the changes7194 when the release is already in the changelog7195 doesn't commit the changes7196 when committing the changes fails7197 retries the operation7198 when the changelog changes before saving the changes7199 raises a Error7200BulkImports::Groups::Graphql::GetGroupQuery7201 has a valid query7202 #variables7203 returns query variables based on entity information7204 #data_path7205 returns data path7206 #page_info_path7207 returns pagination information path7208Gitlab::GithubImport::Importer::Events::ChangedAssignee7209 #execute7210 with Issue7211 behaves like process assigned & unassigned events7212 when importing an assigned event7213 behaves like create expected notes7214 creates expected note7215 creates expected system note metadata7216 when importing an unassigned event7217 behaves like create expected notes7218 creates expected note7219 creates expected system note metadata7220 with MergeRequest7221 behaves like process assigned & unassigned events7222 when importing an assigned event7223 behaves like create expected notes7224 creates expected note7225 creates expected system note metadata7226 when importing an unassigned event7227 behaves like create expected notes7228 creates expected note7229 creates expected system note metadata7230Gitlab::SlashCommands::IssueShow7231 #execute7232 the issue exists7233 returns the issue7234 when its reference is given7235 shows the issue7236 the issue does not exist7237 returns not found7238 .match7239 matches the iid7240 accepts a reference7241Ci::ArtifactBlob7242 #id7243 returns a hash of the path7244 #name7245 returns the entry name7246 #path7247 returns the entry path7248 #size7249 returns the entry size7250 #mode7251 returns the entry mode7252 #external_storage7253 returns :build_artifact7254 #external_url7255 .gif extension7256 returns nil7257 txt extensions7258 returns a URL7259 when port is configured7260 returns an URL with port number7261 #external_link?7262 gif extensions7263 returns false7264 txt extensions7265 returns true7266Mutations::Security::CiConfiguration::ConfigureSast7267 is expected to require graphql authorizations :push_code7268 #resolve7269 generates an error if the resource is not accessible to the user7270 when user does not have enough permissions7271 generates an error7272 when user is a maintainer of a different project7273 generates an error7274 when the user does not have permission to create a new branch7275 returns an array of errors7276 when the user can create a merge request7277 when service successfully generates a path to create a new merge request7278 returns a success path7279 when service can not generate any path to create a new merge request7280 returns an array of errors7281Resolvers::ReleaseResolver7282 #resolve7283 when the user does not have access to the project7284 returns nil7285 when the user has full access to the project's releases7286 returns the release associated with the specified tag7287 when no tag_name argument was passed7288 raises an error7289Evidences::EvidenceEntity7290 exposes the expected fields7291 when a release is associated to a milestone7292 when a milestone has no issue associated with it7293 creates a valid JSON object7294 when a milestone has no description7295 creates a valid JSON object7296 when a milestone has no due_date7297 creates a valid JSON object7298 when a milestone has an issue7299 when the issue has no description7300 creates a valid JSON object7301 when a release is not associated to any milestone7302 creates a valid JSON object7303Milestones::MergeRequestsCountService7304 counts all merge requests7305 behaves like a counter caching service7306 #count7307 caches the count7308 #refresh_cache7309 refreshes the cache7310 #delete_cache7311 removes the cache7312 #uncached_count7313 does not cache the count7314DependencyProxy::GroupSettings::UpdateService7315 #execute7316 user_role: :maintainer, shared_examples_name: "updating the dependency proxy group settings"7317 behaves like updating the dependency proxy group settings7318 returns a success7319 behaves like updating the dependency proxy group settings attributes7320 updates the dependency proxy settings7321 user_role: :developer, shared_examples_name: "denying access to dependency proxy group settings"7322 behaves like denying access to dependency proxy group settings7323 with existing dependency proxy group settings7324 returns an error7325 user_role: :reporter, shared_examples_name: "denying access to dependency proxy group settings"7326 behaves like denying access to dependency proxy group settings7327 with existing dependency proxy group settings7328 returns an error7329 user_role: :guest, shared_examples_name: "denying access to dependency proxy group settings"7330 behaves like denying access to dependency proxy group settings7331 with existing dependency proxy group settings7332 returns an error7333 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy group settings"7334 behaves like denying access to dependency proxy group settings7335 with existing dependency proxy group settings7336 returns an error7337Mutations::Terraform::State::Lock7338 is expected to eq "TerraformStateLock"7339 is expected to require graphql authorizations :admin_terraform_state7340 #resolve7341 user does not have permission7342 raises an error7343 user has permission7344 locks the state7345 state is already locked7346 does not modify the existing lock7347 with invalid params7348 raises an error7349Gitlab::Git::CrossRepo7350 # order random7351 #execute7352 when executed within a single repository7353 does not fetch from another repo7354 when executed across two repositories7355 and target ref exists in source repo7356 does not fetch from another repo7357 and target ref does not exist in source repo7358 fetches from the target to a temporary ref7359 and target ref does not exist in target repo7360 returns nil7361RspecFlaky::Listener7362 #initialize7363 when no report file exists7364 behaves like a valid Listener instance7365 returns a valid Listener instance7366 when FLAKY_RSPEC_SUITE_REPORT_PATH is set7367 and report file exists7368 delegates the load to RspecFlaky::Report7369 and report file does not exist7370 return an empty hash7371 #example_passed7372 when the RSpec example does not respond to attempts7373 behaves like a non-flaky example7374 does not change the flaky examples hash7375 when the RSpec example has 1 attempt7376 behaves like a non-flaky example7377 does not change the flaky examples hash7378 when the RSpec example has 2 attempts7379 behaves like a new flaky example7380 changes the all flaky examples hash7381 with an existing flaky example7382 behaves like an existing flaky example7383 changes the flaky examples hash7384 #dump_summary7385 when a report file path is set by FLAKY_RSPEC_REPORT_PATH7386 delegates the writes to RspecFlaky::Report7387WorkItems::Widgets::DescriptionService::UpdateService7388 #update7389 when user has permission to update description7390 when user is work item author7391 behaves like sets work item description7392 correctly sets work item description value7393 when user is a project reporter7394 behaves like sets work item description7395 correctly sets work item description value7396 when description is nil7397 behaves like sets work item description7398 correctly sets work item description value7399 when description is empty7400 behaves like sets work item description7401 correctly sets work item description value7402 when description param is not present7403 behaves like does not set work item description7404 does not change work item description value7405 when widget does not exist in new type7406 resets the work item's description7407 when user does not have permission to update description7408 when user is a project guest7409 behaves like does not set work item description7410 does not change work item description value7411 with private project7412 when user is work item author7413 behaves like does not set work item description7414 does not change work item description value7415Gitlab::DependencyLinker7416 .link7417 links using GemfileLinker7418 links using GemspecLinker7419 links using PackageJsonLinker7420 links using ComposerJsonLinker7421 links using PodfileLinker7422 links using PodspecLinker7423 links using PodspecJsonLinker7424 links using CartfileLinker7425 links using GodepsJsonLinker7426 links using RequirementsTxtLinker7427 links using CargoTomlLinker7428 links using GoModLinker7429 links using GoSumLinker7430Ci::CreatePipelineService7431 merge requests handling7432 when pushing a change7433 when a merge request already exists7434 does not create a pipeline7435 when no merge request exists7436 does create a pipeline7437StageUpdateWorker7438 #perform7439 when stage exists7440 updates stage status7441 behaves like an idempotent worker7442 is labeled as idempotent7443 performs multiple times sequentially without raising an exception7444 results in the stage getting the skipped status7445 when stage does not exist7446 does not raise exception7447Gitlab::Utils::UsernameAndEmailGenerator7448 # order random7449 check email domain7450 contains SecureRandom part7451 email name is the same as username7452 email domain7453 defaults to `Gitlab.config.gitlab.host`7454 when specified7455 uses the specified email domain7456 when conflicts7457 when username is reserved7458 when username is reserved by user7459 uniquifies username and email7460 when it conflicts with top-level group namespace7461 uniquifies username and email7462 when it conflicts with top-level group namespace that includes upcased characters7463 uniquifies username and email7464 when email is reserved7465 when it conflicts with confirmed primary email7466 uniquifies username and email7467 when it conflicts with unconfirmed primary email7468 uniquifies username and email7469 when it conflicts with confirmed secondary email7470 uniquifies username and email7471 when email and username is reserved7472 uniquifies username and email7473Gitlab::Metrics::BootTimeTracker7474 #track_boot_time!7475 when called on puma for the first time7476 set the startup_time7477 records the current process runtime7478 logs the application boot time7479 tracks boot time in a prometheus gauge7480 on subsequent calls7481 does nothing7482 when called on sidekiq for the first time7483 set the startup_time7484 records the current process runtime7485 logs the application boot time7486 tracks boot time in a prometheus gauge7487 on subsequent calls7488 does nothing7489 when called on console for the first time7490 set the startup_time7491 records the current process runtime7492 logs the application boot time7493 tracks boot time in a prometheus gauge7494 on subsequent calls7495 does nothing7496 when called on other runtimes7497 does nothing7498 #startup_time7499 returns 0 when boot time not tracked7500BlobViewer::Markup7501 #banzai_render_context7502 returns context needed for banzai rendering7503 when blob does respond to rendered_markup7504 does sets rendered key7505Resolvers::Ci::ProjectPipelineCountsResolver7506 #resolve7507 counts pipelines7508 counts by ref7509 counts by sha7510 counts by source7511RuboCop::Cop::Migration::PreventIndexCreation7512 # order random7513 when outside of migration7514 does not register an offense7515 when in migration7516 when adding an index to a forbidden table7517 when table_name is a symbol7518 registers an offense when add_index is used7519 registers an offense when add_concurrent_index is used7520 when table_name is a string7521 registers an offense when add_index is used7522 registers an offense when add_concurrent_index is used7523 when table_name is a constant7524 registers an offense when add_concurrent_index is used7525 when adding an index to a regular table7526 does not register an offense7527 when using a constant7528 does not register an offense7529BulkImports::RelationExportWorker7530 #perform7531 is labeled as idempotent7532 performs multiple times sequentially without raising an exception7533 executes RelationExportService7534 when export record does not exist7535 creates export record7536MergeRequests::HandleAssigneesChangeWorker7537 behaves like an idempotent worker7538 is labeled as idempotent7539 performs multiple times sequentially without raising an exception7540 #perform7541 calls MergeRequests::HandleAssigneesChangeService#execute to handle the changes7542 when there are no changes7543 still calls MergeRequests::HandleAssigneesChangeService#execute7544 when the old assignees cannot be found7545 still calls MergeRequests::HandleAssigneesChangeService#execute7546 with a non-existing merge request7547 does nothing7548 with a non-existing user7549 does nothing7550Banzai::ReferenceParser::ProjectParser7551 #referenced_by7552 when the link has a data-project attribute7553 using an existing project ID7554 returns an Array of projects7555 using a non-existing project ID7556 returns an empty Array7557 using a private project ID7558 returns an empty Array when unauthorized7559 returns an Array when authorized7560RuboCop::Cop::BackgroundMigration::MissingDictionaryFile7561 # order random7562 for non post migrations7563 does not throw any offense7564 for post migrations7565 without enqueuing batched migrations7566 does not throw any offense7567 with enqueuing batched migration7568 for migrations before enforced time7569 does not throw any offenses7570 for migrations after enforced time7571 throws offense on not having the appropriate dictionary file with migration name as a constant7572 throws offense on not having the appropriate dictionary file with migration name as a variable7573 does not throw offense with appropriate dictionary file7574Import::GitlabProjects::FileAcquisitionStrategies::RemoteFile7575 validation7576 is expected to be valid7577 file_url validation7578 validates the file_url scheme7579 when localhost urls are not allowed7580 validates the file_url7581 when the HTTP request fails to recover the headers7582 adds the error message7583 when request is not from an S3 server7584 validates the remote content-length7585 validates the remote content-type7586 when request is from an S3 server7587 does not validate the remote content-length or content-type7588 #project_params7589 returns import_export_upload in the params7590FeatureGroups::GitlabTeamMembers7591 # order random7592 #enabled?7593 when not on gitlab.com7594 returns false7595 when on gitlab.com7596 returns true for gitlab-com group members7597 returns false for users not in gitlab-com7598 returns false when actor is not a user7599 reloads members after 1 hour7600 does not make queries on subsequent calls7601Gitlab::Database::QueryAnalyzers::GitlabSchemasValidateConnection7602 properly observes all queries7603 for simple query observes schema correctly7604 is expected not to raise Exception7605 for query accessing gitlab_ci and gitlab_main7606 is expected to raise /The query tried to access \["projects", "ci_builds"\]/7607 for query accessing gitlab_ci and gitlab_main the gitlab_schemas is always ordered7608 is expected to raise /The query tried to access \["ci_builds", "projects"\]/7609 for query accessing main table from CI database7610 is expected to raise /The query tried to access \["projects"\]/7611 for query accessing CI database7612 is expected not to raise Exception7613 for query accessing CI table from main database7614 is expected to raise /The query tried to access \["ci_builds"\]/7615 for query accessing unknown gitlab_schema7616 is expected to raise /The query tried to access \["new_table"\] \(of undefined_new_table\)/7617 when analyzer is enabled for tests7618 throws an error when trying to access a table that belongs to the gitlab_main schema from the ci database7619 throws an error when trying to access a table that belongs to the gitlab_ci schema from the main database7620StripAttribute7621 .strip_attributes!7622 is expected to respond to #strip_attributes!7623 is expected to include :title7624 #strip_attributes!7625 is expected to eq "8.3"7626Gitlab::Git::AttributesAtRefParser7627 loads .gitattributes blob7628 handles missing blobs7629 #attributes7630 returns the attributes as a Hash7631BatchDestroyDependentAssociations7632 #dependent_associations_to_destroy7633 returns the right associations7634 #destroy_dependent_associations_in_batches7635 destroys multiple notes7636 destroys note in batches7637 excludes associations7638WorkItems::ParentLinks::DestroyService7639 #execute7640 when user has permissions to update work items7641 removes relation and creates notes7642 returns success message7643 when user has insufficient permissions7644 does not remove relation7645 returns error message7646Ci::GenerateTerraformReportsService7647 #execute7648 when head pipeline has terraform reports7649 returns status and data7650 when head pipeline has corrupted terraform reports7651 returns a report with error messages7652 when head pipeline is corrupted7653 returns status and error message7654CarrierWave::Storage::Fog::File7655 AWS7656 #copy_to7657 copies the file7658 Azure7659 #copy_to7660 copies the file7661 #authenticated_url7662 has an authenticated URL7663 with custom expire_at7664 properly sets expires param7665 with content_disposition option7666 passes options7667Ci::BuildTraceChunkFlushWorker7668 migrates chunk to a permanent store7669 #perform7670 behaves like an idempotent worker7671 is labeled as idempotent7672 performs multiple times sequentially without raising an exception7673 migrates build trace chunk to a safe store7674DataTransfer::ProjectDataTransferFinder7675 # order random7676 #execute7677 returns the correct number of egress7678 returns the correct values7679 when there are no results for specified dates7680 returns nothing7681 when there are no results for specified project7682 returns nothing7683 when dates are not provided7684 return all values for a project7685 when user does not have permissions7686 returns nothing7687GoogleCloud::CreateCloudsqlInstanceService7688 #execute7689 triggers creation of a cloudsql instance7690 triggers worker to manage cloudsql instance creation operation results7691 when google APIs fail7692 returns error7693 when project has GCP_REGION defined7694 uses defined region7695Gitlab::Usage::Metrics::Instrumentations::ActiveUserCountMetric7696 behaves like a correct instrumented metric value7697 has correct value7698Gitlab::Database::SchemaCacheWithRenamedTable7699 when table is not renamed yet7700 uses the original table to look up metadata7701 when table is renamed7702 uses the renamed table to look up metadata7703 has primary key7704 has the same column definitions7705 has the same indexes7706 has the same column_hash7707 when the table behind a model is actually a view7708 can persist records7709 can find records7710Packages::Composer::ComposerJsonService7711 #execute7712 with an existing file7713 with a valid file7714 returns the parsed json7715 with an invalid file7716 raises an error7717 without the composer.json file7718 raises an error7719Gitlab::Email::Smime::Signer7720 when using an intermediate CA7721 signs data appropriately with SMIME7722 when not using an intermediate CA7723 signs data appropriately with SMIME7724UserPreferences::UpdateService7725 #execute7726 successfully updating the record7727 updates the preference and returns a success7728 unsuccessfully updating the record7729 returns an error7730GitHelper7731 #short_sha7732 is expected to eq "d4e043f6"7733 #strip_signature7734 strips PGP SIGNATURE7735 is expected to eq "Version 1.69.0\n\n"7736 strips PGP MESSAGE7737 is expected to eq "Version 1.69.0\n\n"7738 strips SIGNED MESSAGE7739 is expected to eq "this is Roger's signed tag\n\n"7740Tooling::Helm3Client7741 #releases7742Running command: `helm list --max 256 --offset 0 --output json`7743 raises an error if the Helm command fails7744Running command: `helm list --max 256 --offset 0 --output json`7745Ignoring this JSON parsing error: unexpected token at ''7746Response was:7747 calls helm list with default arguments7748Running command: `helm list --max 256 --offset 0 --output json --deployed`7749Ignoring this JSON parsing error: unexpected token at ''7750Response was:7751 calls helm list with extra arguments7752Running command: `helm list --max 256 --offset 0 --output json --deployed`7753Running command: `helm list --max 256 --offset 256 --output json --deployed`7754 returns a list of Release objects7755Running command: `helm list --max 256 --offset 0 --output json`7756Running command: `helm list --max 256 --offset 256 --output json`7757Running command: `helm list --max 256 --offset 512 --output json`7758 automatically paginates releases7759 #delete7760Running command: `helm uninstall --namespace my-release my-release`7761 raises an error if the Helm command fails7762Running command: `helm uninstall --namespace my-release my-release`7763 calls helm uninstall with default arguments7764 with multiple release names7765Running command: `helm uninstall --namespace my-release my-release`7766 raises an error if the Helm command fails7767Running command: `helm uninstall --namespace namespace my-release`7768Running command: `helm uninstall --namespace namespace my-release-2`7769 calls helm uninstall with multiple release names and a namespace7770Running command: `helm uninstall --namespace my-release my-release`7771Running command: `helm uninstall --namespace my-release-2 my-release-2`7772 calls helm uninstall with multiple release names and no namespace7773Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection7774 subclasses from GraphQL::Relay::RelationConnection7775 behaves like a connection with collection methods7776 responds to to_a7777 responds to size7778 responds to map7779 responds to include?7780 responds to empty?7781 behaves like a redactable connection7782 no redactor set7783 contains the unwanted item7784 does not redact more than once7785 redactor is set7786 does not contain the unwanted item7787 does not redact more than once7788RuboCop::Cop::SidekiqRedisCall7789 # order random7790 flags the use of Sidekiq.redis in single-line blocks7791 flags any use of Sidekiq.redis even without blocks7792 flags the use of Sidekiq.redis in multi-line blocks7793Settings7794 #ldap7795 can be accessed with dot syntax all the way down7796 can be accessed in a very specific way that breaks without reassigning each element with Settingslogic7797 #host_without_www7798 URL with protocol7799 returns the host7800 URL without protocol7801 returns the host7802 URL with user/port7803 returns the host7804 #weak_passwords_digest_set7805 is a Set7806 contains 4500 password digests7807 includes 8 char weak password digest7808 includes 16 char weak password digest7809 includes long char weak password digest7810 does not include 7 char weak password digest7811 does not include plaintext7812CronSchedulable7813 for ci_pipeline_schedule7814 behaves like handles set_next_run_at7815 when schedule runs every minute7816 updates next_run_at to the worker's execution time7817 when there are two different schedules in the same time zones7818 sets the sames next_run_at7819 when cron is updated for existing schedules7820 updates next_run_at automatically7821Integrations::HarborSerializers::ArtifactEntity7822 returns the Harbor artifact7823Gitlab::HookData::IssueBuilder7824 #build7825 includes safe attribute7826 includes additional attrs7827 when the issue has an image in the description7828 sets the image to use an absolute URL7829 for incident7830 includes additional attr7831Security::CiConfiguration::SecretDetectionBuildAction7832 with existing .gitlab-ci.yml7833 secret_detection has not been included7834 template includes are an array7835 generates the correct YML7836 template include is not an array7837 generates the correct YML7838 secret_detection has been included7839 secret_detection template include are an array7840 generates the correct YML7841 secret_detection template include is not an array7842 generates the correct YML7843 with no .gitlab-ci.yml7844 autodevops disabled7845 generates the correct YML7846 with autodevops enabled7847 generates the correct YML7848Gitlab::Ci::Config::Normalizer::MatrixStrategy7849 .applies_to?7850 with hash that has :matrix key7851 is expected to be truthy7852 with hash that does not have :matrix key7853 is expected to be falsey7854 with a number7855 is expected to be falsey7856 .build_from7857 is expected to eq 47858 has attributes7859 has parallelized name7860InProductGuidanceEnvironmentsWebideExperiment7861 excludes projects with environments7862 does not exlude projects without environments7863Ci::PipelineSchedules::UpdateService7864 # order random7865 execute7866 when user does not have permission7867 returns ServiceResponse.error7868 when user has permission7869 updates database values with passed params7870 returns ServiceResponse.success7871 when schedule update fails7872 returns ServiceResponse.error7873Gitlab::Session7874 uses the current thread as a data store7875 #with_session7876 sets session hash7877 restores current store after7878CleanupContainerRepositoryWorker7879 #perform7880 bulk delete api7881 executes the destroy service7882 does not raise error when user could not be found7883 does not raise error when repository could not be found7884Diffs::StatsComponent7885 rendered component7886 is expected to have visible css ".js-diff-stats-dropdown"7887 renders the data attributes7888 #diff_file_path_text7889 returns full path by default7890 returns truncated path7891 returns the path if max is oddly small7892 returns the path if max is oddly large7893Gitlab::Ci::Config::Entry::Services7894 when configuration is valid7895 #valid?7896 is valid7897 #value7898 returns valid array7899 when configuration is invalid7900 #valid?7901 is invalid7902 when configuration has ports7903 when with_image_ports metadata is not enabled7904 #valid?7905 is not valid7906 when with_image_ports metadata is enabled7907 #valid?7908 is valid7909 #value7910 returns valid array7911 services alias7912 when they are not unique7913 #valid?7914 is invalid7915 when they are unique7916 #valid?7917 is valid7918 when one of the duplicated alias is in a service without ports7919 is valid7920 when there are not any ports7921 is valid7922Pajamas::Concerns::CheckboxRadioLabelWithHelpText7923 #render_label_with_help_text7924 calls `#format_options` with correct arguments7925 when `help_text` argument is passed7926 calls `form.label` with `label` and `help_text` arguments used in the block7927 when `help_text` argument is not passed7928 calls `form.label` with `label` argument used in the block7929 #render_label_tag_with_help_text7930 calls `#format_options` with correct arguments7931 when `help_text` argument is passed7932 calls `label_tag` with `label` and `help_text` arguments used in the block7933 when `help_text` argument is not passed7934 calls `label_tag` with `label` argument used in the block7935Gitlab::TimeTrackingFormatter7936 #parse7937 positive durations7938 is expected to eq 120007939 negative durations7940 is expected to eq -120007941 durations with months7942 uses our custom conversions7943 when the duration is zero7944 when keep_zero is false7945 returns nil7946 when keep_zero is true7947 returns zero7948 #output7949 time_tracking_limit_to_hours setting is true7950 is expected to eq "49h 40m"7951 time_tracking_limit_to_hours setting is false7952 is expected to eq "1w 1d 1h 40m"7953 handles negative time input7954 is expected to eq "-1w 1d 1h 40m"7955SystemCheck::App::HashedStorageAllProjectsCheck7956 #check?7957 fails when at least one project is in legacy storage7958 succeeds when all projects are in hashed storage7959safe_sesion_store_patch7960 # order random7961 with ActionDispatch::Request::Session7962 behaves like safe session store7963 allows storing a String7964 raises error when session attempts to store an unsafe object7965 allows instance double of OneLogin::RubySaml::Response7966 raises an error for instance double of REXML::Document7967 with ActionController::TestSession7968 behaves like safe session store7969 allows storing a String7970 raises error when session attempts to store an unsafe object7971 allows instance double of OneLogin::RubySaml::Response7972 raises an error for instance double of REXML::Document7973Gitlab::GithubImport::Importer::Attachments::MergeRequestsImporter7974 # order random7975 #sidekiq_worker_class7976 is expected to eq Gitlab::GithubImport::Attachments::ImportMergeRequestWorker7977 #collection_method7978 is expected to eq :merge_request_attachments7979 #object_type7980 is expected to eq :merge_request_attachment7981 #sequential_import7982 imports each project merge request attachments7983 when merge request is already processed7984 doesn't import this merge request attachments7985 #id_for_already_imported_cache7986 is expected to eq 10307987Users::ValidateManualOtpService7988 Devise7989 calls Devise strategy7990 FortiAuthenticator7991 calls ManualOtp strategy7992 handles unexpected error7993 FortiTokenCloud7994 calls FortiTokenCloud strategy7995 DuoAuth7996 calls DuoAuth strategy7997 handles unexpected error7998Evidences::MilestoneEntity7999 exposes the expected fields8000 when there are issues linked to this milestone8001 exposes these issues8002 when the release has no milestone8003 exposes an empty array for milestones8004Users::Calloutable8005 Associations8006 is expected to belong to user required: false8007 validations8008 is expected to validate that :user cannot be empty/falsy8009 #dismissed_after?8010 returns whether a callout dismissed after specified date8011Gitlab::Ci::Parsers::Codequality::CodeClimate8012 #parse!8013 when data is code_climate style JSON8014 when there are no degradations8015 returns a codequality report8016 when there are degradations8017 returns a codequality report8018 when data is not a valid JSON string8019 sets error_message8020 when degradations contain an invalid one8021 stops parsing the report8022 for web_url8023 when metadata has project and commit_sha8024 adds a non nil url8025 when metadata does not have project and commit_sha8026 adds a nil url8027Gitlab::QueryLimiting8028 .enabled_for_env?8029 returns true in a test environment8030 returns true in a development environment8031 returns false on GitLab.com8032 returns false in a non GitLab.com8033 .disable!8034 raises an ArgumentError when an invalid issue URL is given8035 stops the number of SQL queries from being incremented8036 .enable!8037 allows the number of SQL queries to be incremented8038 #enabled?8039 returns true when enabled8040 returns false when disabled8041Gitlab::DependencyLinker::PodspecLinker8042 .support?8043 supports *.podspec8044 does not support other files8045 #link8046 does not link the pod name8047 links the license8048 links the homepage8049 links the source URL8050 links dependencies8051Pajamas::SpinnerComponent8052 class8053 has the correct custom class8054 color8055 by default8056 is dark8057 set to light8058 is light8059 inline8060 by default8061 renders a div8062 set to true8063 renders a span8064 label8065 by default8066 has "Loading" as aria-label8067 when set to something else8068 has a custom aria-label8069 size8070 has the correct size class8071PropagateIntegrationInheritDescendantWorker8072 behaves like an idempotent worker8073 is labeled as idempotent8074 performs multiple times sequentially without raising an exception8075 calls to BulkUpdateIntegrationService8076 with an invalid integration id8077 returns without failure8078RuboCop::Cop::FeatureFlagUsage8079 # order random8080 when calling Feature.enabled?8081 registers offence8082 registers offence when called with type parameter8083 registers offence when called under global namespace8084 when calling Feature.disabled?8085 registers offence8086 registers offence when called with type parameter8087 registers offence when called under global namespace8088Gitlab::GithubGistsImport::FinishImportWorker8089 # order random8090 .sidekiq_retries_exhausted8091 sets status to failed8092 #perform8093 when there are no remaining jobs8094 marks import status as finished8095 when there are remaining jobs8096 reschedules the worker8097 when some gists were failed to import8098 sends an email to user8099Members::InviteMemberBuilder8100 #execute8101 when user record found by email8102 returns member from existing members hash8103 builds a new member8104 when no existing users found by the email8105 finds existing member8106 builds a new member8107Ci::DailyBuildGroupReportResultsWorker8108 #perform8109 when pipeline is found8110 executes service8111 when pipeline is not found8112 does not execute service8113RuboCop::Cop::Scalability::BulkPerformWithContext8114 # order random8115 does not add an offence for specs8116 adds an offense when calling bulk_perform_async8117 does not add an offense for scheduling on the BackgroundMigrationWorker8118 does not add an offense for migrations8119 adds an offense when calling bulk_perform_in8120 does not add an offense for scheduling on the CiDatabaseWorker8121Users::SavedReply8122 validations8123 is expected to validate that :user_id cannot be empty/falsy8124 is expected to validate that :name cannot be empty/falsy8125 is expected to validate that :content cannot be empty/falsy8126 is expected to validate that :name is case-sensitively unique within the scope of :user_id8127 is expected to validate that the length of :name is at most 2558128 is expected to validate that the length of :content is at most 100008129Gitlab::StringRegexMarker8130 #mark8131 with a single occurrence8132 marks the match8133 with multiple occurrences8134 marks the matches8135 with a Gitlab::UntrustedRegexp8136 marks the matches8137MergeRequestUserMention8138 associations8139 is expected to belong to merge_request required: false8140 is expected to belong to note required: false8141 behaves like has user mentions8142 #has_mentions?8143 when no mentions8144 returns false8145 when mentioned_users_ids not null8146 returns true8147 when mentioned projects8148 returns true8149 when mentioned groups8150 returns true8151Gitlab::Ci::Parsers::Accessibility::Pa11y8152 #parse!8153 when data is pa11y style JSON8154 when there are no URLs provided8155 returns an accessibility report8156 when there are no errors8157 returns an accessibility report8158 when there are errors8159 returns an accessibility report8160 when data is not a valid JSON string8161 sets error_message8162PostgreSQL registered types8163 includes custom and standard OIDs8164 includes custom and standard types8165API::Base8166 declare feature categories at handler level for all routes8167 sets feature category for a particular route8168 sets request urgency for a particular route8169 declare feature categories at route level8170 sets feature category for a particular route8171 sets request urgency for a particular route8172 declare feature categories at both handler level and route level8173 sets feature category for a particular route8174 sets target duration for a particular route8175JiraConnectSubscription8176 associations8177 is expected to belong to installation class_name => JiraConnectInstallation required: false8178 is expected to belong to namespace class_name => Namespace required: false8179 validations8180 is expected to validate that :installation cannot be empty/falsy8181 is expected to validate that :namespace cannot be empty/falsy8182Gitlab::Ci::Config::Entry::Caches8183 #valid?8184 with an empty hash as cache8185 is valid8186 when configuration is valid with a single cache8187 is valid8188 when configuration is valid with multiple caches8189 is valid8190 when configuration is not a Hash or Array8191 is invalid8192 when entry values contain more than four caches8193 is invalid8194Pages::VirtualDomain8195 #certificate and #key pair8196 returns nil if there is no domain provided8197 when Pages domain is provided8198 returns certificate and key from the provided domain8199 #lookup_paths8200 when there is pages domain provided8201 returns collection of projects pages lookup paths sorted by prefix in reverse8202 when there is trim_prefix provided8203 returns collection of projects pages lookup paths sorted by prefix in reverse8204 #cache_key8205 returns the cache key based in the given cache_control8206 returns nil when no cache_control is given8207Gitlab::Ci::Status::WaitingForResource8208 #text8209 is expected to eq "waiting"8210 #label8211 is expected to eq "waiting for resource"8212 #icon8213 is expected to eq "status_pending"8214 #favicon8215 is expected to eq "favicon_status_pending"8216 #group8217 is expected to eq "waiting-for-resource"8218 #details_path8219 is expected to be nil8220Gitlab::Ci::Config::External::Mapper::Matcher8221 # order random8222 #process8223 with ci_include_components FF disabled8224 returns an array of file objects8225 with ci_include_components FF enabled8226 returns an array of file objects8227 when a location is not valid8228 raises an error8229 when the invalid location includes a masked variable8230 raises an error with a masked sentence8231 when a location is ambiguous8232 raises an error8233Gitlab::Ci::Build::Rules::Rule::Clause::If8234 #satisfied_by?8235 when expression is a basic string comparison8236 when comparison is true8237 is expected to eq true8238 when comparison is false8239 is expected to eq false8240 when expression is a regexp8241 when comparison is true8242 is expected to eq true8243 when comparison is false8244 is expected to eq false8245 when both side of the expression are variables8246 when comparison is true8247 is expected to eq true8248 when comparison is false8249 is expected to eq false8250Sidebars::Projects::Menus::WikiMenu8251 does not contain any sub menu8252 #render?8253 when user can access project wiki8254 returns true8255 when user cannot access project wiki8256 returns false8257 behaves like serializable as super_sidebar_menu_args8258 returns hash with provided attributes8259 returns hash with an item_id8260RuboCop::Cop::Rake::Require8261 # order random8262 does not register offense inside a method definition8263 does not register offense inside `task` definition8264 does not register offense when require task related files8265 registers an offenses for require methods8266 does not register offense inside a block definition8267devise/shared/_signin_box8268 Crowd form8269 is shown when Crowd is enabled8270 is not shown when Crowd is disabled8271 Base form8272 renders user_login label8273Graphql::Var8274 associates a name with a type and an initially empty value8275 has a correct signature8276 implements to_graphql_value as $name8277 can set a value using with, returning a new object8278 returns an object suitable for passing to post_graphql(variables:)8279Gitlab::DependencyLinker::CargoTomlLinker8280 .support?8281 supports Cargo.toml8282 does not support other files8283 #link8284/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/8285 links dependencies8286/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/8287 does not contain metadata identified as package8288Gitlab::UsageDataCounters::JetBrainsPluginActivityUniqueCounter8289 when tracking a jetbrains api request8290 behaves like a request from an extension8291 tracks when the user agent is matching8292 does not track when the user agent is not matching8293 does not track if user agent is not present8294 does not track if user is not present8295Sidebars::Groups::Menus::ScopeMenu8296 #extra_nav_link_html_options8297 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007fc227a74ea0 @expected={:class=>"context-header has-tooltip", :title=>"group295"}>8298 behaves like serializable as super_sidebar_menu_args8299 returns hash with provided attributes8300 returns hash with an item_id8301Types::DependencyProxy::ImageTtlGroupPolicyType8302 is expected to eq "DependencyProxyImageTtlGroupPolicy"8303 is expected to eq "Group-level Dependency Proxy TTL policy settings"8304 is expected to require graphql authorizations :admin_dependency_proxy8305 includes dependency proxy image ttl policy fields8306Types::Packages::PackageDetailsType8307 is expected to eq "Represents a package details in the Package Registry"8308 is expected to require graphql authorizations :read_package8309 includes all the package fields8310ResolvesGroups8311 avoids N+1 queries on the fields marked with lookahead8312Gitlab::EventStore::Event8313 when schema is not defined8314 raises an error on initialization8315 when schema is defined8316 schema validation8317 when data matches the schema8318 initializes the event correctly8319 when required properties are present as well as unknown properties8320 initializes the event correctly8321 when some properties are missing8322 expects all properties to be present8323 when data is not a Hash8324 raises an error8325Google::Apis::Core::HttpCommand8326 with a successful response8327 returns the response body if block not present8328 calls block if present8329 retries with max elapsed_time and retries8330profiles/notifications/show8331 when there is no database value for User#notification_email8332 displays the correct elements8333 when there is a database value for User#notification_email8334 displays the correct elements8335UserCanonicalEmail8336 is expected to belong to user required: false8337 validations8338 canonical_email8339 is expected to validate that :canonical_email cannot be empty/falsy8340 validates email address8341RuboCop::Cop::Scalability::IdempotentWorker8342 # order random8343 adds an offense when not defining idempotent method8344 adds an offense when not defining idempotent method8345Import::GithubishProviderRepoEntity8346 behaves like exposes required fields for import entity8347 exposes required fields8348 correctly exposes id8349 correctly exposes full name8350 correctly exposes sanitized name8351 correctly exposes provider link8352Integrations::ProjectEntity8353 as json8354 contains needed attributes8355Gitlab::Database::AsyncDdlExclusiveLeaseGuard8356 # order random8357 #lease_key8358 with CI database connection8359 is expected to eq "gitlab/database/asyncddl/actions/ci"8360 with MAIN database connection8361 is expected to eq "gitlab/database/asyncddl/actions/main"8362Types::TimeTracking::TimelogCategoryType8363 is expected to eq "TimeTrackingTimelogCategory"8364 is expected to have graphql fields "id", "name", "description", "color", "billable", "billing_rate", "created_at", and "updated_at"8365 is expected to require graphql authorizations :read_timelog_category8366Types::EventType8367 is expected to eq "Event"8368 is expected to require graphql authorizations :read_event8369 is expected to have graphql fields :id, :author, :action, :created_at, and :updated_at8370Types::AlertManagement::IntegrationTypeEnum8371 is expected to eq "AlertManagementIntegrationType"8372 statuses8373 name: "PROMETHEUS", value: :prometheus8374 exposes a type with the correct value8375 name: "HTTP", value: :http8376 exposes a type with the correct value8377LicenseTemplate8378 #content8379 calls a proc exactly once if provided8380 returns a string if provided8381 #resolve!8382 updates placeholders in a copy of the template content8383Model::ModelGenerator8384 when generating a model8385 create db/migrate/20230330120402_create_model_generator_test_foos.rb8386 create app/models/model_generator_test_foo.rb8387 invoke rspec8388 create spec/models/model_generator_test_foo_spec.rb8389 creates the model file with the right content8390 create db/migrate/20230330120402_create_model_generator_test_foos.rb8391 create app/models/model_generator_test_foo.rb8392 invoke rspec8393 create spec/models/model_generator_test_foo_spec.rb8394 creates the migration file with the right content8395 create db/migrate/20230330120402_create_model_generator_test_foos.rb8396 create app/models/model_generator_test_foo.rb8397 invoke rspec8398 create spec/models/model_generator_test_foo_spec.rb8399 creates the spec file with the right content8400Evidences::IssueEntity8401 exposes the expected fields8402CrudPolicyHelpers8403 .create_read_update_admin_destroy8404 returns an array of the appropriate abilites given a feature name8405 .create_update_admin_destroy8406 returns an array of the appropriate abilites given a feature name8407 .create_update_admin8408 returns an array of the appropriate abilites given a feature name8409Atlassian::JiraConnect::Serializers::AuthorEntity8410 when object is a User model8411 exposes all fields8412 when object is a CommitAuthor struct from a commit8413 exposes name and email only8414AwardEmojis::BaseService8415 .initialize8416 uses same emoji name if not an alias8417 uses emoji original name if its an alias8418IncidentManagement::TimelineEventTagLink8419 # order random8420 associations8421 is expected to belong to timeline_event required: false8422 is expected to belong to timeline_event_tag required: false8423Sidebars::Projects::Menus::ExternalIssueTrackerMenu8424 does not contain any sub menu8425 #render?8426 when active external issue tracker8427 is present8428 returns true8429 is not present8430 returns false8431Packages::CleanupArtifactWorker8432 #model8433 is expected to raise NotImplementedError8434 #log_metadata8435 is expected to raise NotImplementedError8436 #log_cleanup_item8437 is expected to raise NotImplementedError8438RuboCop::Cop::Migration::RemoveIndex8439 # order random8440 when outside of migration8441 registers no offense8442 when in migration8443 registers an offense when remove_index is used8444Types::UserStatusType8445 is expected to eq "UserStatus"8446 exposes the expected fields8447Types::UserPreferencesType8448 is expected to eq "UserPreferences"8449 exposes the expected fields8450Import::GitlabProjects::FileAcquisitionStrategies::FileUpload8451 validation8452 validates presence of file8453 #project_params8454 returns the file to upload in the params8455Gitlab::Kubernetes::ClusterRoleBinding8456 #generate8457 builds a Kubeclient Resource8458Types::Ci::RunnerWebUrlEdge8459 is expected to eq "RunnerWebUrlEdge"8460 contains URL attributes8461NamespaceCiCdSetting8462 associations8463 is expected to belong to namespace required: false inverse_of => ci_cd_settings8464Types::Metadata::KasType8465 is expected to eq "Kas"8466 is expected to require graphql authorizations :read_instance_metadata8467Types::MetadataType8468 is expected to eq "Metadata"8469 is expected to require graphql authorizations :read_instance_metadata8470Types::DeploymentTierEnum8471 includes a value for each supported environment tier8472Types::ResolvableInterface8473 exposes the expected fields8474AccessibilityReportsComparerSerializer8475 #to_json8476 when base report has error and head has a different error8477 matches the schema8478 when base report has no error and head has errors8479 matches the schema8480#<Class:0x00007fc26930fd08>8481 has the expected fields8482Types::LimitedCountableConnectionType8483 has the expected fields8484BlobViewer::PodspecJson8485 #package_name8486 returns the package name8487Banzai::Filter::HtmlEntityFilter8488 converts common entities to their HTML-escaped equivalents8489Knapsack report was generated. Preview:8490{8491 "spec/models/environment_spec.rb": 195.3662240070007,8492 "spec/services/ci/create_downstream_pipeline_service_spec.rb": 179.36748816,8493 "spec/models/member_spec.rb": 67.48549391699999,8494 "spec/services/ci/create_pipeline_service/rules_spec.rb": 86.8150867689983,8495 "spec/services/projects/fork_service_spec.rb": 81.54053505600132,8496 "spec/models/ci/build_trace_chunk_spec.rb": 30.863547947999905,8497 "spec/models/commit_spec.rb": 35.66341036799895,8498 "spec/lib/gitlab/search_results_spec.rb": 41.20436860100017,8499 "spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb": 53.837726527000996,8500 "spec/helpers/groups/group_members_helper_spec.rb": 44.91128738599946,8501 "spec/lib/gitlab/auth/auth_finders_spec.rb": 10.1371249849999,8502 "spec/finders/ci/runner_jobs_finder_spec.rb": 31.592007023000406,8503 "spec/models/integrations/field_spec.rb": 5.064445063000676,8504 "spec/lib/gitlab/counters/buffered_counter_spec.rb": 5.032520785998713,8505 "spec/models/concerns/integrations/has_data_fields_spec.rb": 17.356234348000726,8506 "spec/models/integrations/datadog_spec.rb": 6.145303552999394,8507 "spec/services/git/tag_hooks_service_spec.rb": 17.30740596800024,8508 "spec/policies/project_member_policy_spec.rb": 18.838320049000686,8509 "spec/workers/pages/invalidate_domain_cache_worker_spec.rb": 3.670999097999811,8510 "spec/lib/gitlab/database/tables_truncate_spec.rb": 16.0512828789997,8511 "spec/services/post_receive_service_spec.rb": 8.774309826001627,8512 "spec/lib/gitlab/auth/ldap/person_spec.rb": 2.4852385710000817,8513 "spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb": 16.22422551099953,8514 "spec/services/merge_requests/create_pipeline_service_spec.rb": 15.354727062000165,8515 "spec/uploaders/packages/debian/component_file_uploader_spec.rb": 11.644635036998807,8516 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 11.10090286400009,8517 "spec/graphql/mutations/merge_requests/set_reviewers_spec.rb": 11.220899261999875,8518 "spec/services/draft_notes/create_service_spec.rb": 10.571902220000993,8519 "spec/services/deployments/link_merge_requests_service_spec.rb": 12.969960579999679,8520 "spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb": 11.792840342999625,8521 "spec/models/hooks/web_hook_log_spec.rb": 5.43063418499878,8522 "spec/lib/gitlab/metrics/rails_slis_spec.rb": 10.04810293400078,8523 "spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb": 7.931333005000852,8524 "spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb": 9.763852523999958,8525 "spec/uploaders/packages/package_file_uploader_spec.rb": 8.146530672000154,8526 "spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb": 10.332525555000757,8527 "spec/services/notes/copy_service_spec.rb": 9.411867650000204,8528 "spec/views/projects/tags/index.html.haml_spec.rb": 7.167421743999512,8529 "spec/presenters/project_member_presenter_spec.rb": 4.015313041998525,8530 "spec/lib/gitlab/database/load_balancing/host_spec.rb": 4.1813065049991565,8531 "spec/lib/gitlab/verify/uploads_spec.rb": 7.6954386190009245,8532 "spec/views/shared/runners/_runner_details.html.haml_spec.rb": 4.010121232999154,8533 "spec/lib/object_storage/config_spec.rb": 2.525588037000489,8534 "spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb": 6.047383759998411,8535 "spec/finders/user_recent_events_finder_spec.rb": 5.826530014001037,8536 "spec/lib/gitlab/i18n/pluralization_spec.rb": 1.612845011999525,8537 "spec/services/work_items/task_list_reference_replacement_service_spec.rb": 4.158203637000042,8538 "spec/lib/gitlab/web_hooks/recursion_detection_spec.rb": 4.150927268001396,8539 "spec/lib/gitlab/ci/status/composite_spec.rb": 2.280561301999114,8540 "spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb": 7.490072771000996,8541 "spec/services/projects/download_service_spec.rb": 4.452638005999688,8542 "spec/lib/gitlab/kubernetes/default_namespace_spec.rb": 6.308077693998712,8543 "spec/helpers/wiki_helper_spec.rb": 3.434624302000884,8544 "spec/workers/container_registry/migration/observer_worker_spec.rb": 6.3101914529997885,8545 "spec/helpers/preferences_helper_spec.rb": 1.9562431060003291,8546 "spec/models/pages_deployment_spec.rb": 4.568895223999789,8547 "spec/services/todos/destroy/confidential_issue_service_spec.rb": 6.745856387999083,8548 "spec/models/ci/unit_test_failure_spec.rb": 4.696271721000812,8549 "spec/models/design_management/design_collection_spec.rb": 4.721187787999952,8550 "spec/views/layouts/header/_new_dropdown.haml_spec.rb": 3.607894615000987,8551 "spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb": 4.174971836000623,8552 "spec/workers/namespaces/process_sync_events_worker_spec.rb": 3.786759406000783,8553 "spec/services/groups/group_links/destroy_service_spec.rb": 3.632925702000648,8554 "spec/workers/delete_diff_files_worker_spec.rb": 5.75096688099984,8555 "spec/lib/gitlab/git_spec.rb": 1.1511265299996012,8556 "spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb": 1.2896210250000877,8557 "spec/lib/gitlab/import_export/attributes_finder_spec.rb": 0.9422037620006449,8558 "spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb": 1.4582052380010282,8559 "spec/services/packages/helm/process_file_service_spec.rb": 2.9735415009999997,8560 "spec/helpers/ci/builds_helper_spec.rb": 3.3781727080004202,8561 "spec/models/users_statistics_spec.rb": 3.9302686310002173,8562 "spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb": 3.809489334000318,8563 "spec/lib/sidebars/panel_spec.rb": 0.9471137410000665,8564 "spec/helpers/sorting_helper_spec.rb": 1.6312744799997745,8565 "spec/lib/sidebars/groups/menus/settings_menu_spec.rb": 1.9851130829993053,8566 "spec/models/design_management/action_spec.rb": 2.935668274998534,8567 "spec/helpers/admin/user_actions_helper_spec.rb": 2.3852773010003148,8568 "spec/lib/bitbucket_server/representation/pull_request_comment_spec.rb": 0.8906217780004226,8569 "spec/finders/packages/helm/packages_finder_spec.rb": 1.5197314509987336,8570 "spec/support_specs/helpers/migrations_helpers_spec.rb": 0.7661519809989841,8571 "spec/lib/gitlab/lograge/custom_options_spec.rb": 0.9463971210007003,8572 "spec/lib/gitlab/github_import/importer/repository_importer_spec.rb": 0.8403462129990658,8573 "spec/services/ml/experiment_tracking/experiment_repository_spec.rb": 1.6932564329999877,8574 "spec/lib/gitlab/pages/virtual_host_finder_spec.rb": 1.8052202319995558,8575 "spec/lib/gitlab/import_export/file_importer_spec.rb": 2.28060059299969,8576 "spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb": 1.9306365289994574,8577 "spec/models/group_import_state_spec.rb": 2.0461417970000184,8578 "spec/workers/container_registry/delete_container_repository_worker_spec.rb": 2.4822447019996616,8579 "spec/models/concerns/ci/track_environment_usage_spec.rb": 2.249068425000587,8580 "spec/lib/banzai/filter/table_of_contents_filter_spec.rb": 1.2170949440005643,8581 "spec/lib/gitlab/changelog/committer_spec.rb": 3.945046730001195,8582 "spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb": 0.7300094140009605,8583 "spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb": 3.3632557500004623,8584 "spec/lib/gitlab/slash_commands/issue_show_spec.rb": 2.241530037001212,8585 "spec/models/ci/artifact_blob_spec.rb": 1.7350873590003175,8586 "spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb": 2.552650363999419,8587 "spec/graphql/resolvers/release_resolver_spec.rb": 1.4588775180000084,8588 "spec/serializers/evidences/evidence_entity_spec.rb": 1.731261570001152,8589 "spec/services/milestones/merge_requests_count_service_spec.rb": 1.0568473399998766,8590 "spec/services/dependency_proxy/group_settings/update_service_spec.rb": 1.7185068510007113,8591 "spec/graphql/mutations/terraform/state/lock_spec.rb": 1.7786708750008984,8592 "spec/lib/gitlab/git/cross_repo_spec.rb": 2.6358714349989896,8593 "spec/tooling/rspec_flaky/listener_spec.rb": 0.9067260259998875,8594 "spec/services/work_items/widgets/description_service/update_service_spec.rb": 2.7155850769995595,8595 "spec/lib/gitlab/dependency_linker_spec.rb": 0.9427245719998609,8596 "spec/services/ci/create_pipeline_service/merge_requests_spec.rb": 1.8589648469987878,8597 "spec/workers/stage_update_worker_spec.rb": 1.7978012029998354,8598 "spec/lib/gitlab/utils/username_and_email_generator_spec.rb": 1.769594015999246,8599 "spec/lib/gitlab/metrics/boot_time_tracker_spec.rb": 1.3173106030008057,8600 "spec/models/blob_viewer/markup_spec.rb": 1.8876288030005526,8601 "spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb": 2.002651852000781,8602 "spec/rubocop/cop/migration/prevent_index_creation_spec.rb": 0.9847544369986281,8603 "spec/workers/bulk_imports/relation_export_worker_spec.rb": 1.081960228000753,8604 "spec/workers/merge_requests/handle_assignees_change_worker_spec.rb": 2.580019181001262,8605 "spec/lib/banzai/reference_parser/project_parser_spec.rb": 2.903828318001615,8606 "spec/rubocop/cop/background_migration/missing_dictionary_file_spec.rb": 0.5983211980001215,8607 "spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb": 0.9575087309985975,8608 "spec/lib/feature_groups/gitlab_team_members_spec.rb": 1.0084290049999254,8609 "spec/lib/gitlab/database/query_analyzers/gitlab_schemas_validate_connection_spec.rb": 0.7432115320007142,8610 "spec/models/concerns/strip_attribute_spec.rb": 1.3040651440005604,8611 "spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb": 2.616926886999863,8612 "spec/models/concerns/batch_destroy_dependent_associations_spec.rb": 2.35399873499955,8613 "spec/services/work_items/parent_links/destroy_service_spec.rb": 1.946158196999022,8614 "spec/services/ci/generate_terraform_reports_service_spec.rb": 1.9826109939986054,8615 "spec/initializers/carrierwave_patch_spec.rb": 0.5645272209985706,8616 "spec/workers/ci/build_trace_chunk_flush_worker_spec.rb": 1.943637067999589,8617 "spec/finders/data_transfer/project_data_transfer_finder_spec.rb": 1.9661323959990114,8618 "spec/services/google_cloud/create_cloudsql_instance_service_spec.rb": 2.0674350949993823,8619 "spec/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric_spec.rb": 0.5199832560010691,8620 "spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb": 1.5267180410010042,8621 "spec/services/packages/composer/composer_json_service_spec.rb": 2.261565894999876,8622 "spec/lib/gitlab/email/smime/signer_spec.rb": 2.8052358080003614,8623 "spec/services/user_preferences/update_service_spec.rb": 0.7019150159994751,8624 "spec/helpers/git_helper_spec.rb": 0.6623561119995429,8625 "spec/tooling/lib/tooling/helm3_client_spec.rb": 0.708469855999283,8626 "spec/lib/gitlab/graphql/pagination/offset_active_record_relation_connection_spec.rb": 1.2509769600001164,8627 "spec/rubocop/cop/sidekiq_redis_call_spec.rb": 0.46581481199973496,8628 "spec/initializers/settings_spec.rb": 1.038662471999487,8629 "spec/models/concerns/cron_schedulable_spec.rb": 2.001252180998563,8630 "spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb": 0.9746856290003052,8631 "spec/lib/gitlab/hook_data/issue_builder_spec.rb": 1.7308360900005937,8632 "spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb": 0.6287463339995156,8633 "spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb": 0.6697724409987131,8634 "spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb": 2.165404254999885,8635 "spec/services/ci/pipeline_schedules/update_service_spec.rb": 1.5920016239997494,8636 "spec/lib/gitlab/session_spec.rb": 0.5666170109998347,8637 "spec/workers/cleanup_container_repository_worker_spec.rb": 1.4896497949994227,8638 "spec/components/diffs/stats_component_spec.rb": 1.4761992469993857,8639 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.6933877480005322,8640 "spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb": 0.5897204890006833,8641 "spec/lib/gitlab/time_tracking_formatter_spec.rb": 0.7988930559986329,8642 "spec/lib/system_check/app/hashed_storage_all_projects_check_spec.rb": 1.137250251000296,8643 "spec/initializers/safe_session_store_patch_spec.rb": 0.5981382079989999,8644 "spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb": 1.0974104560009437,8645 "spec/services/users/validate_manual_otp_service_spec.rb": 0.8524828710014845,8646 "spec/serializers/evidences/milestone_entity_spec.rb": 1.5708084359994245,8647 "spec/models/users/calloutable_spec.rb": 0.8095482759999868,8648 "spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb": 1.0426171909984987,8649 "spec/lib/gitlab/query_limiting_spec.rb": 0.7849134789994423,8650 "spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb": 0.6572909709993837,8651 "spec/components/pajamas/spinner_component_spec.rb": 0.5798597600005451,8652 "spec/workers/propagate_integration_inherit_descendant_worker_spec.rb": 1.0953362160016695,8653 "spec/rubocop/cop/feature_flag_usage_spec.rb": 0.8285040339997067,8654 "spec/workers/gitlab/github_gists_import/finish_import_worker_spec.rb": 0.6482287630005885,8655 "spec/services/members/invite_member_builder_spec.rb": 1.1168061139997008,8656 "spec/workers/ci/daily_build_group_report_results_worker_spec.rb": 1.0893511360009143,8657 "spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb": 0.636274634000074,8658 "spec/models/users/saved_reply_spec.rb": 0.7124931660000584,8659 "spec/lib/gitlab/string_regex_marker_spec.rb": 0.3656479519995628,8660 "spec/models/user_mentions/merge_request_user_mention_spec.rb": 0.6431880429990997,8661 "spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb": 0.5128626759997132,8662 "spec/initializers/0_postgresql_types_spec.rb": 0.4012581980005052,8663 "spec/lib/api/base_spec.rb": 0.6816700389990729,8664 "spec/models/jira_connect_subscription_spec.rb": 0.6352236830007314,8665 "spec/lib/gitlab/ci/config/entry/caches_spec.rb": 0.5070669180004188,8666 "spec/models/pages/virtual_domain_spec.rb": 0.516115977001391,8667 "spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb": 0.5963889680006105,8668 "spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb": 0.6107298059996538,8669 "spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb": 0.5470365230012249,8670 "spec/lib/sidebars/projects/menus/wiki_menu_spec.rb": 0.5086779970006319,8671 "spec/rubocop/cop/rake/require_spec.rb": 0.564562511000986,8672 "spec/views/devise/shared/_signin_box.html.haml_spec.rb": 0.6470651830004499,8673 "spec/support_specs/graphql/var_spec.rb": 0.5299716350000381,8674 "spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb": 0.7602554209988739,8675 "spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb": 0.5199527250006213,8676 "spec/lib/sidebars/groups/menus/scope_menu_spec.rb": 0.7544202509998286,8677 "spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb": 1.5253773709991947,8678 "spec/graphql/types/packages/package_details_type_spec.rb": 0.4950096680004208,8679 "spec/graphql/resolvers/concerns/resolves_groups_spec.rb": 0.8638939499996923,8680 "spec/lib/gitlab/event_store/event_spec.rb": 0.5062239079998108,8681 "spec/initializers/google_api_client_spec.rb": 0.452196513000672,8682 "spec/views/profiles/notifications/show.html.haml_spec.rb": 0.6877943480012618,8683 "spec/models/user_canonical_email_spec.rb": 0.4658554310008185,8684 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.48001250000015716,8685 "spec/serializers/import/githubish_provider_repo_entity_spec.rb": 0.5830972280000424,8686 "spec/serializers/integrations/project_entity_spec.rb": 0.7601488899999822,8687 "spec/lib/gitlab/database/async_ddl_exclusive_lease_guard_spec.rb": 0.7906090169999516,8688 "spec/graphql/types/time_tracking/timelog_category_type_spec.rb": 0.4967641190014547,8689 "spec/graphql/types/event_type_spec.rb": 0.4563946329999453,8690 "spec/graphql/types/alert_management/integration_type_enum_spec.rb": 0.41795996699875104,8691 "spec/models/license_template_spec.rb": 0.3811906299997645,8692 "spec/lib/generators/model/model_generator_spec.rb": 0.5436658729995543,8693 "spec/serializers/evidences/issue_entity_spec.rb": 0.44559935399956885,8694 "spec/policies/concerns/crud_policy_helpers_spec.rb": 0.6271181939991948,8695 "spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb": 0.5333549050010333,8696 "spec/services/award_emojis/base_service_spec.rb": 0.5435012630005076,8697 "spec/models/incident_management/timeline_event_tag_link_spec.rb": 0.3769187910002074,8698 "spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb": 0.4101119570004812,8699 "spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb": 0.5168006459989556,8700 "spec/rubocop/cop/migration/remove_index_spec.rb": 0.3910607790003269,8701 "spec/graphql/types/user_status_type_spec.rb": 0.4532427119993372,8702 "spec/graphql/types/user_preferences_type_spec.rb": 0.37342564099890296,8703 "spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb": 0.4727251509993948,8704 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.5854692489992885,8705 "spec/graphql/types/ci/runner_web_url_edge_spec.rb": 0.9979739560003509,8706 "spec/models/namespace_ci_cd_setting_spec.rb": 0.3265429959992616,8707 "spec/graphql/types/metadata/kas_type_spec.rb": 0.6820442890002596,8708 "spec/graphql/types/metadata_type_spec.rb": 0.5203674260010303,8709 "spec/graphql/types/deployment_tier_enum_spec.rb": 0.39752731900080107,8710 "spec/graphql/types/resolvable_interface_spec.rb": 0.3373202050006512,8711 "spec/serializers/accessibility_reports_comparer_serializer_spec.rb": 0.48422653899979196,8712 "spec/graphql/types/countable_connection_type_spec.rb": 0.37112698100099806,8713 "spec/graphql/types/limited_countable_connection_type_spec.rb": 0.4162905069988483,8714 "spec/models/blob_viewer/podspec_json_spec.rb": 0.38871309000023757,8715 "spec/lib/banzai/filter/html_entity_filter_spec.rb": 0.38274235000062628716}8717Knapsack global time execution for tests: 23m 57s8718Pending: (Failures listed here are expected and do not affect your suite's status)8719 1) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes with geo configured does not truncate gitlab_geo tables8720 # No reason given8721 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2658722 2) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when one of the attached partitions happened to be locked for writes truncates the locked partition successfully8723 # No reason given8724 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2498725 3) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes with geo configured does not truncate gitlab_geo tables8726 # No reason given8727 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2658728 4) Gitlab::Database::TablesTruncate when running in a single database mode raises an error when truncating the main database that it is a single database setup8729 # Skipping because some of the extra databases [:ci] are setup8730 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3358731 5) Gitlab::Database::TablesTruncate when running in a single database mode raises an error when truncating the ci database that it is a single database setup8732 # Skipping because some of the extra databases [:ci] are setup8733 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3418734 6) Gitlab::Database::TablesTruncate when running with multiple shared databases raises an error when truncating the main database that it is a single database setup8735 # Skipping because database ci exists8736 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3178737 7) Gitlab::Database::TablesTruncate when running with multiple shared databases raises an error when truncating the ci database that it is a single database setup8738 # Skipping because database ci exists8739 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3238740 8) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile behaves like builds correct paths #upload_path behaves like matches the method pattern 8741 # No pattern provided, skipping.8742 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88743 9) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile behaves like builds correct paths #relative_path is relative8744 # Path not set, skipping.8745 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408746 10) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile behaves like builds correct paths .absolute_path behaves like matches the method pattern 8747 # No pattern provided, skipping.8748 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88749 11) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile behaves like builds correct paths .base_dir behaves like matches the method pattern 8750 # No pattern provided, skipping.8751 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88752 12) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8753 # No pattern provided, skipping.8754 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88755 13) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile object store is remote behaves like builds correct paths #relative_path is relative8756 # Path not set, skipping.8757 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408758 14) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8759 # No pattern provided, skipping.8760 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88761 15) Packages::Debian::ComponentFileUploader Packages::Debian::ProjectComponentFile object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8762 # No pattern provided, skipping.8763 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88764 16) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile behaves like builds correct paths #upload_path behaves like matches the method pattern 8765 # No pattern provided, skipping.8766 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88767 17) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile behaves like builds correct paths #relative_path is relative8768 # Path not set, skipping.8769 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408770 18) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile behaves like builds correct paths .absolute_path behaves like matches the method pattern 8771 # No pattern provided, skipping.8772 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88773 19) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile behaves like builds correct paths .base_dir behaves like matches the method pattern 8774 # No pattern provided, skipping.8775 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88776 20) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8777 # No pattern provided, skipping.8778 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88779 21) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile object store is remote behaves like builds correct paths #relative_path is relative8780 # Path not set, skipping.8781 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408782 22) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8783 # No pattern provided, skipping.8784 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88785 23) Packages::Debian::ComponentFileUploader Packages::Debian::GroupComponentFile object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8786 # No pattern provided, skipping.8787 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88788 24) Packages::PackageFileUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8789 # No pattern provided, skipping.8790 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88791 25) Packages::PackageFileUploader behaves like builds correct paths #relative_path is relative8792 # Path not set, skipping.8793 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408794 26) Packages::PackageFileUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8795 # No pattern provided, skipping.8796 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88797 27) Packages::PackageFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8798 # No pattern provided, skipping.8799 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88800 28) Packages::PackageFileUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8801 # No pattern provided, skipping.8802 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88803 29) Packages::PackageFileUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8804 # No pattern provided, skipping.8805 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88806 30) Packages::PackageFileUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8807 # No pattern provided, skipping.8808 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88809 31) Packages::PackageFileUploader object store is remote behaves like builds correct paths #relative_path is relative8810 # Path not set, skipping.8811 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408812 32) Packages::PackageFileUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8813 # No pattern provided, skipping.8814 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88815 33) Packages::PackageFileUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8816 # No pattern provided, skipping.8817 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88818 34) Ci::UnitTestFailure partitioning with build copies the partition_id from build8819 # Skipping partitioning tests until `ci_builds` is partitioned8820 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8821 RSpec::Core::Pending::SkipDeclaredInExample8822 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8823 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8824 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8825 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8826 35) Ci::UnitTestFailure partitioning with build when it is already set does not change the partition_id value8827 # Skipping partitioning tests until `ci_builds` is partitioned8828 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8829 RSpec::Core::Pending::SkipDeclaredInExample8830 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8831 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8832 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8833 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8834 36) Ci::UnitTestFailure partitioning without build 8835 # Skipping partitioning tests until `ci_builds` is partitioned8836 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8837 RSpec::Core::Pending::SkipDeclaredInExample8838 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8839 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8840 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8841 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8842 37) Ci::UnitTestFailure partitioning without build does not change the partition_id value8843 # Skipping partitioning tests until `ci_builds` is partitioned8844 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8845 RSpec::Core::Pending::SkipDeclaredInExample8846 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8847 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8848 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8849 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8850 38) MigrationsHelpers#active_record_base ci database not configured returns the main base model8851 # Skipping because some of the extra databases [:ci] are setup8852 # ./spec/support_specs/helpers/migrations_helpers_spec.rb:368853 39) MigrationsHelpers#table ci database not configured creates a class based on main base model8854 # Skipping because some of the extra databases [:ci] are setup8855 # ./spec/support_specs/helpers/migrations_helpers_spec.rb:688856Finished in 24 minutes 1 second (files took 48.38 seconds to load)88573540 examples, 0 failures, 39 pending8858Randomized with seed 100728859[TEST PROF INFO] Time spent in factories: 14:15.664 (59.08% of total time)8860RSpec exited with 0.8861No examples to retry, congrats!8863Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8864Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8866Uploading artifacts...8867coverage/: found 5 matching artifact files and directories 8868crystalball/: found 2 matching artifact files and directories 8869WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8870knapsack/: found 3 matching artifact files and directories 8871WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8872rspec/: found 14 matching artifact files and directories 8873WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8874log/*.log: found 17 matching artifact files and directories 8875WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138438/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8876WARNING: Retrying... context=artifacts-uploader error=request redirected8877Uploading artifacts as "archive" to coordinator... 201 Created id=4031138438 responseStatus=201 Created token=64_Ej9Da8878Uploading artifacts...8879rspec/junit_rspec.xml: found 1 matching artifact files and directories 8880WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138438/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8881WARNING: Retrying... context=artifacts-uploader error=request redirected8882Uploading artifacts as "junit" to coordinator... 201 Created id=4031138438 responseStatus=201 Created token=64_Ej9Da8884Job succeeded