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

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org rpvz2FF9, system ID: s_d704414ba02a3 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-rpvz2ff9-project-278964-concurrent-0 via runner-rpvz2ff9-private-1680167576-677594c7...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 | 30.43 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_L8qJn45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_L8qJn47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_L8qJn49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_L8qJn52Using 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.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'717Created database 'gitlabhq_test'718==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 33 seconds.719$ setup_db_praefect720SELECT pg_catalog.set_config('search_path', '', false);721CREATE DATABASE praefect_test ENCODING 'UTF8';722==> 'setup_db_praefect' succeeded in 0 seconds.723$ source ./scripts/rspec_helpers.sh724$ run_timed_command "gem install knapsack --no-document"725$ gem install knapsack --no-document726Successfully installed knapsack-4.0.07271 gem installed728==> 'gem install knapsack --no-document' succeeded in 0 seconds.729$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"730$ scripts/gitaly-test-spawn833$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"834SKIP_FLAKY_TESTS_AUTOMATICALLY: false835RETRY_FAILED_TESTS_IN_NEW_PROCESS: true836KNAPSACK_GENERATE_REPORT: true837FLAKY_RSPEC_GENERATE_REPORT: true838KNAPSACK_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.rb839KNAPSACK_LOG_LEVEL: debug840KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_single-db_20_28_report.json841FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json842FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_single-db_20_28_report.json843NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_single-db_20_28_report.json844SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_single-db_20_28_report.txt845CRYSTALBALL: 846Knapsack node specs:847spec/lib/gitlab/usage_data_spec.rb848spec/models/deployment_spec.rb849spec/models/wiki_page_spec.rb850spec/lib/gitlab/ci/pipeline/seed/build_spec.rb851spec/services/projects/create_service_spec.rb852spec/models/namespace/package_setting_spec.rb853spec/services/merge_requests/merge_service_spec.rb854spec/models/integrations/mattermost_spec.rb855spec/lib/gitlab/ci/status/build/factory_spec.rb856spec/finders/admin/projects_finder_spec.rb857spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb858spec/lib/gitlab/background_migration/backfill_user_details_fields_spec.rb859spec/presenters/projects/security/configuration_presenter_spec.rb860spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb861spec/services/files/multi_service_spec.rb862spec/services/merge_requests/cleanup_refs_service_spec.rb863spec/models/discussion_spec.rb864spec/services/submodules/update_service_spec.rb865spec/models/trending_project_spec.rb866spec/services/issues/import_csv_service_spec.rb867spec/services/web_hook_service_spec.rb868spec/lib/gitlab/database/migrations/runner_spec.rb869spec/services/lfs/file_transformer_spec.rb870spec/helpers/labels_helper_spec.rb871spec/helpers/diff_helper_spec.rb872spec/models/label_spec.rb873spec/services/releases/update_service_spec.rb874spec/lib/gitlab/json_spec.rb875spec/lib/banzai/reference_parser/merge_request_parser_spec.rb876spec/workers/projects/import_export/create_relation_exports_worker_spec.rb877spec/lib/gitlab/ci/config/entry/processable_spec.rb878spec/services/projects/import_export/export_service_spec.rb879spec/workers/projects/after_import_worker_spec.rb880spec/lib/gitlab/background_migration/remove_backfilled_job_artifacts_expire_at_spec.rb881spec/uploaders/pages/deployment_uploader_spec.rb882spec/services/packages/maven/metadata/sync_service_spec.rb883spec/lib/gitlab/multi_collection_paginator_spec.rb884spec/graphql/gitlab_schema_spec.rb885spec/lib/gitlab/memory/reporter_spec.rb886spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb887spec/lib/gitlab/sidekiq_middleware/size_limiter/validator_spec.rb888spec/serializers/note_entity_spec.rb889spec/graphql/resolvers/work_items_resolver_spec.rb890spec/serializers/deployment_entity_spec.rb891spec/models/members/last_group_owner_assigner_spec.rb892spec/lib/gitlab/application_context_spec.rb893spec/services/releases/destroy_service_spec.rb894spec/services/ci/parse_dotenv_artifact_service_spec.rb895spec/graphql/mutations/issues/create_spec.rb896spec/services/merge_requests/update_assignees_service_spec.rb897spec/services/security/ci_configuration/sast_iac_create_service_spec.rb898spec/services/ci/create_pipeline_service/dry_run_spec.rb899spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb900spec/serializers/merge_request_diff_entity_spec.rb901spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb902spec/graphql/mutations/issues/set_severity_spec.rb903spec/helpers/page_layout_helper_spec.rb904spec/models/web_ide_terminal_spec.rb905spec/models/integrations/packagist_spec.rb906spec/graphql/resolvers/design_management/versions_resolver_spec.rb907spec/models/jira_connect_installation_spec.rb908spec/services/ci/delete_objects_service_spec.rb909spec/lib/gitlab/metrics/background_transaction_spec.rb910spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb911spec/models/concerns/sanitizable_spec.rb912spec/workers/background_migration_worker_spec.rb913spec/lib/gitlab/ci/config/extendable/entry_spec.rb914spec/lib/gitlab/process_management_spec.rb915spec/graphql/mutations/issues/set_escalation_status_spec.rb916spec/lib/gitlab/import_export/fork_spec.rb917spec/lib/uploaded_file_spec.rb918spec/lib/gitlab/diff/parser_spec.rb919spec/lib/gitlab/global_id_spec.rb920spec/lib/gitlab/kubernetes/helm/api_spec.rb921spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb922spec/lib/gitlab/ci/config/entry/image_spec.rb923spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb924spec/lib/banzai/reference_parser/alert_parser_spec.rb925spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb926spec/models/identity_spec.rb927spec/finders/packages/tags_finder_spec.rb928spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb929spec/lib/error_tracking/stacktrace_builder_spec.rb930spec/services/milestones/find_or_create_service_spec.rb931spec/services/merge_requests/base_service_spec.rb932spec/lib/gitlab/ci/badge/coverage/report_spec.rb933spec/helpers/users/group_callouts_helper_spec.rb934spec/models/group_deploy_key_spec.rb935spec/services/members/request_access_service_spec.rb936spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb937spec/lib/gitlab/setup_helper/praefect_spec.rb938spec/services/metrics/dashboard/pod_dashboard_service_spec.rb939spec/lib/gitlab/kubernetes/helm/v3/base_command_spec.rb940spec/services/ci/compare_test_reports_service_spec.rb941spec/finders/projects/export_job_finder_spec.rb942spec/models/blob_viewer/changelog_spec.rb943spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb944spec/models/board_spec.rb945spec/workers/project_cache_worker_spec.rb946spec/lib/gitlab/ci/status/build/common_spec.rb947spec/lib/gitlab/auth/o_auth/provider_spec.rb948spec/lib/gitlab/import_sources_spec.rb949spec/graphql/mutations/boards/issues/issue_move_list_spec.rb950spec/services/packages/go/create_package_service_spec.rb951spec/views/shared/wikis/_sidebar.html.haml_spec.rb952spec/tasks/gitlab/dependency_proxy/migrate_rake_spec.rb953spec/lib/api/entities/nuget/metadatum_spec.rb954spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb955spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb956spec/lib/gitlab/slash_commands/presenters/access_spec.rb957spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb958spec/workers/namespaces/root_statistics_worker_spec.rb959spec/lib/gitlab/ci/status/build/manual_spec.rb960spec/graphql/mutations/groups/update_spec.rb961spec/graphql/mutations/todos/mark_all_done_spec.rb962spec/lib/gitlab/ci/pipeline/chain/assign_partition_spec.rb963spec/lib/gitlab/utils/link_header_parser_spec.rb964spec/lib/gitlab/import_export/project/relation_saver_spec.rb965spec/helpers/time_zone_helper_spec.rb966spec/services/task_list_toggle_service_spec.rb967spec/models/concerns/legacy_bulk_insert_spec.rb968spec/scripts/pipeline_test_report_builder_spec.rb969spec/models/concerns/where_composite_spec.rb970spec/lib/gitlab/email/service_desk_receiver_spec.rb971spec/graphql/mutations/achievements/create_spec.rb972spec/lib/gitlab/database/partitioning/detached_partition_dropper_spec.rb973spec/lib/gitlab/ci/input/arguments/default_spec.rb974spec/models/integrations/issue_tracker_data_spec.rb975spec/lib/gitlab/config/entry/undefined_spec.rb976spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb977spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb978spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb979spec/helpers/programming_languages_helper_spec.rb980spec/tooling/lib/tooling/mappings/view_to_system_specs_mappings_spec.rb981spec/lib/gitlab/usage_data_counters/ipynb_diff_activity_counter_spec.rb982spec/lib/api/entities/basic_project_details_spec.rb983spec/lib/gitlab/git/patches/collection_spec.rb984spec/policies/project_group_link_policy_spec.rb985spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb986spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb987spec/graphql/types/diff_refs_type_spec.rb988spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb989spec/finders/license_template_finder_spec.rb990spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb991spec/lib/gitlab/gl_repository_spec.rb992spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_candidates_metric_spec.rb993spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb994spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb995spec/lib/gitlab/email/message/in_product_marketing_spec.rb996spec/views/admin/sessions/new.html.haml_spec.rb997spec/workers/projects/update_repository_storage_worker_spec.rb998spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb999spec/graphql/types/release_links_type_spec.rb1000spec/lib/gitlab/auth/key_status_checker_spec.rb1001spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb1002spec/lib/gitlab/sample_data_template_spec.rb1003spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb1004spec/initializers/1_acts_as_taggable_spec.rb1005spec/lib/gitlab/ci/config/external/mapper/location_expander_spec.rb1006spec/rubocop/cop/gitlab/feature_available_usage_spec.rb1007spec/services/ci/pipelines/hook_service_spec.rb1008spec/lib/gitlab/template/metrics_dashboard_template_spec.rb1009spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb1010spec/lib/gitlab/ssh/commit_spec.rb1011spec/presenters/ci/bridge_presenter_spec.rb1012spec/lib/gitlab/exceptions_app_spec.rb1013spec/routing/openid_connect_spec.rb1014spec/lib/gitlab/ci/pipeline/expression/token_spec.rb1015spec/models/concerns/issuable_link_spec.rb1016spec/rubocop/cop/prefer_class_methods_over_module_spec.rb1017spec/initializers/pages_storage_check_spec.rb1018spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb1019spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb1020spec/models/packages/composer/cache_file_spec.rb1021spec/rubocop/cop/code_reuse/presenter_spec.rb1022spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb1023spec/models/integrations/pivotaltracker_spec.rb1024spec/finders/packages/generic/package_finder_spec.rb1025spec/lib/gitlab/phabricator_import/worker_state_spec.rb1026spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb1027spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb1028spec/services/applications/create_service_spec.rb1029spec/graphql/resolvers/commit_pipelines_resolver_spec.rb1030spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb1031spec/graphql/types/container_repository_tag_type_spec.rb1032spec/policies/group_deploy_key_policy_spec.rb1033spec/lib/api/validations/validators/project_portable_spec.rb1034spec/validators/sha_validator_spec.rb1035spec/serializers/release_serializer_spec.rb1036spec/lib/gitlab/usage/metrics/instrumentations/count_user_auth_metric_spec.rb1037spec/graphql/types/ci/manual_variable_type_spec.rb1038spec/lib/gitlab/auth/saml/origin_validator_spec.rb1039spec/models/diff_viewer/image_spec.rb1040spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb1041spec/helpers/artifacts_helper_spec.rb1042spec/lib/gitlab/ci/build/hook_spec.rb1043spec/rubocop/cop/group_public_or_visible_to_user_spec.rb1044spec/services/bulk_imports/get_importable_data_service_spec.rb1045spec/graphql/types/achievements/achievement_type_spec.rb1046spec/workers/packages/composer/cache_cleanup_worker_spec.rb1047spec/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled_spec.rb1048spec/helpers/web_ide_button_helper_spec.rb1049spec/lib/product_analytics/event_params_spec.rb1050spec/serializers/move_to_project_entity_spec.rb1051spec/lib/gitlab/database/tables_sorted_by_foreign_keys_spec.rb1052spec/graphql/types/snippets/blob_action_input_type_spec.rb1053spec/graphql/types/ci/runner_machine_type_spec.rb1054spec/lib/gitlab/webpack/graphql_known_operations_spec.rb1055spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb1056spec/lib/system_check/app/hashed_storage_enabled_check_spec.rb1057spec/graphql/types/ci/config/need_type_spec.rb1058spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb1059spec/lib/gitlab/external_authorization/cache_spec.rb1060spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb1061spec/graphql/types/work_items/widgets/description_type_spec.rb1062spec/lib/bulk_imports/retry_pipeline_error_spec.rb1063spec/lib/mattermost/command_spec.rb1064spec/graphql/types/jira_user_type_spec.rb1065spec/lib/gitlab/backtrace_cleaner_spec.rb1066spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb1067spec/initializers/fog_google_https_private_urls_spec.rb1068spec/serializers/ci/codequality_mr_diff_entity_spec.rb1069spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb1070spec/lib/gitlab/database/migrations/observers/query_details_spec.rb1071spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb1072spec/lib/api/validations/validators/git_ref_spec.rb1073spec/lib/gitlab/database/async_constraints_spec.rb1074spec/lib/sidebars/static_menu_spec.rb1075spec/lib/gitlab/memory/diagnostic_reports_logger_spec.rb1076spec/workers/todos_destroyer/group_private_worker_spec.rb1077spec/models/blob_viewer/podspec_spec.rb1078Filter specs:1079Running specs:1080Running all node tests without filter1081spec/lib/gitlab/usage_data_spec.rb1082spec/models/deployment_spec.rb1083spec/models/wiki_page_spec.rb1084spec/lib/gitlab/ci/pipeline/seed/build_spec.rb1085spec/services/projects/create_service_spec.rb1086spec/models/namespace/package_setting_spec.rb1087spec/services/merge_requests/merge_service_spec.rb1088spec/models/integrations/mattermost_spec.rb1089spec/lib/gitlab/ci/status/build/factory_spec.rb1090spec/finders/admin/projects_finder_spec.rb1091spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb1092spec/lib/gitlab/background_migration/backfill_user_details_fields_spec.rb1093spec/presenters/projects/security/configuration_presenter_spec.rb1094spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb1095spec/services/files/multi_service_spec.rb1096spec/services/merge_requests/cleanup_refs_service_spec.rb1097spec/models/discussion_spec.rb1098spec/services/submodules/update_service_spec.rb1099spec/models/trending_project_spec.rb1100spec/services/issues/import_csv_service_spec.rb1101spec/services/web_hook_service_spec.rb1102spec/lib/gitlab/database/migrations/runner_spec.rb1103spec/services/lfs/file_transformer_spec.rb1104spec/helpers/labels_helper_spec.rb1105spec/helpers/diff_helper_spec.rb1106spec/models/label_spec.rb1107spec/services/releases/update_service_spec.rb1108spec/lib/gitlab/json_spec.rb1109spec/lib/banzai/reference_parser/merge_request_parser_spec.rb1110spec/workers/projects/import_export/create_relation_exports_worker_spec.rb1111spec/lib/gitlab/ci/config/entry/processable_spec.rb1112spec/services/projects/import_export/export_service_spec.rb1113spec/workers/projects/after_import_worker_spec.rb1114spec/lib/gitlab/background_migration/remove_backfilled_job_artifacts_expire_at_spec.rb1115spec/uploaders/pages/deployment_uploader_spec.rb1116spec/services/packages/maven/metadata/sync_service_spec.rb1117spec/lib/gitlab/multi_collection_paginator_spec.rb1118spec/graphql/gitlab_schema_spec.rb1119spec/lib/gitlab/memory/reporter_spec.rb1120spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb1121spec/lib/gitlab/sidekiq_middleware/size_limiter/validator_spec.rb1122spec/serializers/note_entity_spec.rb1123spec/graphql/resolvers/work_items_resolver_spec.rb1124spec/serializers/deployment_entity_spec.rb1125spec/models/members/last_group_owner_assigner_spec.rb1126spec/lib/gitlab/application_context_spec.rb1127spec/services/releases/destroy_service_spec.rb1128spec/services/ci/parse_dotenv_artifact_service_spec.rb1129spec/graphql/mutations/issues/create_spec.rb1130spec/services/merge_requests/update_assignees_service_spec.rb1131spec/services/security/ci_configuration/sast_iac_create_service_spec.rb1132spec/services/ci/create_pipeline_service/dry_run_spec.rb1133spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb1134spec/serializers/merge_request_diff_entity_spec.rb1135spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb1136spec/graphql/mutations/issues/set_severity_spec.rb1137spec/helpers/page_layout_helper_spec.rb1138spec/models/web_ide_terminal_spec.rb1139spec/models/integrations/packagist_spec.rb1140spec/graphql/resolvers/design_management/versions_resolver_spec.rb1141spec/models/jira_connect_installation_spec.rb1142spec/services/ci/delete_objects_service_spec.rb1143spec/lib/gitlab/metrics/background_transaction_spec.rb1144spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb1145spec/models/concerns/sanitizable_spec.rb1146spec/workers/background_migration_worker_spec.rb1147spec/lib/gitlab/ci/config/extendable/entry_spec.rb1148spec/lib/gitlab/process_management_spec.rb1149spec/graphql/mutations/issues/set_escalation_status_spec.rb1150spec/lib/gitlab/import_export/fork_spec.rb1151spec/lib/uploaded_file_spec.rb1152spec/lib/gitlab/diff/parser_spec.rb1153spec/lib/gitlab/global_id_spec.rb1154spec/lib/gitlab/kubernetes/helm/api_spec.rb1155spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb1156spec/lib/gitlab/ci/config/entry/image_spec.rb1157spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb1158spec/lib/banzai/reference_parser/alert_parser_spec.rb1159spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb1160spec/models/identity_spec.rb1161spec/finders/packages/tags_finder_spec.rb1162spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb1163spec/lib/error_tracking/stacktrace_builder_spec.rb1164spec/services/milestones/find_or_create_service_spec.rb1165spec/services/merge_requests/base_service_spec.rb1166spec/lib/gitlab/ci/badge/coverage/report_spec.rb1167spec/helpers/users/group_callouts_helper_spec.rb1168spec/models/group_deploy_key_spec.rb1169spec/services/members/request_access_service_spec.rb1170spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb1171spec/lib/gitlab/setup_helper/praefect_spec.rb1172spec/services/metrics/dashboard/pod_dashboard_service_spec.rb1173spec/lib/gitlab/kubernetes/helm/v3/base_command_spec.rb1174spec/services/ci/compare_test_reports_service_spec.rb1175spec/finders/projects/export_job_finder_spec.rb1176spec/models/blob_viewer/changelog_spec.rb1177spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb1178spec/models/board_spec.rb1179spec/workers/project_cache_worker_spec.rb1180spec/lib/gitlab/ci/status/build/common_spec.rb1181spec/lib/gitlab/auth/o_auth/provider_spec.rb1182spec/lib/gitlab/import_sources_spec.rb1183spec/graphql/mutations/boards/issues/issue_move_list_spec.rb1184spec/services/packages/go/create_package_service_spec.rb1185spec/views/shared/wikis/_sidebar.html.haml_spec.rb1186spec/tasks/gitlab/dependency_proxy/migrate_rake_spec.rb1187spec/lib/api/entities/nuget/metadatum_spec.rb1188spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb1189spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb1190spec/lib/gitlab/slash_commands/presenters/access_spec.rb1191spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb1192spec/workers/namespaces/root_statistics_worker_spec.rb1193spec/lib/gitlab/ci/status/build/manual_spec.rb1194spec/graphql/mutations/groups/update_spec.rb1195spec/graphql/mutations/todos/mark_all_done_spec.rb1196spec/lib/gitlab/ci/pipeline/chain/assign_partition_spec.rb1197spec/lib/gitlab/utils/link_header_parser_spec.rb1198spec/lib/gitlab/import_export/project/relation_saver_spec.rb1199spec/helpers/time_zone_helper_spec.rb1200spec/services/task_list_toggle_service_spec.rb1201spec/models/concerns/legacy_bulk_insert_spec.rb1202spec/scripts/pipeline_test_report_builder_spec.rb1203spec/models/concerns/where_composite_spec.rb1204spec/lib/gitlab/email/service_desk_receiver_spec.rb1205spec/graphql/mutations/achievements/create_spec.rb1206spec/lib/gitlab/database/partitioning/detached_partition_dropper_spec.rb1207spec/lib/gitlab/ci/input/arguments/default_spec.rb1208spec/models/integrations/issue_tracker_data_spec.rb1209spec/lib/gitlab/config/entry/undefined_spec.rb1210spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb1211spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb1212spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb1213spec/helpers/programming_languages_helper_spec.rb1214spec/tooling/lib/tooling/mappings/view_to_system_specs_mappings_spec.rb1215spec/lib/gitlab/usage_data_counters/ipynb_diff_activity_counter_spec.rb1216spec/lib/api/entities/basic_project_details_spec.rb1217spec/lib/gitlab/git/patches/collection_spec.rb1218spec/policies/project_group_link_policy_spec.rb1219spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb1220spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb1221spec/graphql/types/diff_refs_type_spec.rb1222spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb1223spec/finders/license_template_finder_spec.rb1224spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb1225spec/lib/gitlab/gl_repository_spec.rb1226spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_candidates_metric_spec.rb1227spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb1228spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb1229spec/lib/gitlab/email/message/in_product_marketing_spec.rb1230spec/views/admin/sessions/new.html.haml_spec.rb1231spec/workers/projects/update_repository_storage_worker_spec.rb1232spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb1233spec/graphql/types/release_links_type_spec.rb1234spec/lib/gitlab/auth/key_status_checker_spec.rb1235spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb1236spec/lib/gitlab/sample_data_template_spec.rb1237spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb1238spec/initializers/1_acts_as_taggable_spec.rb1239spec/lib/gitlab/ci/config/external/mapper/location_expander_spec.rb1240spec/rubocop/cop/gitlab/feature_available_usage_spec.rb1241spec/services/ci/pipelines/hook_service_spec.rb1242spec/lib/gitlab/template/metrics_dashboard_template_spec.rb1243spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb1244spec/lib/gitlab/ssh/commit_spec.rb1245spec/presenters/ci/bridge_presenter_spec.rb1246spec/lib/gitlab/exceptions_app_spec.rb1247spec/routing/openid_connect_spec.rb1248spec/lib/gitlab/ci/pipeline/expression/token_spec.rb1249spec/models/concerns/issuable_link_spec.rb1250spec/rubocop/cop/prefer_class_methods_over_module_spec.rb1251spec/initializers/pages_storage_check_spec.rb1252spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb1253spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb1254spec/models/packages/composer/cache_file_spec.rb1255spec/rubocop/cop/code_reuse/presenter_spec.rb1256spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb1257spec/models/integrations/pivotaltracker_spec.rb1258spec/finders/packages/generic/package_finder_spec.rb1259spec/lib/gitlab/phabricator_import/worker_state_spec.rb1260spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb1261spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb1262spec/services/applications/create_service_spec.rb1263spec/graphql/resolvers/commit_pipelines_resolver_spec.rb1264spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb1265spec/graphql/types/container_repository_tag_type_spec.rb1266spec/policies/group_deploy_key_policy_spec.rb1267spec/lib/api/validations/validators/project_portable_spec.rb1268spec/validators/sha_validator_spec.rb1269spec/serializers/release_serializer_spec.rb1270spec/lib/gitlab/usage/metrics/instrumentations/count_user_auth_metric_spec.rb1271spec/graphql/types/ci/manual_variable_type_spec.rb1272spec/lib/gitlab/auth/saml/origin_validator_spec.rb1273spec/models/diff_viewer/image_spec.rb1274spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb1275spec/helpers/artifacts_helper_spec.rb1276spec/lib/gitlab/ci/build/hook_spec.rb1277spec/rubocop/cop/group_public_or_visible_to_user_spec.rb1278spec/services/bulk_imports/get_importable_data_service_spec.rb1279spec/graphql/types/achievements/achievement_type_spec.rb1280spec/workers/packages/composer/cache_cleanup_worker_spec.rb1281spec/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled_spec.rb1282spec/helpers/web_ide_button_helper_spec.rb1283spec/lib/product_analytics/event_params_spec.rb1284spec/serializers/move_to_project_entity_spec.rb1285spec/lib/gitlab/database/tables_sorted_by_foreign_keys_spec.rb1286spec/graphql/types/snippets/blob_action_input_type_spec.rb1287spec/graphql/types/ci/runner_machine_type_spec.rb1288spec/lib/gitlab/webpack/graphql_known_operations_spec.rb1289spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb1290spec/lib/system_check/app/hashed_storage_enabled_check_spec.rb1291spec/graphql/types/ci/config/need_type_spec.rb1292spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb1293spec/lib/gitlab/external_authorization/cache_spec.rb1294spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb1295spec/graphql/types/work_items/widgets/description_type_spec.rb1296spec/lib/bulk_imports/retry_pipeline_error_spec.rb1297spec/lib/mattermost/command_spec.rb1298spec/graphql/types/jira_user_type_spec.rb1299spec/lib/gitlab/backtrace_cleaner_spec.rb1300spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb1301spec/initializers/fog_google_https_private_urls_spec.rb1302spec/serializers/ci/codequality_mr_diff_entity_spec.rb1303spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb1304spec/lib/gitlab/database/migrations/observers/query_details_spec.rb1305spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb1306spec/lib/api/validations/validators/git_ref_spec.rb1307spec/lib/gitlab/database/async_constraints_spec.rb1308spec/lib/sidebars/static_menu_spec.rb1309spec/lib/gitlab/memory/diagnostic_reports_logger_spec.rb1310spec/workers/todos_destroyer/group_private_worker_spec.rb1311spec/models/blob_viewer/podspec_spec.rb1312Running all node tests without filter1313Running all node tests without filter1314Running 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/lib/gitlab/usage_data_spec.rb spec/models/deployment_spec.rb spec/models/wiki_page_spec.rb spec/lib/gitlab/ci/pipeline/seed/build_spec.rb spec/services/projects/create_service_spec.rb spec/models/namespace/package_setting_spec.rb spec/services/merge_requests/merge_service_spec.rb spec/models/integrations/mattermost_spec.rb spec/lib/gitlab/ci/status/build/factory_spec.rb spec/finders/admin/projects_finder_spec.rb spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb spec/lib/gitlab/background_migration/backfill_user_details_fields_spec.rb spec/presenters/projects/security/configuration_presenter_spec.rb spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb spec/services/files/multi_service_spec.rb spec/services/merge_requests/cleanup_refs_service_spec.rb spec/models/discussion_spec.rb spec/services/submodules/update_service_spec.rb spec/models/trending_project_spec.rb spec/services/issues/import_csv_service_spec.rb spec/services/web_hook_service_spec.rb spec/lib/gitlab/database/migrations/runner_spec.rb spec/services/lfs/file_transformer_spec.rb spec/helpers/labels_helper_spec.rb spec/helpers/diff_helper_spec.rb spec/models/label_spec.rb spec/services/releases/update_service_spec.rb spec/lib/gitlab/json_spec.rb spec/lib/banzai/reference_parser/merge_request_parser_spec.rb spec/workers/projects/import_export/create_relation_exports_worker_spec.rb spec/lib/gitlab/ci/config/entry/processable_spec.rb spec/services/projects/import_export/export_service_spec.rb spec/workers/projects/after_import_worker_spec.rb spec/lib/gitlab/background_migration/remove_backfilled_job_artifacts_expire_at_spec.rb spec/uploaders/pages/deployment_uploader_spec.rb spec/services/packages/maven/metadata/sync_service_spec.rb spec/lib/gitlab/multi_collection_paginator_spec.rb spec/graphql/gitlab_schema_spec.rb spec/lib/gitlab/memory/reporter_spec.rb spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb spec/lib/gitlab/sidekiq_middleware/size_limiter/validator_spec.rb spec/serializers/note_entity_spec.rb spec/graphql/resolvers/work_items_resolver_spec.rb spec/serializers/deployment_entity_spec.rb spec/models/members/last_group_owner_assigner_spec.rb spec/lib/gitlab/application_context_spec.rb spec/services/releases/destroy_service_spec.rb spec/services/ci/parse_dotenv_artifact_service_spec.rb spec/graphql/mutations/issues/create_spec.rb spec/services/merge_requests/update_assignees_service_spec.rb spec/services/security/ci_configuration/sast_iac_create_service_spec.rb spec/services/ci/create_pipeline_service/dry_run_spec.rb spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb spec/serializers/merge_request_diff_entity_spec.rb spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb spec/graphql/mutations/issues/set_severity_spec.rb spec/helpers/page_layout_helper_spec.rb spec/models/web_ide_terminal_spec.rb spec/models/integrations/packagist_spec.rb spec/graphql/resolvers/design_management/versions_resolver_spec.rb spec/models/jira_connect_installation_spec.rb spec/services/ci/delete_objects_service_spec.rb spec/lib/gitlab/metrics/background_transaction_spec.rb spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb spec/models/concerns/sanitizable_spec.rb spec/workers/background_migration_worker_spec.rb spec/lib/gitlab/ci/config/extendable/entry_spec.rb spec/lib/gitlab/process_management_spec.rb spec/graphql/mutations/issues/set_escalation_status_spec.rb spec/lib/gitlab/import_export/fork_spec.rb spec/lib/uploaded_file_spec.rb spec/lib/gitlab/diff/parser_spec.rb spec/lib/gitlab/global_id_spec.rb spec/lib/gitlab/kubernetes/helm/api_spec.rb spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb spec/lib/gitlab/ci/config/entry/image_spec.rb spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb spec/lib/banzai/reference_parser/alert_parser_spec.rb spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb spec/models/identity_spec.rb spec/finders/packages/tags_finder_spec.rb spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb spec/lib/error_tracking/stacktrace_builder_spec.rb spec/services/milestones/find_or_create_service_spec.rb spec/services/merge_requests/base_service_spec.rb spec/lib/gitlab/ci/badge/coverage/report_spec.rb spec/helpers/users/group_callouts_helper_spec.rb spec/models/group_deploy_key_spec.rb spec/services/members/request_access_service_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb spec/lib/gitlab/setup_helper/praefect_spec.rb spec/services/metrics/dashboard/pod_dashboard_service_spec.rb spec/lib/gitlab/kubernetes/helm/v3/base_command_spec.rb spec/services/ci/compare_test_reports_service_spec.rb spec/finders/projects/export_job_finder_spec.rb spec/models/blob_viewer/changelog_spec.rb spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb spec/models/board_spec.rb spec/workers/project_cache_worker_spec.rb spec/lib/gitlab/ci/status/build/common_spec.rb spec/lib/gitlab/auth/o_auth/provider_spec.rb spec/lib/gitlab/import_sources_spec.rb spec/graphql/mutations/boards/issues/issue_move_list_spec.rb spec/services/packages/go/create_package_service_spec.rb spec/views/shared/wikis/_sidebar.html.haml_spec.rb spec/tasks/gitlab/dependency_proxy/migrate_rake_spec.rb spec/lib/api/entities/nuget/metadatum_spec.rb spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb spec/lib/gitlab/slash_commands/presenters/access_spec.rb spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb spec/workers/namespaces/root_statistics_worker_spec.rb spec/lib/gitlab/ci/status/build/manual_spec.rb spec/graphql/mutations/groups/update_spec.rb spec/graphql/mutations/todos/mark_all_done_spec.rb spec/lib/gitlab/ci/pipeline/chain/assign_partition_spec.rb spec/lib/gitlab/utils/link_header_parser_spec.rb spec/lib/gitlab/import_export/project/relation_saver_spec.rb spec/helpers/time_zone_helper_spec.rb spec/services/task_list_toggle_service_spec.rb spec/models/concerns/legacy_bulk_insert_spec.rb spec/scripts/pipeline_test_report_builder_spec.rb spec/models/concerns/where_composite_spec.rb spec/lib/gitlab/email/service_desk_receiver_spec.rb spec/graphql/mutations/achievements/create_spec.rb spec/lib/gitlab/database/partitioning/detached_partition_dropper_spec.rb spec/lib/gitlab/ci/input/arguments/default_spec.rb spec/models/integrations/issue_tracker_data_spec.rb spec/lib/gitlab/config/entry/undefined_spec.rb spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb spec/helpers/programming_languages_helper_spec.rb spec/tooling/lib/tooling/mappings/view_to_system_specs_mappings_spec.rb spec/lib/gitlab/usage_data_counters/ipynb_diff_activity_counter_spec.rb spec/lib/api/entities/basic_project_details_spec.rb spec/lib/gitlab/git/patches/collection_spec.rb spec/policies/project_group_link_policy_spec.rb spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb spec/graphql/types/diff_refs_type_spec.rb spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb spec/finders/license_template_finder_spec.rb spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb spec/lib/gitlab/gl_repository_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_candidates_metric_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb spec/lib/gitlab/email/message/in_product_marketing_spec.rb spec/views/admin/sessions/new.html.haml_spec.rb spec/workers/projects/update_repository_storage_worker_spec.rb spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb spec/graphql/types/release_links_type_spec.rb spec/lib/gitlab/auth/key_status_checker_spec.rb spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb spec/lib/gitlab/sample_data_template_spec.rb spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb spec/initializers/1_acts_as_taggable_spec.rb spec/lib/gitlab/ci/config/external/mapper/location_expander_spec.rb spec/rubocop/cop/gitlab/feature_available_usage_spec.rb spec/services/ci/pipelines/hook_service_spec.rb spec/lib/gitlab/template/metrics_dashboard_template_spec.rb spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb spec/lib/gitlab/ssh/commit_spec.rb spec/presenters/ci/bridge_presenter_spec.rb spec/lib/gitlab/exceptions_app_spec.rb spec/routing/openid_connect_spec.rb spec/lib/gitlab/ci/pipeline/expression/token_spec.rb spec/models/concerns/issuable_link_spec.rb spec/rubocop/cop/prefer_class_methods_over_module_spec.rb spec/initializers/pages_storage_check_spec.rb spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb spec/models/packages/composer/cache_file_spec.rb spec/rubocop/cop/code_reuse/presenter_spec.rb spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb spec/models/integrations/pivotaltracker_spec.rb spec/finders/packages/generic/package_finder_spec.rb spec/lib/gitlab/phabricator_import/worker_state_spec.rb spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb spec/services/applications/create_service_spec.rb spec/graphql/resolvers/commit_pipelines_resolver_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb spec/graphql/types/container_repository_tag_type_spec.rb spec/policies/group_deploy_key_policy_spec.rb spec/lib/api/validations/validators/project_portable_spec.rb spec/validators/sha_validator_spec.rb spec/serializers/release_serializer_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_user_auth_metric_spec.rb spec/graphql/types/ci/manual_variable_type_spec.rb spec/lib/gitlab/auth/saml/origin_validator_spec.rb spec/models/diff_viewer/image_spec.rb spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb spec/helpers/artifacts_helper_spec.rb spec/lib/gitlab/ci/build/hook_spec.rb spec/rubocop/cop/group_public_or_visible_to_user_spec.rb spec/services/bulk_imports/get_importable_data_service_spec.rb spec/graphql/types/achievements/achievement_type_spec.rb spec/workers/packages/composer/cache_cleanup_worker_spec.rb spec/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled_spec.rb spec/helpers/web_ide_button_helper_spec.rb spec/lib/product_analytics/event_params_spec.rb spec/serializers/move_to_project_entity_spec.rb spec/lib/gitlab/database/tables_sorted_by_foreign_keys_spec.rb spec/graphql/types/snippets/blob_action_input_type_spec.rb spec/graphql/types/ci/runner_machine_type_spec.rb spec/lib/gitlab/webpack/graphql_known_operations_spec.rb spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb spec/lib/system_check/app/hashed_storage_enabled_check_spec.rb spec/graphql/types/ci/config/need_type_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb spec/lib/gitlab/external_authorization/cache_spec.rb spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb spec/graphql/types/work_items/widgets/description_type_spec.rb spec/lib/bulk_imports/retry_pipeline_error_spec.rb spec/lib/mattermost/command_spec.rb spec/graphql/types/jira_user_type_spec.rb spec/lib/gitlab/backtrace_cleaner_spec.rb spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb spec/initializers/fog_google_https_private_urls_spec.rb spec/serializers/ci/codequality_mr_diff_entity_spec.rb spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb spec/lib/gitlab/database/migrations/observers/query_details_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb spec/lib/api/validations/validators/git_ref_spec.rb spec/lib/gitlab/database/async_constraints_spec.rb spec/lib/sidebars/static_menu_spec.rb spec/lib/gitlab/memory/diagnostic_reports_logger_spec.rb spec/workers/todos_destroyer/group_private_worker_spec.rb spec/models/blob_viewer/podspec_spec.rbKnapsack report generator started!1315Run options: exclude {:quarantine=>true, :level=>"background_migration"}1316Test environment set up in 1.171226736 seconds1317Gitlab::UsageData1318 .data1319 includes basic top and second level keys1320/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1321/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1322/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1323/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1324 clears memoized values1325 ensures recorded_at is set before any other usage data calculation1326 when generating usage ping in critical weeks1327/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1328/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1329/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1330/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1331 does not raise error when generated in last week of the year1332/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1333/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1334/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1335/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1336 does not raise error when generated in first week of the year1337/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1338/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1339/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1340/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1341 does not raise error when generated in second week of the year1342/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1343/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1344/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1345/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1346 does not raise error when generated in 3rd week of the year1347 usage_activity_by_stage_package1348 includes accurate usage_activity_by_stage data1349 .usage_activity_by_stage_configure1350 includes accurate usage_activity_by_stage data1351 usage_activity_by_stage_create1352 includes accurate usage_activity_by_stage data1353 usage_activity_by_stage_manage1354 includes accurate usage_activity_by_stage data1355 includes import gmau usage data1356 includes imports usage data1357 usage_activity_by_stage_monitor1358 includes accurate usage_activity_by_stage data1359 usage_activity_by_stage_plan1360 includes accurate usage_activity_by_stage data1361 does not merge the data from instrumentation classes1362 usage_activity_by_stage_release1363 includes accurate usage_activity_by_stage data1364 usage_activity_by_stage_verify1365 includes accurate usage_activity_by_stage data1366 .data1367/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1368/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1369/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1370/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1371 gathers usage data1372/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1373/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1374/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1375/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1376 gathers usage counts1377/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1378/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1379/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1380/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1381 gathers usage counts correctly1382/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1383/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1384/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1385/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1386 gathers object store usage correctly1387/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1388/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1389/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1390/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1391 includes a recording_ce_finished_at timestamp1392 when queries time out1393 with should_raise_for_dev? true1394 raises an error1395 with should_raise_for_dev? false1396/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1397/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1398/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1399/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1400 does not raise an error1401 .system_usage_data_monthly1402 gathers monthly usage counts correctly1403 .runners_usage1404 gathers runner usage counts correctly1405 .license_usage_data1406 gathers license data1407 when not relying on database records1408 .features_usage_data_ce1409 gathers feature usage data1410 with embedded Prometheus1411 returns true when embedded Prometheus is enabled1412 returns false when embedded Prometheus is disabled1413 with embedded grafana1414 returns true when embedded grafana is enabled1415 returns false when embedded grafana is disabled1416 with Gitpod1417 returns true when is enabled1418 returns false when is disabled1419 .components_usage_data1420 gathers basic components usage data1421 .object_store_config1422 when object_store is not configured1423 returns component enable status only1424 when object_store is configured1425 returns filtered object store config1426 when retrieve component setting meets exception1427 with should_raise_for_dev? false1428 returns -1 for component enable status1429 with should_raise_for_dev? true1430 raises an error1431 .object_store_usage_data1432 fetches object store config of five components1433 .grafana_embed_usage_data1434 with project grafana integration enabled1435 with valid and invalid embeds1436 counts only the issues with embeds1437 with project grafana integration disabled1438 with one issue having a grafana link in the description and one without1439 behaves like zero count1440 does not count the issue1441 with an un-integrated project1442 with one issue having a grafana link in the description and one without1443 behaves like zero count1444 does not count the issue1445 .operating_system1446/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1447/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1448/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1449/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1450 is expected to eq "ubuntu-20.04"1451 when on Debian with armv architecture1452/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1453/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1454/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1455/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1456 is expected to eq "raspbian-10"1457 .system_usage_data_settings1458 gathers encrypted secrets usage data1459 populates operating system information1460 gathers gitaly apdex1461 reports collected data categories1462 gathers service_ping_features_enabled1463 gathers user_cap_feature_enabled1464 reports status of the certificate_based_clusters feature flag as true1465 with certificate_based_clusters disabled1466 reports status of the certificate_based_clusters feature flag as false1467 snowplow stats1468 gathers snowplow stats1469 .merge_requests_users1470 returns the distinct count of users using merge requests (via events table) within the specified time period1471 .service_desk_counts1472 gathers Service Desk data1473 .with_metadata1474 records duration1475 records error and returns nil1476Deployment1477 is expected to belong to project required: true1478 is expected to belong to environment required: true1479 is expected to belong to cluster class_name => Clusters::Cluster required: false1480 is expected to belong to user required: false1481 is expected to belong to deployable required: false1482 is expected to have one deployment_cluster1483 is expected to have many deployment_merge_requests1484 is expected to have many merge_requests through deployment_merge_requests1485 is expected to delegate #environment_name to the #environment object as #name1486 is expected to delegate #commit to the #project object1487 is expected to delegate #commit_title to the #commit object as #try1488 is expected to delegate #kubernetes_namespace to the #deployment_cluster object1489 is expected to validate that :ref cannot be empty/falsy1490 is expected to validate that :sha cannot be empty/falsy1491 behaves like having unique enum values1492 has unique values in "status"1493 #manual_actions1494 delegates to environment_manual_actions1495 #scheduled_actions1496 delegates to environment_scheduled_actions1497 modules1498 behaves like AtomicInternalId1499 .has_internal_id1500 Module inclusion1501 is expected to includes the AtomicInternalId module1502 Validation1503 when presence validation is required1504 when creating an object1505 raises an error if the internal id is blank1506 when updating an object1507 raises an error if the internal id is blank1508 when presence validation is not required1509 when creating an object1510 does not raise an error if the internal id is blank (PENDING: No reason given)1511 when updating an object1512 does not raise an error if the internal id is blank (PENDING: No reason given)1513 Creating an instance1514 saves a new instance properly1515 internal id generation1516 calls InternalId.generate_next and sets internal id attribute1517 does not overwrite an existing internal id1518 when the instance has an internal ID set1519 calls InternalId.update_last_value and sets the `last_value` to that of the instance1520 unsetting the instance internal id on rollback1521 when the internal id has been changed1522 when the internal id is automatically set1523 clears it on the instance1524 when the internal id is manually set1525 does not clear it on the instance1526 when the internal id has not been changed1527 preserves the value on the instance1528 supply of internal ids1529 provides a persistent supply of IID values, sensitive to the current state1530 #reset_scope_internal_id_attribute1531 rewinds the allocated IID1532 allocates the same IID1533 .stoppable1534 when deployment is stoppable1535 is expected to eq [#<Deployment id: 47, iid: 1, project_id: 141, environment_id: 37, ref: "master", tag: false, sha: "b...hed_at: "2023-03-30 11:44:32.726684380 +0000", cluster_id: nil, deployable_id: 84, archived: false>]1536 when deployment is not stoppable1537 is expected to be empty1538 .for_iid1539 finds the deployment1540 when iid does not match1541 does not find the deployment1542 .for_environment_name1543 when deployment belongs to the environment1544 is expected to eq [#<Deployment id: 50, iid: 1, project_id: 145, environment_id: 40, ref: "master", tag: false, sha: "b...top: nil, status: "created", finished_at: nil, cluster_id: nil, deployable_id: 87, archived: false>]1545 when deployment belongs to the same project but different environment name1546 is expected to be empty1547 when deployment belongs to the same environment name but different project1548 is expected to be empty1549 .success1550 when deployment status is success1551 is expected to eq [#<Deployment id: 53, iid: 1, project_id: 147, environment_id: 43, ref: "master", tag: false, sha: "b...hed_at: "2023-03-30 11:44:37.808690763 +0000", cluster_id: nil, deployable_id: 90, archived: false>]1552 when deployment status is created1553 is expected to be empty1554 when deployment status is running1555 is expected to be empty1556 state machine1557 when deployment runs1558 starts running1559 executes Deployments::HooksWorker asynchronously1560 does not execute Deployments::DropOlderDeploymentsWorker1561 when deployment succeeded1562 has correct status1563 executes Deployments::UpdateEnvironmentWorker asynchronously1564 executes Deployments::HooksWorker asynchronously1565 when deployment failed1566 has correct status1567 does not execute Deployments::LinkMergeRequestWorker1568 executes Deployments::HooksWorker asynchronously1569 when deployment was canceled1570 has correct status1571 does not execute Deployments::LinkMergeRequestWorker1572 executes Deployments::HooksWorker asynchronously1573 when deployment was skipped1574 has correct status1575 does not execute Deployments::LinkMergeRequestWorker asynchronously1576 does not execute Deployments::HooksWorker1577 when deployment is blocked1578 has correct status1579 does not execute Deployments::LinkMergeRequestWorker asynchronously1580 does not execute Deployments::HooksWorker1581 synching status to Jira1582 when Jira Connect subscription does not exist1583 does not call the worker1584 when Jira Connect subscription exists1585 calls the worker on creation1586 does not call the worker for skipped deployments1587 when we call pipeline.run!1588 triggers a Jira synch worker1589 when we call pipeline.succeed!1590 triggers a Jira synch worker1591 when we call pipeline.drop!1592 triggers a Jira synch worker1593 when we call pipeline.cancel!1594 triggers a Jira synch worker1595 #older_than_last_successful_deployment?1596 when deployment is current deployment1597 is expected to be falsey1598 when deployment is behind current deployment1599 is expected to be truthy1600 when deployment is the same sha as the current deployment1601 is expected to be falsey1602 when environment is undefined1603 is expected to be falsey1604 #success?1605 when deployment status is success1606 is expected to be truthy1607 when deployment status is failed1608 is expected to be falsy1609 #status_name1610 when deployment status is success1611 is expected to eq :success1612 when deployment status is failed1613 is expected to eq :failed1614 #deployed_at1615 when deployment status is created1616 is expected to be nil1617 when deployment status is success1618 is expected to eq 2023-03-30 11:45:10.423664029 +00001619 when deployment status is running1620 is expected to be nil1621 .archivables_in1622 when there are no archivable deployments in the project1623 returns nothing1624 when there are archivable deployments in the project1625 returns all archivable deployments1626 with limit1627 takes the limit into account1628 scopes1629 last_for_environment1630 retrieves last deployments for environments1631 active1632 retrieves the active deployments1633 older_than1634 retrives the correct older deployments1635 .finished_before1636 filters deployments by finished_at1637 .finished_after1638 filters deployments by finished_at1639 .ordered1640 sorts by finished at1641 .ordered_as_upcoming1642 sorts by ID DESC1643 visible1644 retrieves the visible deployments1645 has a corresponding database index1646 upcoming1647 retrieves the upcoming deployments1648 last_deployment_group_for_environment1649 when there are no deployments and builds1650 is expected to eq #<ActiveRecord::Relation []>1651 when there are no successful builds1652 is expected to eq #<ActiveRecord::Relation []>1653 when there are deployments for multiple pipelines1654 returns the successful deployment jobs for the last deployment pipeline1655 when there are many environments1656 batch loads for environments1657 When last deployment for environment is a retried build1658 is expected not to be nil1659 latest_for_sha1660 finds the latest deployment with sha1661 when sha is old1662 finds the latest deployment with sha1663 when sha is nil1664 returns nothing1665 #includes_commit?1666 when there is no project commit1667 returns false1668 when they share the same tree branch1669 returns true1670 when the SHA for the deployment does not exist in the repo1671 returns false1672 #stop_action1673 when no other actions1674 is expected to be nil1675 with other actions1676 when matching action is defined1677 is expected to be nil1678 when no matching action is defined1679 is expected to eq #<Ci::Build status: "manual", finished_at: nil, created_at: "2023-03-30 08:50:29.000000000 +0000", up...rocessed: false, scheduling_type: "stage", id: 194, stage_id: 140, partition_id: 100, tag_list: nil>1680 #deployed_by1681 returns the deployment user if there is no deployable1682 returns the deployment user if the deployable have no user1683 returns the deployable user if there is one1684 #triggered_by?1685 is expected to eq true1686 when deployment triggerer is different1687 is expected to eq false1688 .find_successful_deployment!1689 returns a successful deployment1690 raises when no deployment is found1691 .builds1692 retrieves builds for the deployments1693 does not fetch the null deployable_ids1694 #build1695 retrieves build for the deployment1696 returns nil when the associated build is not found1697 #previous_deployment1698 pointer: "production_deployment_1", expected_previous_deployment: nil1699 returns the previous deployment1700 pointer: "production_deployment_2", expected_previous_deployment: "production_deployment_1"1701 returns the previous deployment1702 pointer: "production_deployment_3", expected_previous_deployment: "production_deployment_2"1703 returns the previous deployment1704 pointer: "production_deployment_4", expected_previous_deployment: "production_deployment_2"1705 returns the previous deployment1706 pointer: "staging_deployment_1", expected_previous_deployment: nil1707 returns the previous deployment1708 pointer: "staging_deployment_2", expected_previous_deployment: nil1709 returns the previous deployment1710 pointer: "production_deployment_5", expected_previous_deployment: "production_deployment_2"1711 returns the previous deployment1712 pointer: "staging_deployment_3", expected_previous_deployment: "staging_deployment_2"1713 returns the previous deployment1714 #link_merge_requests1715 links merge requests with a deployment1716 ignores already linked merge requests1717 #create_ref1718 creates a ref using the sha1719 #playable_build1720 when there is a deployable build1721 when the deployable build is playable1722 returns that build1723 when the deployable build is not playable1724 returns nil1725 when there is no deployable build1726 returns nil1727 #update_status1728 changes the status1729 schedules workers when finishing a deploy1730 updates finished_at when transitioning to a finished status1731 tracks an exception if an invalid argument1732 tracks an exception if an invalid status transition is detected1733 is expected to eq false1734 is expected to eq false1735 mapping status to event1736 status: "running", method: :run!1737 calls the correct method for the given status1738 status: "success", method: :succeed!1739 calls the correct method for the given status1740 status: "failed", method: :drop!1741 calls the correct method for the given status1742 status: "canceled", method: :cancel!1743 calls the correct method for the given status1744 status: "skipped", method: :skip!1745 calls the correct method for the given status1746 status: "blocked", method: :block!1747 calls the correct method for the given status1748 for created status update1749 calls the correct method1750 #sync_status_with1751 with created deployment1752 with created build1753 behaves like ignoring build1754 does not change deployment status1755 with running build1756 behaves like synchronizing deployment1757 changes deployment status1758 with finished build1759 behaves like synchronizing deployment1760 changes deployment status1761 with unrelated build1762 behaves like ignoring build1763 does not change deployment status1764 with running deployment1765 with created build1766 behaves like gracefully handling error1767 tracks an exception1768 with running build1769 behaves like ignoring build1770 does not change deployment status1771 with finished build1772 behaves like synchronizing deployment1773 changes deployment status1774 with unrelated build1775 behaves like ignoring build1776 does not change deployment status1777 with finished deployment1778 with created build1779 behaves like gracefully handling error1780 tracks an exception1781 with running build1782 behaves like gracefully handling error1783 tracks an exception1784 with finished build1785 behaves like ignoring build1786 does not change deployment status1787 with failed build1788 behaves like synchronizing deployment1789 changes deployment status1790 with unrelated build1791 behaves like ignoring build1792 does not change deployment status1793 #tags1794 will return tags related to this deployment1795 #valid_sha1796 does not add errors for a valid SHA1797 adds an error for an invalid SHA1798 #valid_ref1799 does not add errors for a valid ref1800 adds an error for an invalid ref1801 #tier_in_yaml1802 when deployable is nil1803 returns nil1804 when deployable is present1805 when tier is specified1806 returns the tier1807 when tier is not specified1808 returns nil1809 .fast_destroy_all1810 cleans path_refs for destroyed environments1811 #update_merge_request_metrics!1812 with production environment1813 updates merge request metrics for production-grade environment1814 with staging environment1815 updates merge request metrics for production-grade environment1816 loose foreign key on deployments.cluster_id1817 behaves like cleanup by a loose foreign key1818 cleans up (delete or nullify) the model1819WikiPage1820 #front_matter1821 the wiki page has front matter1822 strips the front matter from the content1823 behaves like a page with front-matter1824 is expected to eq {:slugs=>["slug_a", "slug_b"], :title=>"Foo"}1825 the feature flag is off1826 behaves like a page without front-matter1827 is expected to have attributes {:content => "---\ntitle: Foo\nslugs:\n - slug_a\n - slug_b\n---\n\nMy actual content\n", :front_matter => {}}1828 but enabled for the container1829 behaves like a page with front-matter1830 is expected to eq {:slugs=>["slug_a", "slug_b"], :title=>"Foo"}1831 the wiki page does not have front matter1832 behaves like a page without front-matter1833 is expected to have attributes {:content => "My actual content", :front_matter => {}}1834 the wiki page has fenced blocks, but nothing in them1835 behaves like a page without front-matter1836 is expected to have attributes {:content => "---\n---\n\nMy actual content\n", :front_matter => {}}1837 the wiki page has invalid YAML type in fenced blocks1838 behaves like a page without front-matter1839 is expected to have attributes {:content => "---\nthis isn't YAML\n---\n\nMy actual content\n", :front_matter => {}}1840 the wiki page has a disallowed class in fenced block1841 behaves like a page without front-matter1842 is expected to have attributes {:content => "---\ndate: 2010-02-11 11:02:57\n---\n\nMy actual content\n", :front_matter => {}}1843 the wiki page has invalid YAML in fenced block1844 behaves like a page without front-matter1845 is expected to have attributes {:content => "---\ninvalid-use-of-reserved-indicator: @text\n---\n\nMy actual content\n", :front_matter => {}}1846 .unhyphenize1847 removes hyphens from a name1848 #initialize1849 when initialized with an existing page1850 sets the slug attribute1851 sets the title attribute1852 sets the formatted content attribute1853 sets the format attribute1854 sets the message attribute1855 sets the version attribute1856 validations1857 validates presence of title1858 does not validate presence of content1859 #validate_content_size_limit1860 with a new page1861 accepts content below the limit1862 rejects content exceeding the limit1863 counts content size in bytes rather than characters1864 with an existing page exceeding the limit1865 accepts content when it has not changed1866 rejects content when it has changed1867 #validate_path_limits1868 character: "a"1869 accepts page titles below the limit1870 accepts directories below the limit1871 accepts a path with page title and directory below the limit1872 rejects page titles exceeding the limit1873 rejects directories exceeding the limit1874 rejects a page with both title and directory exceeding the limit1875 character: "ä"1876 accepts page titles below the limit1877 accepts directories below the limit1878 accepts a path with page title and directory below the limit1879 rejects page titles exceeding the limit1880 rejects directories exceeding the limit1881 rejects a page with both title and directory exceeding the limit1882 character: "🙈"1883 accepts page titles below the limit1884 accepts directories below the limit1885 accepts a path with page title and directory below the limit1886 rejects page titles exceeding the limit1887 rejects directories exceeding the limit1888 rejects a page with both title and directory exceeding the limit1889 with an existing page title exceeding the limit1890 accepts the exceeding title length when unchanged1891 rejects the exceeding title length when changed1892 #create1893 with valid attributes1894 saves the wiki page1895 returns true1896 saves the wiki page with message1897 if the title is preceded by a / it is removed1898 with invalid attributes1899 does not create the page1900 dot in the title1901 #create1902 saves the wiki page and returns true1903 #update1904 updates the content of the page and returns true1905 #update1906 with valid attributes1907 updates the content of the page1908 updates the title of the page1909 returns true1910 updating front_matter1911 updates the wiki-page front-matter and content together1912 behaves like able to update front-matter1913 updates the wiki-page front-matter1914 the front matter is too long1915 raises an error1916 the front-matter feature flag is not enabled1917 does not update the front-matter1918 but it is enabled for the container1919 behaves like able to update front-matter1920 updates the wiki-page front-matter1921 with same last commit sha1922 returns true1923 with different last commit sha1924 raises exception1925 in subdir1926 keeps the page in the same dir when the content is updated1927 when renaming a page1928 raises an error if the page already exists1929 updates the content and rename the file1930 when moving a page1931 raises an error if the page already exists1932 updates the content and moves the file1933 when page combine with directory1934 moving the file and directory1935 in subdir1936 moves the page to the root folder if the title is preceded by /1937 does nothing if it has the same title1938 in root dir1939 does nothing if the title is preceded by /1940 with invalid attributes1941 aborts update if title blank1942 #delete1943 deletes the page and returns true1944 #versions1945 number of versions is less than the default paginiated per page1946 returns an array of all commits for the page1947 number of versions is more than the default paginiated per page1948 returns an arrary containing the first page of commits for the page1949 returns an arrary containing the second page of commits for the page with options[:page] = 21950 wiki repository's default is updated1951 returns the correct versions in the default branch1952 #count_versions1953 returns the total numbers of commits1954 wiki repository's default is updated1955 returns the correct number of versions in the default branch1956 #title_changed?1957 page: :untitled_page, title: nil, changed: false1958 returns the expected value1959 page: :untitled_page, title: "new title", changed: true1960 returns the expected value1961 page: :unsaved_page, title: nil, changed: true1962 returns the expected value1963 page: :unsaved_page, title: "test page", changed: true1964 returns the expected value1965 page: :unsaved_page, title: "test-page", changed: true1966 returns the expected value1967 page: :unsaved_page, title: "test+page", changed: true1968 returns the expected value1969 page: :unsaved_page, title: "new title", changed: true1970 returns the expected value1971 page: :existing_page, title: nil, changed: false1972 returns the expected value1973 page: :existing_page, title: "test page", changed: false1974 returns the expected value1975 page: :existing_page, title: "test-page", changed: false1976 returns the expected value1977 page: :existing_page, title: "/test page", changed: false1978 returns the expected value1979 page: :existing_page, title: "/test-page", changed: false1980 returns the expected value1981 page: :existing_page, title: "test+page", changed: true1982 returns the expected value1983 page: :existing_page, title: " test page ", changed: true1984 returns the expected value1985 page: :existing_page, title: "new title", changed: true1986 returns the expected value1987 page: :existing_page, title: "new-title", changed: true1988 returns the expected value1989 page: :directory_page, title: nil, changed: false1990 returns the expected value1991 page: :directory_page, title: "parent directory/child page", changed: false1992 returns the expected value1993 page: :directory_page, title: "parent-directory/child page", changed: false1994 returns the expected value1995 page: :directory_page, title: "parent-directory/child-page", changed: false1996 returns the expected value1997 page: :directory_page, title: "child page", changed: false1998 returns the expected value1999 page: :directory_page, title: "child-page", changed: false2000 returns the expected value2001 page: :directory_page, title: "/child page", changed: true2002 returns the expected value2003 page: :directory_page, title: "parent directory/other", changed: true2004 returns the expected value2005 page: :directory_page, title: "parent-directory/other", changed: true2006 returns the expected value2007 page: :directory_page, title: "parent-directory / child-page", changed: true2008 returns the expected value2009 page: :directory_page, title: "other directory/child page", changed: true2010 returns the expected value2011 page: :directory_page, title: "other-directory/child page", changed: true2012 returns the expected value2013 page: :page_with_special_characters, title: nil, changed: false2014 returns the expected value2015 page: :page_with_special_characters, title: "test+page", changed: false2016 returns the expected value2017 page: :page_with_special_characters, title: "test-page", changed: true2018 returns the expected value2019 page: :page_with_special_characters, title: "test page", changed: true2020 returns the expected value2021 #content_changed?2022 with a new page2023 returns true if content is set2024 returns false if content is blank2025 with an existing page2026 returns false2027 returns false if content is set to the same value2028 returns true if content is changed2029 returns true if content is changed to a blank string2030 returns false if only the newline format has changed2031 #path2032 returns the path when persisted2033 returns nil when not persisted2034 #directory2035 when the page is at the root directory2036 returns an empty string2037 when the page is inside an actual directory2038 returns the full directory hierarchy2039 #historical?2040 returns true when requesting an old version2041 returns false when requesting latest version2042 returns false when version is nil2043 returns false when the last version is nil2044 returns false when the version is nil2045 #persisted?2046 returns true for a persisted page2047 returns false for an unpersisted page2048 #to_partial_path2049 returns the relative path to the partial to be used2050 #==2051 returns true for identical wiki page2052 returns true for updated wiki page2053 returns false for a completely different wiki page2054 returns false for page with different slug on same container2055 returns false for page with the same slug on a different container2056 #last_commit_sha2057 returns commit sha2058 is changed after page updated2059 #hook_attrs2060 adds absolute urls for images in the content2061 #version_commit_timestamp2062 for a new page2063 returns nil2064 for page that exists2065 returns the timestamp of the commit2066 #diffs2067 returns a diff instance2068Gitlab::Ci::Pipeline::Seed::Build2069 #attributes2070 is expected to be a kind of Hash2071 is expected to include :name, :project, and :ref2072 with job:when2073 is expected to include {:when => "on_failure"}2074 with job:when:delayed2075 is expected to include {:when => "delayed", :options => {:start_in => "3 hours"}}2076 with job:rules:[when:]2077 is matched2078 is expected to include {:when => "always"}2079 is not matched2080 is expected to include {:when => "never"}2081 with job:rules:[when:delayed]2082 is matched2083 is expected to include {:when => "delayed", :options => {:start_in => "3 hours"}}2084 is not matched2085 is expected to include {:when => "never"}2086 with job: rules but no explicit when:2087 with a manual job2088 with a matched rule2089 is expected to include {:when => "manual"}2090 is not matched2091 is expected to include {:when => "never"}2092 with an automatic job2093 is matched2094 is expected to include {:when => "on_success"}2095 is not matched2096 is expected to include {:when => "never"}2097 with job:rules:[variables:]2098 is expected to include {:yaml_variables => [{:key => "VAR1", :value => "new var 1"}, {:key => "VAR3", :value => "var 3"}, {:key => "VAR2", :value => "var 2"}]}2099 with job:tags2100 is expected to include {:tag_list => ["static-tag", "value", "$NO_VARIABLE"]}2101 is expected to include {:yaml_variables => [{:key => "VARIABLE", :value => "value"}]}2102 with cache:key2103 is expected to include {:options => {:cache => [(a hash including {:key => "a-value"})]}}2104 with cache:key:files2105 includes cache options2106 with cache:key:prefix2107 is expected to include {:options => {:cache => [(a hash including {:key => "something-default"})]}}2108 with cache:key:files and prefix2109 includes cache options2110 with empty cache2111 is expected to include {}2112 with allow_failure2113 when rules does not override allow_failure2114 is expected to match (a hash including {:options => {:allow_failure_criteria => {:exit_codes => [42]}}})2115 when rules set allow_failure to true2116 is expected to match (a hash including {:options => {:allow_failure_criteria => nil}})2117 when rules set allow_failure to false2118 is expected to match (a hash including {:options => {:allow_failure_criteria => nil}})2119 with workflow:rules:[variables:]2120 when the pipeline has variables2121 when root_variables_inheritance is true2122 returns calculated yaml variables2123 when root_variables_inheritance is false2124 returns job variables2125 when root_variables_inheritance is an array2126 returns calculated yaml variables2127 when the pipeline has not a variable2128 returns seed yaml variables2129 when the job rule depends on variables2130 when the rules use job variables2131 recalculates the variables2132 when the rules use root variables2133 recalculates the variables2134 when the root_variables_inheritance is false2135 does not recalculate the variables2136 #bridge?2137 when job is a downstream bridge2138 is expected to be truthy2139 when trigger definition is empty2140 is expected to be falsey2141 when job is an upstream bridge2142 is expected to be truthy2143 when upstream definition is empty2144 is expected to be falsey2145 when job is not a bridge2146 is expected to be falsey2147 #to_resource2148 memoizes a resource object2149 can not be persisted without explicit assignment2150 applying job inclusion policies2151 when no branch policy is specified2152 is expected to be included2153 when branch policy does not match2154 when using only2155 is expected not to be included2156 when using except2157 is expected to be included2158 with both only and except policies2159 is expected not to be included2160 when branch regexp policy does not match2161 when using only2162 is expected not to be included2163 when using except2164 is expected to be included2165 with both only and except policies2166 is expected not to be included2167 when branch policy matches2168 when using only2169 is expected to be included2170 when using except2171 is expected not to be included2172 when using both only and except policies2173 is expected not to be included2174 when keyword policy matches2175 when using only2176 is expected to be included2177 when using except2178 is expected not to be included2179 when using both only and except policies2180 is expected not to be included2181 when keyword policy does not match2182 when using only2183 is expected not to be included2184 when using except2185 is expected to be included2186 when using both only and except policies2187 is expected not to be included2188 with source-keyword policy2189 matches2190 keyword: "pushes", source: "push"2191 using an only policy2192 is expected to be included2193 using an except policy2194 is expected not to be included2195 using both only and except policies2196 is expected not to be included2197 keyword: "web", source: "web"2198 using an only policy2199 is expected to be included2200 using an except policy2201 is expected not to be included2202 using both only and except policies2203 is expected not to be included2204 keyword: "triggers", source: "trigger"2205 using an only policy2206 is expected to be included2207 using an except policy2208 is expected not to be included2209 using both only and except policies2210 is expected not to be included2211 keyword: "schedules", source: "schedule"2212 using an only policy2213 is expected to be included2214 using an except policy2215 is expected not to be included2216 using both only and except policies2217 is expected not to be included2218 keyword: "api", source: "api"2219 using an only policy2220 is expected to be included2221 using an except policy2222 is expected not to be included2223 using both only and except policies2224 is expected not to be included2225 keyword: "external", source: "external"2226 using an only policy2227 is expected to be included2228 using an except policy2229 is expected not to be included2230 using both only and except policies2231 is expected not to be included2232 non-matches2233 keyword: "pushes", source: "web"2234 using an only policy2235 is expected not to be included2236 using an except policy2237 is expected to be included2238 using both only and except policies2239 is expected not to be included2240 keyword: "pushes", source: "trigger"2241 using an only policy2242 is expected not to be included2243 using an except policy2244 is expected to be included2245 using both only and except policies2246 is expected not to be included2247 keyword: "pushes", source: "schedule"2248 using an only policy2249 is expected not to be included2250 using an except policy2251 is expected to be included2252 using both only and except policies2253 is expected not to be included2254 keyword: "pushes", source: "api"2255 using an only policy2256 is expected not to be included2257 using an except policy2258 is expected to be included2259 using both only and except policies2260 is expected not to be included2261 keyword: "pushes", source: "external"2262 using an only policy2263 is expected not to be included2264 using an except policy2265 is expected to be included2266 using both only and except policies2267 is expected not to be included2268 keyword: "web", source: "push"2269 using an only policy2270 is expected not to be included2271 using an except policy2272 is expected to be included2273 using both only and except policies2274 is expected not to be included2275 keyword: "web", source: "trigger"2276 using an only policy2277 is expected not to be included2278 using an except policy2279 is expected to be included2280 using both only and except policies2281 is expected not to be included2282 keyword: "web", source: "schedule"2283 using an only policy2284 is expected not to be included2285 using an except policy2286 is expected to be included2287 using both only and except policies2288 is expected not to be included2289 keyword: "web", source: "api"2290 using an only policy2291 is expected not to be included2292 using an except policy2293 is expected to be included2294 using both only and except policies2295 is expected not to be included2296 keyword: "web", source: "external"2297 using an only policy2298 is expected not to be included2299 using an except policy2300 is expected to be included2301 using both only and except policies2302 is expected not to be included2303 keyword: "triggers", source: "push"2304 using an only policy2305 is expected not to be included2306 using an except policy2307 is expected to be included2308 using both only and except policies2309 is expected not to be included2310 keyword: "triggers", source: "web"2311 using an only policy2312 is expected not to be included2313 using an except policy2314 is expected to be included2315 using both only and except policies2316 is expected not to be included2317 keyword: "triggers", source: "schedule"2318 using an only policy2319 is expected not to be included2320 using an except policy2321 is expected to be included2322 using both only and except policies2323 is expected not to be included2324 keyword: "triggers", source: "api"2325 using an only policy2326 is expected not to be included2327 using an except policy2328 is expected to be included2329 using both only and except policies2330 is expected not to be included2331 keyword: "triggers", source: "external"2332 using an only policy2333 is expected not to be included2334 using an except policy2335 is expected to be included2336 using both only and except policies2337 is expected not to be included2338 keyword: "schedules", source: "push"2339 using an only policy2340 is expected not to be included2341 using an except policy2342 is expected to be included2343 using both only and except policies2344 is expected not to be included2345 keyword: "schedules", source: "web"2346 using an only policy2347 is expected not to be included2348 using an except policy2349 is expected to be included2350 using both only and except policies2351 is expected not to be included2352 keyword: "schedules", source: "trigger"2353 using an only policy2354 is expected not to be included2355 using an except policy2356 is expected to be included2357 using both only and except policies2358 is expected not to be included2359 keyword: "schedules", source: "api"2360 using an only policy2361 is expected not to be included2362 using an except policy2363 is expected to be included2364 using both only and except policies2365 is expected not to be included2366 keyword: "schedules", source: "external"2367 using an only policy2368 is expected not to be included2369 using an except policy2370 is expected to be included2371 using both only and except policies2372 is expected not to be included2373 keyword: "api", source: "push"2374 using an only policy2375 is expected not to be included2376 using an except policy2377 is expected to be included2378 using both only and except policies2379 is expected not to be included2380 keyword: "api", source: "web"2381 using an only policy2382 is expected not to be included2383 using an except policy2384 is expected to be included2385 using both only and except policies2386 is expected not to be included2387 keyword: "api", source: "trigger"2388 using an only policy2389 is expected not to be included2390 using an except policy2391 is expected to be included2392 using both only and except policies2393 is expected not to be included2394 keyword: "api", source: "schedule"2395 using an only policy2396 is expected not to be included2397 using an except policy2398 is expected to be included2399 using both only and except policies2400 is expected not to be included2401 keyword: "api", source: "external"2402 using an only policy2403 is expected not to be included2404 using an except policy2405 is expected to be included2406 using both only and except policies2407 is expected not to be included2408 keyword: "external", source: "push"2409 using an only policy2410 is expected not to be included2411 using an except policy2412 is expected to be included2413 using both only and except policies2414 is expected not to be included2415 keyword: "external", source: "web"2416 using an only policy2417 is expected not to be included2418 using an except policy2419 is expected to be included2420 using both only and except policies2421 is expected not to be included2422 keyword: "external", source: "trigger"2423 using an only policy2424 is expected not to be included2425 using an except policy2426 is expected to be included2427 using both only and except policies2428 is expected not to be included2429 keyword: "external", source: "schedule"2430 using an only policy2431 is expected not to be included2432 using an except policy2433 is expected to be included2434 using both only and except policies2435 is expected not to be included2436 keyword: "external", source: "api"2437 using an only policy2438 is expected not to be included2439 using an except policy2440 is expected to be included2441 using both only and except policies2442 is expected not to be included2443 when repository path matches2444 when using only2445 is expected to be included2446 when using except2447 is expected not to be included2448 when using both only and except policies2449 is expected not to be included2450 when using both only and except policies2451 is expected not to be included2452 when repository path does not match2453 when using only2454 is expected not to be included2455 when using except2456 is expected to be included2457 when using both only and except policies2458 is expected not to be included2459 using rules:2460 with a matching if: rule2461 with an explicit `when: never`2462 rule_set: [{:if=>"$VARIABLE == null", :when=>"never"}]2463 is expected not to be included2464 still correctly populates when:2465 rule_set: [{:if=>"$VARIABLE == null", :when=>"never"}, {:if=>"$VARIABLE == null", :when=>"always"}]2466 is expected not to be included2467 still correctly populates when:2468 rule_set: [{:if=>"$VARIABLE != \"the wrong value\"", :when=>"never"}, {:if=>"$VARIABLE == null", :when=>"always"}]2469 is expected not to be included2470 still correctly populates when:2471 with an explicit `when: always`2472 rule_set: [{:if=>"$VARIABLE == null", :when=>"always"}]2473 is expected to be included2474 correctly populates when:2475 rule_set: [{:if=>"$VARIABLE == null", :when=>"always"}, {:if=>"$VARIABLE == null", :when=>"never"}]2476 is expected to be included2477 correctly populates when:2478 rule_set: [{:if=>"$VARIABLE != \"the wrong value\"", :when=>"always"}, {:if=>"$VARIABLE == null", :when=>"never"}]2479 is expected to be included2480 correctly populates when:2481 with an explicit `when: on_failure`2482 rule_set: [{:if=>"$CI_JOB_NAME == \"rspec\" && $VAR == null", :when=>"on_failure"}]2483 is expected to be included2484 correctly populates when:2485 rule_set: [{:if=>"$VARIABLE != null", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$CI_JOB_NAME == \"rspec\"", :when=>"on_failure"}]2486 is expected to be included2487 correctly populates when:2488 rule_set: [{:if=>"$VARIABLE == \"the wrong value\"", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$CI_BUILD_NAME == \"rspec\"", :when=>"on_failure"}]2489 is expected to be included2490 correctly populates when:2491 with an explicit `when: delayed`2492 rule_set: [{:if=>"$VARIABLE == null", :when=>"delayed", :start_in=>"1 day"}]2493 is expected to be included2494 correctly populates when:2495 rule_set: [{:if=>"$VARIABLE == null", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$VARIABLE == null", :when=>"never"}]2496 is expected to be included2497 correctly populates when:2498 rule_set: [{:if=>"$VARIABLE != \"the wrong value\"", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$VARIABLE == null", :when=>"never"}]2499 is expected to be included2500 correctly populates when:2501 without an explicit when: value2502 rule_set: [{:if=>"$VARIABLE == null"}]2503 is expected to be included2504 correctly populates when:2505 rule_set: [{:if=>"$VARIABLE == null"}, {:if=>"$VARIABLE == null"}]2506 is expected to be included2507 correctly populates when:2508 rule_set: [{:if=>"$VARIABLE != \"the wrong value\""}, {:if=>"$VARIABLE == null"}]2509 is expected to be included2510 correctly populates when:2511 with a matching changes: rule2512 with an explicit `when: never`2513 rule_set: [{:changes=>{:paths=>["*/**/*.rb"]}, :when=>"never"}, {:changes=>{:paths=>["*/**/*.rb"]}, :when=>"always"}]2514 is expected not to be included2515 correctly populates when:2516 rule_set: [{:changes=>{:paths=>["app/models/ci/pipeline.rb"]}, :when=>"never"}, {:changes=>{:paths=>["app/models/ci/pipeline.rb"]}, :when=>"always"}]2517 is expected not to be included2518 correctly populates when:2519 rule_set: [{:changes=>{:paths=>["spec/**/*.rb"]}, :when=>"never"}, {:changes=>{:paths=>["spec/**/*.rb"]}, :when=>"always"}]2520 is expected not to be included2521 correctly populates when:2522 rule_set: [{:changes=>{:paths=>["*.yml"]}, :when=>"never"}, {:changes=>{:paths=>["*.yml"]}, :when=>"always"}]2523 is expected not to be included2524 correctly populates when:2525 rule_set: [{:changes=>{:paths=>[".*.yml"]}, :when=>"never"}, {:changes=>{:paths=>[".*.yml"]}, :when=>"always"}]2526 is expected not to be included2527 correctly populates when:2528 rule_set: [{:changes=>{:paths=>["**/*"]}, :when=>"never"}, {:changes=>{:paths=>["**/*"]}, :when=>"always"}]2529 is expected not to be included2530 correctly populates when:2531 rule_set: [{:changes=>{:paths=>["*/**/*.rb", "*.yml"]}, :when=>"never"}, {:changes=>{:paths=>["*/**/*.rb", "*.yml"]}, :when=>"always"}]2532 is expected not to be included2533 correctly populates when:2534 rule_set: [{:changes=>{:paths=>[".*.yml", "**/*"]}, :when=>"never"}, {:changes=>{:paths=>[".*.yml", "**/*"]}, :when=>"always"}]2535 is expected not to be included2536 correctly populates when:2537 with an explicit `when: always`2538 rule_set: [{:changes=>{:paths=>["*/**/*.rb"]}, :when=>"always"}, {:changes=>{:paths=>["*/**/*.rb"]}, :when=>"never"}]2539 is expected to be included2540 correctly populates when:2541 rule_set: [{:changes=>{:paths=>["app/models/ci/pipeline.rb"]}, :when=>"always"}, {:changes=>{:paths=>["app/models/ci/pipeline.rb"]}, :when=>"never"}]2542 is expected to be included2543 correctly populates when:2544 rule_set: [{:changes=>{:paths=>["spec/**/*.rb"]}, :when=>"always"}, {:changes=>{:paths=>["spec/**/*.rb"]}, :when=>"never"}]2545 is expected to be included2546 correctly populates when:2547 rule_set: [{:changes=>{:paths=>["*.yml"]}, :when=>"always"}, {:changes=>{:paths=>["*.yml"]}, :when=>"never"}]2548 is expected to be included2549 correctly populates when:2550 rule_set: [{:changes=>{:paths=>[".*.yml"]}, :when=>"always"}, {:changes=>{:paths=>[".*.yml"]}, :when=>"never"}]2551 is expected to be included2552 correctly populates when:2553 rule_set: [{:changes=>{:paths=>["**/*"]}, :when=>"always"}, {:changes=>{:paths=>["**/*"]}, :when=>"never"}]2554 is expected to be included2555 correctly populates when:2556 rule_set: [{:changes=>{:paths=>["*/**/*.rb", "*.yml"]}, :when=>"always"}, {:changes=>{:paths=>["*/**/*.rb", "*.yml"]}, :when=>"never"}]2557 is expected to be included2558 correctly populates when:2559 rule_set: [{:changes=>{:paths=>[".*.yml", "**/*"]}, :when=>"always"}, {:changes=>{:paths=>[".*.yml", "**/*"]}, :when=>"never"}]2560 is expected to be included2561 correctly populates when:2562 without an explicit when: value2563 rule_set: [{:changes=>{:paths=>["*/**/*.rb"]}}]2564 is expected to be included2565 correctly populates when:2566 rule_set: [{:changes=>{:paths=>["app/models/ci/pipeline.rb"]}}]2567 is expected to be included2568 correctly populates when:2569 rule_set: [{:changes=>{:paths=>["spec/**/*.rb"]}}]2570 is expected to be included2571 correctly populates when:2572 rule_set: [{:changes=>{:paths=>["*.yml"]}}]2573 is expected to be included2574 correctly populates when:2575 rule_set: [{:changes=>{:paths=>[".*.yml"]}}]2576 is expected to be included2577 correctly populates when:2578 rule_set: [{:changes=>{:paths=>["**/*"]}}]2579 is expected to be included2580 correctly populates when:2581 rule_set: [{:changes=>{:paths=>["*/**/*.rb", "*.yml"]}}]2582 is expected to be included2583 correctly populates when:2584 rule_set: [{:changes=>{:paths=>[".*.yml", "**/*"]}}]2585 is expected to be included2586 correctly populates when:2587 with no matching rule2588 rule_set: [{:if=>"$VARIABLE != null", :when=>"never"}]2589 is expected not to be included2590 correctly populates when:2591 rule_set: [{:if=>"$VARIABLE != null", :when=>"never"}, {:if=>"$VARIABLE != null", :when=>"always"}]2592 is expected not to be included2593 correctly populates when:2594 rule_set: [{:if=>"$VARIABLE == \"the wrong value\"", :when=>"never"}, {:if=>"$VARIABLE != null", :when=>"always"}]2595 is expected not to be included2596 correctly populates when:2597 rule_set: [{:if=>"$VARIABLE != null", :when=>"always"}]2598 is expected not to be included2599 correctly populates when:2600 rule_set: [{:if=>"$VARIABLE != null", :when=>"always"}, {:if=>"$VARIABLE != null", :when=>"never"}]2601 is expected not to be included2602 correctly populates when:2603 rule_set: [{:if=>"$VARIABLE == \"the wrong value\"", :when=>"always"}, {:if=>"$VARIABLE != null", :when=>"never"}]2604 is expected not to be included2605 correctly populates when:2606 rule_set: [{:if=>"$VARIABLE != null"}]2607 is expected not to be included2608 correctly populates when:2609 rule_set: [{:if=>"$VARIABLE != null"}, {:if=>"$VARIABLE != null"}]2610 is expected not to be included2611 correctly populates when:2612 rule_set: [{:if=>"$VARIABLE == \"the wrong value\""}, {:if=>"$VARIABLE != null"}]2613 is expected not to be included2614 correctly populates when:2615 with a rule using CI_ENVIRONMENT_NAME variable2616 when environment:name satisfies the rule2617 is expected to be included2618 correctly populates when:2619 when environment:name does not satisfy rule2620 is expected not to be included2621 correctly populates when:2622 when environment:name is not set2623 is expected not to be included2624 correctly populates when:2625 with no rules2626 is expected not to be included2627 correctly populates when:2628 with invalid rules raising error2629 is expected not to be included2630 correctly populates when:2631 returns an error2632 applying needs: dependency2633 when build job is not present in prior stages2634 is included2635 returns an error2636 when the needed job is optional2637 does not return an error2638 when build job is part of prior stages2639 is included2640 does not have errors2641 when build job is part of the same stage2642 is included2643 does not have errors2644 when using 101 needs2645 returns an error2646 when ci_needs_size_limit is set to 1002647 returns an error2648 when ci_needs_size_limit is set to 02649 returns an error2650 applying pipeline variables2651 containing variable references2652 does not have errors2653 containing cyclic reference2654 returns an error2655 with job:rules:[if:]2656 included? does not raise2657 included? returns true2658Projects::CreateService#execute2659 calls the passed block2660 writes project full path to gitaly2661 triggers PostCreationWorker2662 with labels2663 creates labels on project creation2664 using gitlab project import2665 does not creates labels on project creation2666 setting name and path2667 when both are set2668 keeps them as specified2669 when path is set2670 sets name == path2671 when name is a valid path2672 sets path == name2673 when name is not a valid path2674 parameterizes the name2675 topics2676 with 'topics' parameter2677 keeps them as specified2678 with 'topic_list' parameter2679 keeps them as specified2680 with 'tag_list' parameter (deprecated)2681 keeps them as specified2682 user namespace2683 creates a project in user namespace2684 project_authorizations record creation2685 when the project_authrizations records are not created via the callback2686 still creates project_authrizations record for the user2687 when the passed in namespace is for a bot user2688 raises an error2689 after create actions2690 invalidate personal_projects_count caches2691 creates associated project settings2692 logs creation2693 publishes a ProjectCreatedEvent2694 behaves like storing arguments in the application context2695 places the expected params in the application context2696 admin creates project with other user's namespace_id2697 when admin mode is enabled2698 sets the correct permissions2699 when admin mode is disabled2700 is not allowed2701 group namespace2702 creates the project2703 behaves like has sync-ed traversal_ids2704 is expected to eq [1209, 1210]2705 group sharing2706 updates authorization2707 user with project limit2708 under personal namespace2709 cannot create a project2710 under group namespace2711 can create a project2712 membership overrides2713 membership is higher from group hierarchy2714 updates authorization2715 membership is higher from group share2716 share max access level is not limiting2717 updates authorization2718 share max access level is limiting2719 updates authorization2720 error handling2721 handles invalid options2722 wiki_enabled creates repository directory2723 wiki_enabled true creates wiki repository directory2724 is expected to be truthy2725 wiki_enabled false does not create wiki repository directory2726 is expected to be falsey2727 import data2728 does not write repository config2729 stores import data and URL2730 tracks for imported project2731 import scheduling2732 when project import type is gitlab project migration2733 does not schedule project import2734 builds_enabled global setting2735 global builds_enabled false does not enable CI by default2736 is expected to be falsey2737 global builds_enabled true does enable CI by default2738 is expected to be truthy2739 default visibility level2740 in public group2741 creates project with correct visibility level2742 in internal group2743 creates project with correct visibility level2744 in private group2745 creates project with correct visibility level2746 restricted visibility level2747 when visibility is project based2748 does not allow a restricted visibility level for non-admins2749 does not allow a restricted visibility level for admins when admin mode is disabled2750 allows a restricted visibility level for admins when admin mode is enabled2751 when visibility is overridden2752 does not allow a restricted visibility level for non-admins2753 does not allow a restricted visibility level for admins when admin mode is disabled2754 allows a restricted visibility level for admins when admin mode is enabled2755 when visibility is misspelled2756 does not restrict project creation2757 repository creation2758 synchronously creates the repository2759 when another repository already exists on disk2760 with legacy storage2761 does not allow to create a project when path matches existing repository on disk2762 does not allow to import project when path matches existing repository on disk2763 with hashed storage2764 does not allow to create a project when path matches existing repository on disk2765 when readme initialization is requested2766 behaves like a repo with a README.md2767 is expected to equal 12768 is expected to eql "README.md"2769 is expected to include "cd existing_repo\ngit remote add origin http://localhost/user220/GitLab.git\ngit branch -M master\ngit push -uf origin master\n"2770 and a readme_template is specified2771 behaves like a repo with a README.md2772 is expected to equal 12773 is expected to eql "README.md"2774 is expected to include "# GitLab\nThis is customized readme."2775 and a default_branch_name is specified2776 creates the correct branch2777 behaves like a repo with a README.md2778 is expected to equal 12779 is expected to eql "README.md"2780 is expected to include "cd existing_repo\ngit remote add origin http://localhost/user227/GitLab.git\ngit branch -M example_branch\ngit push -uf origin example_branch\n"2781 when SAST initialization is requested2782 creates a commit for SAST2783 create integration for the project2784 with an active instance-level integration2785 creates an integration from the instance-level integration2786 with an active group-level integration2787 creates an integration from the group-level integration2788 with an active subgroup2789 creates an integration from the subgroup-level integration2790 when skip_disk_validation is used2791 sets the project attribute2792 when import source is enabled2793 does not raise an error when import_source is string2794 does not raise an error when import_source is symbol2795 when import source is disabled2796 raises an error2797 with external authorization enabled2798 does not save the project with an error if the service denies access2799 saves the project when the user has access to the label2800 does not save the project when the user has no access to the default label and no label is provided2801 with specialized project_authorization workers2802 updates authorization for current_user2803 schedules authorization update for users with access to group2804 shared Runners config2805 when parent group is present2806 default value based on parent group setting2807 shared_runners_setting: "enabled", desired_config_for_new_project: nil, expected_result_for_project: true2808 creates project following the parent config2809 shared_runners_setting: "disabled_with_override", desired_config_for_new_project: nil, expected_result_for_project: false2810 creates project following the parent config2811 shared_runners_setting: "disabled_and_overridable", desired_config_for_new_project: nil, expected_result_for_project: false2812 creates project following the parent config2813 shared_runners_setting: "disabled_and_unoverridable", desired_config_for_new_project: nil, expected_result_for_project: false2814 creates project following the parent config2815 parent group is present and allows desired config2816 shared_runners_setting: "enabled", desired_config_for_new_project: true, expected_result_for_project: true2817 creates project following the parent config2818 shared_runners_setting: "enabled", desired_config_for_new_project: false, expected_result_for_project: false2819 creates project following the parent config2820 shared_runners_setting: "disabled_with_override", desired_config_for_new_project: false, expected_result_for_project: false2821 creates project following the parent config2822 shared_runners_setting: "disabled_with_override", desired_config_for_new_project: true, expected_result_for_project: true2823 creates project following the parent config2824 shared_runners_setting: "disabled_and_overridable", desired_config_for_new_project: false, expected_result_for_project: false2825 creates project following the parent config2826 shared_runners_setting: "disabled_and_overridable", desired_config_for_new_project: true, expected_result_for_project: true2827 creates project following the parent config2828 shared_runners_setting: "disabled_and_unoverridable", desired_config_for_new_project: false, expected_result_for_project: false2829 creates project following the parent config2830 parent group is present and disallows desired config2831 shared_runners_setting: "disabled_and_unoverridable", desired_config_for_new_project: true2832 does not create project2833 parent group is not present2834 desired_config: true, expected_result: true2835 follows desired config2836 desired_config: false, expected_result: false2837 follows desired config2838 desired_config: nil, expected_result: true2839 follows desired config2840Namespace::PackageSetting2841 relationships2842 is expected to belong to namespace required: false2843 validations2844 is expected to validate that :namespace cannot be empty/falsy2845 #maven_duplicates_allowed2846 is expected to allow :maven_duplicates_allowed to be ‹true›2847 is expected to allow :maven_duplicates_allowed to be ‹false›2848 is expected not to allow :maven_duplicates_allowed to be ‹nil›2849 is expected to allow :generic_duplicates_allowed to be ‹true›2850 is expected to allow :generic_duplicates_allowed to be ‹false›2851 is expected not to allow :generic_duplicates_allowed to be ‹nil›2852 regex values2853 is expected to allow :maven_duplicate_exception_regex to be ‹"SNAPSHOT"›2854 is expected to allow :maven_duplicate_exception_regex to be ‹".*"›2855 is expected to allow :maven_duplicate_exception_regex to be ‹"v.+"›2856 is expected to allow :maven_duplicate_exception_regex to be ‹"v10.1.*"›2857 is expected to allow :maven_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP)"›2858 is expected not to allow :maven_duplicate_exception_regex to be ‹"["›2859 is expected not to allow :maven_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP"›2860 is expected to allow :generic_duplicate_exception_regex to be ‹"SNAPSHOT"›2861 is expected to allow :generic_duplicate_exception_regex to be ‹".*"›2862 is expected to allow :generic_duplicate_exception_regex to be ‹"v.+"›2863 is expected to allow :generic_duplicate_exception_regex to be ‹"v10.1.*"›2864 is expected to allow :generic_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP)"›2865 is expected not to allow :generic_duplicate_exception_regex to be ‹"["›2866 is expected not to allow :generic_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP"›2867 #duplicates_allowed?2868 package types with package_settings2869 duplicates_allowed: true, duplicate_exception_regex: "", result: true2870 for maven_package2871 is expected to equal true2872 duplicates_allowed: false, duplicate_exception_regex: "", result: false2873 for maven_package2874 is expected to equal false2875 duplicates_allowed: false, duplicate_exception_regex: ".*", result: true2876 for maven_package2877 is expected to equal true2878 duplicates_allowed: false, duplicate_exception_regex: "fo.*", result: true2879 for maven_package2880 is expected to equal true2881 duplicates_allowed: false, duplicate_exception_regex: "be.*", result: true2882 for maven_package2883 is expected to equal true2884 duplicates_allowed: true, duplicate_exception_regex: "", result: true2885 for generic_package2886 is expected to equal true2887 duplicates_allowed: false, duplicate_exception_regex: "", result: false2888 for generic_package2889 is expected to equal false2890 duplicates_allowed: false, duplicate_exception_regex: ".*", result: true2891 for generic_package2892 is expected to equal true2893 duplicates_allowed: false, duplicate_exception_regex: "fo.*", result: true2894 for generic_package2895 is expected to equal true2896 duplicates_allowed: false, duplicate_exception_regex: "be.*", result: true2897 for generic_package2898 is expected to equal true2899 package types without package_settings2900 raises an error2901 raises an error2902 raises an error2903 raises an error2904 raises an error2905 raises an error2906 raises an error2907 package forwarding attributes2908 behaves like a cascading namespace setting boolean attribute2909 #maven_package_requests_forwarding2910 when there is no parent2911 and the value is not nil2912 returns the local value2913 and the value is nil2914 returns the application settings value2915 when parent does not lock the attribute2916 and value is not nil2917 returns local setting when present2918 returns the parent value when local value is nil2919 returns the correct dirty value2920 does not return the application setting value when parent value is false2921 and the value is nil2922 cascades to the application settings value2923 when multiple ancestors set a value2924 returns the closest ancestor value2925 when parent locks the attribute2926 returns the parent value2927 does not allow the local value to be saved2928 when the application settings locks the attribute2929 returns the application setting value2930 does not allow the local value to be saved2931 when parent locked the attribute then the application settings locks it2932 returns the application setting value2933 #maven_package_requests_forwarding?2934 aliases the method when the attribute is a boolean2935 #maven_package_requests_forwarding=2936 parent_value: true, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: nil2937 validates starting values from before block2938 does not save the value locally when it matches cascaded value2939 when mass assigned2940 does not save the value locally when it matches cascaded value2941 parent_value: true, current_subgroup_value: nil, new_subgroup_value: "true", expected_subgroup_value_after_update: nil2942 validates starting values from before block2943 does not save the value locally when it matches cascaded value2944 when mass assigned2945 does not save the value locally when it matches cascaded value2946 parent_value: true, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true2947 validates starting values from before block2948 does not save the value locally when it matches cascaded value2949 when mass assigned2950 does not save the value locally when it matches cascaded value2951 parent_value: true, current_subgroup_value: false, new_subgroup_value: "true", expected_subgroup_value_after_update: true2952 validates starting values from before block2953 does not save the value locally when it matches cascaded value2954 when mass assigned2955 does not save the value locally when it matches cascaded value2956 parent_value: true, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false2957 validates starting values from before block2958 does not save the value locally when it matches cascaded value2959 when mass assigned2960 does not save the value locally when it matches cascaded value2961 parent_value: true, current_subgroup_value: true, new_subgroup_value: "false", expected_subgroup_value_after_update: false2962 validates starting values from before block2963 does not save the value locally when it matches cascaded value2964 when mass assigned2965 does not save the value locally when it matches cascaded value2966 parent_value: false, current_subgroup_value: nil, new_subgroup_value: false, expected_subgroup_value_after_update: nil2967 validates starting values from before block2968 does not save the value locally when it matches cascaded value2969 when mass assigned2970 does not save the value locally when it matches cascaded value2971 parent_value: false, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: true2972 validates starting values from before block2973 does not save the value locally when it matches cascaded value2974 when mass assigned2975 does not save the value locally when it matches cascaded value2976 parent_value: false, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false2977 validates starting values from before block2978 does not save the value locally when it matches cascaded value2979 when mass assigned2980 does not save the value locally when it matches cascaded value2981 parent_value: false, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true2982 validates starting values from before block2983 does not save the value locally when it matches cascaded value2984 when mass assigned2985 does not save the value locally when it matches cascaded value2986 #maven_package_requests_forwarding_locked?2987 when attribute is locked by self2988 is not locked by default2989 is locked when including self2990 when parent does not lock the attribute2991 behaves like not locked2992 is not locked by an ancestor2993 is not locked by application setting2994 does not return a locked namespace2995 when parent locks the attribute2996 is locked by an ancestor2997 is not locked by application setting2998 returns a locked namespace settings object2999 when not locked by application settings3000 behaves like not locked3001 is not locked by an ancestor3002 is not locked by application setting3003 does not return a locked namespace3004 when locked by application settings3005 is not locked by an ancestor3006 is locked by application setting3007 does not return a locked namespace3008 #lock_maven_package_requests_forwarding=3009 when parent locks the attribute3010 does not allow the attribute to be saved3011 when parent does not lock the attribute3012 allows the lock to be set when the attribute is not nil3013 does not allow the lock to be saved when the attribute is nil3014 copies the cascaded value when locking the attribute if the local value is nil3015 when application settings locks the attribute3016 does not allow the attribute to be saved3017 when application_settings does not lock the attribute3018 allows the attribute to be saved3019 after update callback3020 clears descendant locks3021 behaves like a cascading namespace setting boolean attribute3022 #pypi_package_requests_forwarding3023 when there is no parent3024 and the value is not nil3025 returns the local value3026 and the value is nil3027 returns the application settings value3028 when parent does not lock the attribute3029 and value is not nil3030 returns local setting when present3031 returns the parent value when local value is nil3032 returns the correct dirty value3033 does not return the application setting value when parent value is false3034 and the value is nil3035 cascades to the application settings value3036 when multiple ancestors set a value3037 returns the closest ancestor value3038 when parent locks the attribute3039 returns the parent value3040 does not allow the local value to be saved3041 when the application settings locks the attribute3042 returns the application setting value3043 does not allow the local value to be saved3044 when parent locked the attribute then the application settings locks it3045 returns the application setting value3046 #pypi_package_requests_forwarding?3047 aliases the method when the attribute is a boolean3048 #pypi_package_requests_forwarding=3049 parent_value: true, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: nil3050 validates starting values from before block3051 does not save the value locally when it matches cascaded value3052 when mass assigned3053 does not save the value locally when it matches cascaded value3054 parent_value: true, current_subgroup_value: nil, new_subgroup_value: "true", expected_subgroup_value_after_update: nil3055 validates starting values from before block3056 does not save the value locally when it matches cascaded value3057 when mass assigned3058 does not save the value locally when it matches cascaded value3059 parent_value: true, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true3060 validates starting values from before block3061 does not save the value locally when it matches cascaded value3062 when mass assigned3063 does not save the value locally when it matches cascaded value3064 parent_value: true, current_subgroup_value: false, new_subgroup_value: "true", expected_subgroup_value_after_update: true3065 validates starting values from before block3066 does not save the value locally when it matches cascaded value3067 when mass assigned3068 does not save the value locally when it matches cascaded value3069 parent_value: true, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false3070 validates starting values from before block3071 does not save the value locally when it matches cascaded value3072 when mass assigned3073 does not save the value locally when it matches cascaded value3074 parent_value: true, current_subgroup_value: true, new_subgroup_value: "false", expected_subgroup_value_after_update: false3075 validates starting values from before block3076 does not save the value locally when it matches cascaded value3077 when mass assigned3078 does not save the value locally when it matches cascaded value3079 parent_value: false, current_subgroup_value: nil, new_subgroup_value: false, expected_subgroup_value_after_update: nil3080 validates starting values from before block3081 does not save the value locally when it matches cascaded value3082 when mass assigned3083 does not save the value locally when it matches cascaded value3084 parent_value: false, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: true3085 validates starting values from before block3086 does not save the value locally when it matches cascaded value3087 when mass assigned3088 does not save the value locally when it matches cascaded value3089 parent_value: false, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false3090 validates starting values from before block3091 does not save the value locally when it matches cascaded value3092 when mass assigned3093 does not save the value locally when it matches cascaded value3094 parent_value: false, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true3095 validates starting values from before block3096 does not save the value locally when it matches cascaded value3097 when mass assigned3098 does not save the value locally when it matches cascaded value3099 #pypi_package_requests_forwarding_locked?3100 when attribute is locked by self3101 is not locked by default3102 is locked when including self3103 when parent does not lock the attribute3104 behaves like not locked3105 is not locked by an ancestor3106 is not locked by application setting3107 does not return a locked namespace3108 when parent locks the attribute3109 is locked by an ancestor3110 is not locked by application setting3111 returns a locked namespace settings object3112 when not locked by application settings3113 behaves like not locked3114 is not locked by an ancestor3115 is not locked by application setting3116 does not return a locked namespace3117 when locked by application settings3118 is not locked by an ancestor3119 is locked by application setting3120 does not return a locked namespace3121 #lock_pypi_package_requests_forwarding=3122 when parent locks the attribute3123 does not allow the attribute to be saved3124 when parent does not lock the attribute3125 allows the lock to be set when the attribute is not nil3126 does not allow the lock to be saved when the attribute is nil3127 copies the cascaded value when locking the attribute if the local value is nil3128 when application settings locks the attribute3129 does not allow the attribute to be saved3130 when application_settings does not lock the attribute3131 allows the attribute to be saved3132 after update callback3133 clears descendant locks3134 behaves like a cascading namespace setting boolean attribute3135 #npm_package_requests_forwarding3136 when there is no parent3137 and the value is not nil3138 returns the local value3139 and the value is nil3140 returns the application settings value3141 when parent does not lock the attribute3142 and value is not nil3143 returns local setting when present3144 returns the parent value when local value is nil3145 returns the correct dirty value3146 does not return the application setting value when parent value is false3147 and the value is nil3148 cascades to the application settings value3149 when multiple ancestors set a value3150 returns the closest ancestor value3151 when parent locks the attribute3152 returns the parent value3153 does not allow the local value to be saved3154 when the application settings locks the attribute3155 returns the application setting value3156 does not allow the local value to be saved3157 when parent locked the attribute then the application settings locks it3158 returns the application setting value3159 #npm_package_requests_forwarding?3160 aliases the method when the attribute is a boolean3161 #npm_package_requests_forwarding=3162 parent_value: true, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: nil3163 validates starting values from before block3164 does not save the value locally when it matches cascaded value3165 when mass assigned3166 does not save the value locally when it matches cascaded value3167 parent_value: true, current_subgroup_value: nil, new_subgroup_value: "true", expected_subgroup_value_after_update: nil3168 validates starting values from before block3169 does not save the value locally when it matches cascaded value3170 when mass assigned3171 does not save the value locally when it matches cascaded value3172 parent_value: true, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true3173 validates starting values from before block3174 does not save the value locally when it matches cascaded value3175 when mass assigned3176 does not save the value locally when it matches cascaded value3177 parent_value: true, current_subgroup_value: false, new_subgroup_value: "true", expected_subgroup_value_after_update: true3178 validates starting values from before block3179 does not save the value locally when it matches cascaded value3180 when mass assigned3181 does not save the value locally when it matches cascaded value3182 parent_value: true, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false3183 validates starting values from before block3184 does not save the value locally when it matches cascaded value3185 when mass assigned3186 does not save the value locally when it matches cascaded value3187 parent_value: true, current_subgroup_value: true, new_subgroup_value: "false", expected_subgroup_value_after_update: false3188 validates starting values from before block3189 does not save the value locally when it matches cascaded value3190 when mass assigned3191 does not save the value locally when it matches cascaded value3192 parent_value: false, current_subgroup_value: nil, new_subgroup_value: false, expected_subgroup_value_after_update: nil3193 validates starting values from before block3194 does not save the value locally when it matches cascaded value3195 when mass assigned3196 does not save the value locally when it matches cascaded value3197 parent_value: false, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: true3198 validates starting values from before block3199 does not save the value locally when it matches cascaded value3200 when mass assigned3201 does not save the value locally when it matches cascaded value3202 parent_value: false, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false3203 validates starting values from before block3204 does not save the value locally when it matches cascaded value3205 when mass assigned3206 does not save the value locally when it matches cascaded value3207 parent_value: false, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true3208 validates starting values from before block3209 does not save the value locally when it matches cascaded value3210 when mass assigned3211 does not save the value locally when it matches cascaded value3212 #npm_package_requests_forwarding_locked?3213 when attribute is locked by self3214 is not locked by default3215 is locked when including self3216 when parent does not lock the attribute3217 behaves like not locked3218 is not locked by an ancestor3219 is not locked by application setting3220 does not return a locked namespace3221 when parent locks the attribute3222 is locked by an ancestor3223 is not locked by application setting3224 returns a locked namespace settings object3225 when not locked by application settings3226 behaves like not locked3227 is not locked by an ancestor3228 is not locked by application setting3229 does not return a locked namespace3230 when locked by application settings3231 is not locked by an ancestor3232 is locked by application setting3233 does not return a locked namespace3234 #lock_npm_package_requests_forwarding=3235 when parent locks the attribute3236 does not allow the attribute to be saved3237 when parent does not lock the attribute3238 allows the lock to be set when the attribute is not nil3239 does not allow the lock to be saved when the attribute is nil3240 copies the cascaded value when locking the attribute if the local value is nil3241 when application settings locks the attribute3242 does not allow the attribute to be saved3243 when application_settings does not lock the attribute3244 allows the attribute to be saved3245 after update callback3246 clears descendant locks3247MergeRequests::MergeService3248 #execute3249 valid params3250 is expected to be valid3251 is expected to be merged3252 persists merge_commit_sha and nullifies in_progress_merge_commit_sha3253 does not update squash_commit_sha if it is not a squash3254 sends email to user2 about merge of new merge_request3255 note creation3256 creates resource state event about merge_request merge3257 when squashing3258 merges the merge request with squashed commits3259 persists squash_commit_sha3260 running the service once3261 logs status messages3262 running the service multiple time3263 is idempotent3264 when an invalid sha is passed3265 does not merge the MR3266 when the `sha` param is missing3267 returns the error3268 closes related issues3269 closes GitLab issue tracker issues3270 with Jira integration3271 closes issues on Jira issue tracker3272 wrong issue markdown3273 does not close issues on Jira issue tracker3274 closes related todos3275 is expected to be done3276 source branch removal3277 when the source branch is protected3278 does not delete the source branch3279 when the source branch is the default branch3280 does not delete the source branch3281 when the source branch can be removed3282 when MR author set the source branch to be removed3283 removes the source branch using the author user3284 when the merger set the source branch not to be removed3285 does not delete the source branch3286 when MR merger set the source branch to be removed3287 removes the source branch using the current user3288 error handling3289 logs and saves error if there is an exception3290 logs and saves error if user is not authorized3291 logs and saves error if there is an PreReceiveError exception3292 logs and saves error if commit is not created3293 when source is missing3294 logs and saves error3295 when squashing is required3296 raises an error if squashing is not done3297 when squashing3298 logs and saves error if there is an error when squashing3299 logs and saves error if there is an PreReceiveError exception3300 when fast-forward merge is not allowed3301 logs and saves error if merge is semi-linear only3302 logs and saves error if merge is ff only3303 when not mergeable3304 with failing CI3305 logs and saves error3306 with unresolved discussions3307 logs and saves error3308 when passing `skip_discussions_check: true` as `options` parameter3309 merges the merge request3310 when the other sidekiq worker has already been running3311 does not execute service3312Integrations::Mattermost3313 behaves like Integrations::SlackMattermostNotifier3314 Associations3315 is expected to belong to project required: false3316 Validations3317 when integration is active3318 is expected to validate that :webhook cannot be empty/falsy3319 behaves like issue tracker integration URL attribute3320 is expected to allow :webhook to be ‹"https://example.com"›3321 is expected not to allow :webhook to be ‹"example.com"›3322 is expected not to allow :webhook to be ‹"ftp://example.com"›3323 is expected not to allow :webhook to be ‹"herp-and-derp"›3324 when integration is inactive3325 is expected not to validate that :webhook cannot be empty/falsy3326 #execute3327 with username for slack configured3328 uses the username as an option3329 push events3330 behaves like calls the integration API with the event message3331 is expected to request POST https://8.8.8.9/ 1 time3332 with event channel3333 uses the right channel for push event3334 tag_push events3335 behaves like calls the integration API with the event message3336 is expected to request POST https://8.8.8.9/ 1 time3337 issue events3338 behaves like calls the integration API with the event message3339 is expected to request POST https://8.8.8.9/ 1 time3340 whith event channel3341 uses the right channel for issue event3342 for confidential issues3343 falls back to issue channel3344 and confidential_issue_channel is defined3345 uses the confidential issue channel when it is defined3346 merge request events3347 behaves like calls the integration API with the event message3348 is expected to request POST https://8.8.8.9/ 1 time3349 with event channel3350 uses the right channel for merge request event3351 wiki page events3352 behaves like calls the integration API with the event message3353 is expected to request POST https://8.8.8.9/ 1 time3354 with event channel3355 uses the right channel for wiki event3356 deployment events3357 behaves like calls the integration API with the event message3358 is expected to request POST https://8.8.8.9/ 1 time3359 note event3360 behaves like calls the integration API with the event message3361 is expected to request POST https://8.8.8.9/ 1 time3362 with event channel3363 uses the right channel3364 for confidential notes3365 falls back to note channel3366 and confidential_note_channel is defined3367 uses confidential channel3368 Push events3369 on default branch3370 pushing tags3371 behaves like triggered Mattermost integration3372 notifies about push events3373 when the response is not successful3374 logs an error3375 notification enabled only for default branch3376 behaves like triggered Mattermost integration3377 notifies about push events3378 when the response is not successful3379 logs an error3380 notification enabled only for protected branches3381 behaves like untriggered Mattermost integration3382 does not notify about push events3383 notification enabled only for default and protected branches3384 behaves like triggered Mattermost integration3385 notifies about push events3386 when the response is not successful3387 logs an error3388 notification enabled for all branches3389 behaves like triggered Mattermost integration3390 notifies about push events3391 when the response is not successful3392 logs an error3393 on a protected branch3394 pushing tags3395 behaves like triggered Mattermost integration3396 notifies about push events3397 when the response is not successful3398 logs an error3399 notification enabled only for default branch3400 behaves like untriggered Mattermost integration3401 does not notify about push events3402 notification enabled only for protected branches3403 behaves like triggered Mattermost integration3404 notifies about push events3405 when the response is not successful3406 logs an error3407 notification enabled only for default and protected branches3408 behaves like triggered Mattermost integration3409 notifies about push events3410 when the response is not successful3411 logs an error3412 notification enabled for all branches3413 behaves like triggered Mattermost integration3414 notifies about push events3415 when the response is not successful3416 logs an error3417 on a protected branch with protected branches defined using wildcards3418 pushing tags3419 behaves like triggered Mattermost integration3420 notifies about push events3421 when the response is not successful3422 logs an error3423 notification enabled only for default branch3424 behaves like untriggered Mattermost integration3425 does not notify about push events3426 notification enabled only for protected branches3427 behaves like triggered Mattermost integration3428 notifies about push events3429 when the response is not successful3430 logs an error3431 notification enabled only for default and protected branches3432 behaves like triggered Mattermost integration3433 notifies about push events3434 when the response is not successful3435 logs an error3436 notification enabled for all branches3437 behaves like triggered Mattermost integration3438 notifies about push events3439 when the response is not successful3440 logs an error3441 on a neither protected nor default branch3442 pushing tags3443 behaves like triggered Mattermost integration3444 notifies about push events3445 when the response is not successful3446 logs an error3447 notification enabled only for default branch3448 behaves like untriggered Mattermost integration3449 does not notify about push events3450 notification enabled only for protected branches3451 behaves like untriggered Mattermost integration3452 does not notify about push events3453 notification enabled only for default and protected branches3454 behaves like untriggered Mattermost integration3455 does not notify about push events3456 notification enabled for all branches3457 behaves like triggered Mattermost integration3458 notifies about push events3459 when the response is not successful3460 logs an error3461 Note events3462 when commit comment event executed3463 behaves like triggered Mattermost integration3464 notifies about commit comment events3465 when the response is not successful3466 logs an error3467 when merge request comment event executed3468 behaves like triggered Mattermost integration3469 notifies about merge request comment events3470 when the response is not successful3471 logs an error3472 when issue comment event executed3473 behaves like triggered Mattermost integration3474 notifies about issue comment events3475 when the response is not successful3476 logs an error3477 when snippet comment event executed3478 behaves like triggered Mattermost integration3479 notifies about snippet comment events3480 when the response is not successful3481 logs an error3482 Pipeline events3483 with succeeded pipeline3484 with default to notify_only_broken_pipelines3485 behaves like untriggered Mattermost integration3486 does not notify about pipeline events3487 with setting notify_only_broken_pipelines to false3488 behaves like triggered Mattermost integration3489 notifies about pipeline events3490 when the response is not successful3491 logs an error3492 with failed pipeline3493 on default branch3494 notification enabled only for default branch3495 behaves like triggered Mattermost integration3496 notifies about pipeline events3497 when the response is not successful3498 logs an error3499 notification enabled only for protected branches3500 behaves like untriggered Mattermost integration3501 does not notify about pipeline events3502 notification enabled only for default and protected branches3503 behaves like triggered Mattermost integration3504 notifies about pipeline events3505 when the response is not successful3506 logs an error3507 notification enabled for all branches3508 behaves like triggered Mattermost integration3509 notifies about pipeline events3510 when the response is not successful3511 logs an error3512 on a protected branch3513 notification enabled only for default branch3514 behaves like untriggered Mattermost integration3515 does not notify about pipeline events3516 notification enabled only for protected branches3517 behaves like triggered Mattermost integration3518 notifies about pipeline events3519 when the response is not successful3520 logs an error3521 notification enabled only for default and protected branches3522 behaves like triggered Mattermost integration3523 notifies about pipeline events3524 when the response is not successful3525 logs an error3526 notification enabled for all branches3527 behaves like triggered Mattermost integration3528 notifies about pipeline events3529 when the response is not successful3530 logs an error3531 on a protected branch with protected branches defined usin wildcards3532 notification enabled only for default branch3533 behaves like untriggered Mattermost integration3534 does not notify about pipeline events3535 notification enabled only for protected branches3536 behaves like triggered Mattermost integration3537 notifies about pipeline events3538 when the response is not successful3539 logs an error3540 notification enabled only for default and protected branches3541 behaves like triggered Mattermost integration3542 notifies about pipeline events3543 when the response is not successful3544 logs an error3545 notification enabled for all branches3546 behaves like triggered Mattermost integration3547 notifies about pipeline events3548 when the response is not successful3549 logs an error3550 on a neither protected nor default branch3551 notification enabled only for default branch3552 behaves like untriggered Mattermost integration3553 does not notify about pipeline events3554 notification enabled only for protected branches3555 behaves like untriggered Mattermost integration3556 does not notify about pipeline events3557 notification enabled only for default and protected branches3558 behaves like untriggered Mattermost integration3559 does not notify about pipeline events3560 notification enabled for all branches3561 behaves like triggered Mattermost integration3562 notifies about pipeline events3563 when the response is not successful3564 logs an error3565 Deployment events3566 behaves like triggered Mattermost integration3567 notifies about deployment events3568 when the response is not successful3569 logs an error3570 on a protected branch3571 notification enabled only for default branch3572 behaves like untriggered Mattermost integration3573 does not notify about pipeline events3574 notification enabled only for protected branches3575 behaves like triggered Mattermost integration3576 notifies about pipeline events3577 when the response is not successful3578 logs an error3579 notification enabled only for default and protected branches3580 behaves like triggered Mattermost integration3581 notifies about pipeline events3582 when the response is not successful3583 logs an error3584 notification enabled for all branches3585 behaves like triggered Mattermost integration3586 notifies about pipeline events3587 when the response is not successful3588 logs an error3589Gitlab::Ci::Status::Build::Factory3590 when build is successful3591 matches correct core status3592 matches correct extended statuses3593 fabricates a retryable build status3594 fabricates status with correct details3595 when build is erased3596 matches correct core status3597 matches correct extended statuses3598 fabricates a retryable build status3599 fabricates status with correct details3600 when build is failed3601 when build is not allowed to fail3602 matches correct core status3603 matches correct extended statuses3604 fabricates a failed build status3605 fabricates status with correct details3606 when build is allowed to fail3607 matches correct core status3608 matches correct extended statuses3609 fabricates a failed but allowed build status3610 fabricates status with correct details3611 when build has unmet prerequisites3612 matches correct core status3613 matches correct extended statuses3614 fabricates a failed with unmet prerequisites build status3615 fabricates status with correct details3616 when build is a canceled3617 matches correct core status3618 matches correct extended statuses3619 fabricates a retryable build status3620 fabricates status with correct details3621 when build is running3622 matches correct core status3623 matches correct extended statuses3624 fabricates a canceable build status3625 fabricates status with correct details3626 when build is pending3627 matches correct core status3628 matches correct extended statuses3629 fabricates a cancelable build status3630 fabricates status with correct details3631 when build is skipped3632 matches correct core status3633 matches correct extended statuses3634 fabricates a skipped build status3635 fabricates status with correct details3636 when build is a manual action3637 when build is a play action3638 matches correct core status3639 matches correct extended statuses3640 fabricates action detailed status3641 fabricates status with correct details3642 when user has ability to play action3643 fabricates status that has action3644 when user does not have ability to play action3645 fabricates status that has no action3646 when build is an environment stop action3647 matches correct core status3648 matches correct extended statuses3649 fabricates action detailed status3650 when user is not allowed to execute manual action3651 fabricates status with correct details3652 when build is a delayed action3653 matches correct core status3654 matches correct extended statuses3655 fabricates action detailed status3656 fabricates status with correct details3657 when user has ability to play action3658 fabricates status that has action3659 when user does not have ability to play action3660 fabricates status that has no action3661Admin::ProjectsFinder3662 #execute3663 without a user3664 is expected to contain exactly #<Project id:661 namespace586/D>>, #<Project id:660 group67/C>>, #<Project id:659 group67/B>>, and #<Project id:658 namespace583/A>>3665 with a user3666 is expected to contain exactly #<Project id:665 namespace590/D>>, #<Project id:664 group68/C>>, #<Project id:663 group68/B>>, and #<Project id:662 namespace587/A>>3667 with pending delete project3668 is expected not to include #<Project id:670 namespace595/project582>>3669 filter by namespace_id3670 is expected to eq [#<Project id:675 namespace600/project583>>]3671 filter by visibility_level3672 private3673 is expected to contain exactly #<Project id:679 namespace604/D>> and #<Project id:676 namespace601/A>>3674 internal3675 is expected to eq [#<Project id:681 group72/B>>]3676 public3677 is expected to eq [#<Project id:686 group73/C>>]3678 filter by push3679 is expected to eq [#<Project id:692 namespace617/project584>>]3680 filter by abandoned3681 is expected to eq [#<Project id:693 namespace618/A>>]3682 filter by last_repository_check_failed3683 is expected to eq [#<Project id:697 namespace622/A>>]3684 filter by archived3685 archived=false3686 is expected to contain exactly #<Project id:704 namespace629/D>>, #<Project id:703 group77/C>>, #<Project id:702 group77/B>>, and #<Project id:701 namespace626/A>>3687 archived=true3688 is expected to contain exactly #<Project id:710 namespace635/E>>, #<Project id:709 namespace634/D>>, #<Project id:708 group78/C>>, #<Project id:707 group78/B>>, and #<Project id:706 namespace631/A>>3689 archived=only3690 is expected to eq [#<Project id:715 namespace640/E>>]3691 filter by personal3692 is expected to eq [#<Project id:720 user348/project585>>]3693 filter by name3694 is expected to contain exactly #<Project id:723 group81/C>>3695 sorting3696 is expected to eq [#<Project id:725 namespace649/A>>, #<Project id:726 group82/B>>, #<Project id:727 group82/C>>, #<Project id:728 namespace652/D>>]3697Projects::Security::ConfigurationPresenter3698 #to_html_data_attribute3699 when latest default branch pipeline`s source is not auto devops3700 includes links to auto devops and secure product docs3701 returns info that Auto DevOps is not enabled3702 includes a link to the latest pipeline3703 has stubs for autofix3704 includes feature information3705 includes a link to the latest pipeline3706 includes the path to gitlab_ci history3707 while retrieving information about user's ability to enable auto_devops3708 is_admin: true, archived: true, feature_available: true, result: false3709 includes can_enable_auto_devops3710 is_admin: false, archived: true, feature_available: true, result: false3711 includes can_enable_auto_devops3712 is_admin: true, archived: false, feature_available: true, result: true3713 includes can_enable_auto_devops3714 is_admin: false, archived: false, feature_available: true, result: false3715 includes can_enable_auto_devops3716 is_admin: true, archived: true, feature_available: false, result: false3717 includes can_enable_auto_devops3718 is_admin: false, archived: true, feature_available: false, result: false3719 includes can_enable_auto_devops3720 is_admin: true, archived: false, feature_available: false, result: false3721 includes can_enable_auto_devops3722 is_admin: false, archived: false, feature_available: false, result: false3723 includes can_enable_auto_devops3724 when checking features configured status3725 type: :dast, configured: true3726 returns proper configuration status3727 type: :dast_profiles, configured: true3728 returns proper configuration status3729 type: :sast, configured: true3730 returns proper configuration status3731 type: :sast_iac, configured: false3732 returns proper configuration status3733 type: :container_scanning, configured: false3734 returns proper configuration status3735 type: :cluster_image_scanning, configured: false3736 returns proper configuration status3737 type: :dependency_scanning, configured: false3738 returns proper configuration status3739 type: :license_scanning, configured: true3740 returns proper configuration status3741 type: :secret_detection, configured: false3742 returns proper configuration status3743 type: :coverage_fuzzing, configured: false3744 returns proper configuration status3745 type: :api_fuzzing, configured: false3746 returns proper configuration status3747 type: :corpus_management, configured: true3748 returns proper configuration status3749 when the job has more than one report3750 type: :dast, configured: false3751 properly detects security jobs3752 type: :dast_profiles, configured: true3753 properly detects security jobs3754 type: :sast, configured: true3755 properly detects security jobs3756 type: :sast_iac, configured: false3757 properly detects security jobs3758 type: :container_scanning, configured: false3759 properly detects security jobs3760 type: :cluster_image_scanning, configured: false3761 properly detects security jobs3762 type: :dependency_scanning, configured: false3763 properly detects security jobs3764 type: :license_scanning, configured: true3765 properly detects security jobs3766 type: :secret_detection, configured: false3767 properly detects security jobs3768 type: :coverage_fuzzing, configured: false3769 properly detects security jobs3770 type: :api_fuzzing, configured: false3771 properly detects security jobs3772 type: :corpus_management, configured: true3773 properly detects security jobs3774 while retrieving information about gitlab ci file3775 when a .gitlab-ci.yml file exists3776 expects gitlab_ci_present to be true3777 when a .gitlab-ci.yml file does not exist3778 expects gitlab_ci_present to be false if the file is not present3779 when the project is empty3780 includes a blank gitlab_ci history path3781 when the project has no default branch set3782 includes the path to gitlab_ci history3783 when the latest default branch pipeline's source is auto devops3784 reports that auto devops is enabled3785 when gathering feature data3786 type: :dast, configured: true3787 reports that all scanners are configured for which latest pipeline has builds3788 type: :dast_profiles, configured: true3789 reports that all scanners are configured for which latest pipeline has builds3790 type: :sast, configured: true3791 reports that all scanners are configured for which latest pipeline has builds3792 type: :sast_iac, configured: false3793 reports that all scanners are configured for which latest pipeline has builds3794 type: :container_scanning, configured: false3795 reports that all scanners are configured for which latest pipeline has builds3796 type: :cluster_image_scanning, configured: false3797 reports that all scanners are configured for which latest pipeline has builds3798 type: :dependency_scanning, configured: false3799 reports that all scanners are configured for which latest pipeline has builds3800 type: :license_scanning, configured: false3801 reports that all scanners are configured for which latest pipeline has builds3802 type: :secret_detection, configured: true3803 reports that all scanners are configured for which latest pipeline has builds3804 type: :coverage_fuzzing, configured: false3805 reports that all scanners are configured for which latest pipeline has builds3806 type: :api_fuzzing, configured: false3807 reports that all scanners are configured for which latest pipeline has builds3808 type: :corpus_management, configured: true3809 reports that all scanners are configured for which latest pipeline has builds3810 when the project has no default branch pipeline3811 reports that auto devops is disabled3812 includes a link to CI pipeline docs3813 when gathering feature data3814 type: :dast, configured: false3815 reports all security jobs as unconfigured with exception of "fake" jobs3816 type: :dast_profiles, configured: true3817 reports all security jobs as unconfigured with exception of "fake" jobs3818 type: :sast, configured: false3819 reports all security jobs as unconfigured with exception of "fake" jobs3820 type: :sast_iac, configured: false3821 reports all security jobs as unconfigured with exception of "fake" jobs3822 type: :container_scanning, configured: false3823 reports all security jobs as unconfigured with exception of "fake" jobs3824 type: :cluster_image_scanning, configured: false3825 reports all security jobs as unconfigured with exception of "fake" jobs3826 type: :dependency_scanning, configured: false3827 reports all security jobs as unconfigured with exception of "fake" jobs3828 type: :license_scanning, configured: false3829 reports all security jobs as unconfigured with exception of "fake" jobs3830 type: :secret_detection, configured: false3831 reports all security jobs as unconfigured with exception of "fake" jobs3832 type: :coverage_fuzzing, configured: false3833 reports all security jobs as unconfigured with exception of "fake" jobs3834 type: :api_fuzzing, configured: false3835 reports all security jobs as unconfigured with exception of "fake" jobs3836 type: :corpus_management, configured: true3837 reports all security jobs as unconfigured with exception of "fake" jobs3838Files::MultiService3839 #execute3840 with a valid action3841 returns a hash with the :success status3842 with an invalid action3843 returns a hash with the :error status3844 Updating files3845 when the file has been previously updated3846 rejects the commit3847 when file not changed, but later commit id is used3848 accepts the commit3849 when the file have not been modified3850 accepts the commit3851 changing execute_filemode of a file3852 accepts the commit3853 updates the execute_filemode of the file3854 when the file doesn't exists3855 rejects the commit3856 when moving a file3857 when original file has been updated3858 rejects the commit3859 when original file has not been updated3860 moves the file3861 when content is nil3862 moves the existing content untouched3863 when content is an empty string3864 moves the file and empties it3865 when creating a file matching an LFS filter3866 creates an LFS pointer3867 creates an LfsObject with the file's content3868 links the LfsObject to the project3869 with base64 encoded content3870 creates an LFS pointer3871 creates an LfsObject with the file's content3872 when file status validation is skipped3873 does not check the last commit3874 creates the file3875 when force is set to true and branch already exists3876 is still a success3877MergeRequests::CleanupRefsService3878 .schedule3879 creates a merge request cleanup schedule3880 #execute3881 when merge request is closed3882 when closed 14 days ago3883 behaves like service that cleans up merge request refs3884 creates keep around ref and deletes merge request refs3885 when merge request has no head ref3886 does not fail3887 when merge request has merge ref3888 caches merge ref sha and deletes merge ref3889 when merge ref sha cannot be cached3890 behaves like service that does not clean up merge request refs3891 does not delete merge request refs3892 when keep around ref cannot be created3893 behaves like service that does not clean up merge request refs3894 does not delete merge request refs3895 when a git error is raised3896 Gitlab::Git::Repository::GitError3897 behaves like service that does not clean up merge request refs3898 does not delete merge request refs3899 Gitlab::Git::CommandError3900 behaves like service that does not clean up merge request refs3901 does not delete merge request refs3902 when cleanup schedule fails to update3903 creates keep around ref and deletes merge request refs3904 when merge request is not scheduled to be cleaned up yet3905 behaves like service that does not clean up merge request refs3906 does not delete merge request refs3907 when repository no longer exists3908 does not fail and still mark schedule as complete3909 when closed later than 14 days ago3910 behaves like service that does not clean up merge request refs3911 does not delete merge request refs3912 when merge request is merged3913 when merged 14 days ago3914 behaves like service that cleans up merge request refs3915 creates keep around ref and deletes merge request refs3916 when merge request has no head ref3917 does not fail3918 when merge request has merge ref3919 caches merge ref sha and deletes merge ref3920 when merge ref sha cannot be cached3921 behaves like service that does not clean up merge request refs3922 does not delete merge request refs3923 when keep around ref cannot be created3924 behaves like service that does not clean up merge request refs3925 does not delete merge request refs3926 when a git error is raised3927 Gitlab::Git::Repository::GitError3928 behaves like service that does not clean up merge request refs3929 does not delete merge request refs3930 Gitlab::Git::CommandError3931 behaves like service that does not clean up merge request refs3932 does not delete merge request refs3933 when cleanup schedule fails to update3934 creates keep around ref and deletes merge request refs3935 when merge request is not scheduled to be cleaned up yet3936 behaves like service that does not clean up merge request refs3937 does not delete merge request refs3938 when repository no longer exists3939 does not fail and still mark schedule as complete3940 when merged later than 14 days ago3941 behaves like service that does not clean up merge request refs3942 does not delete merge request refs3943 when merge request is not closed nor merged3944 behaves like service that does not clean up merge request refs3945 does not delete merge request refs3946Discussion3947 .lazy_find3948 batches requests3949 .build3950 returns a discussion of the right type3951 .build_collection3952 returns an array of discussions of the right type3953 authorization3954 delegates to the first note3955 #cache_key3956 returns the cache key3957 when discussion is resolved3958 returns the cache key with resolved at3959 #to_global_id3960 with a single DiffNote discussion3961 returns GID on Discussion class3962 with multiple DiffNotes discussion3963 returns GID on Discussion class3964 with discussions on issue3965 with a single Note3966 returns GID on Discussion class3967 with multiple Notes3968 returns GID on Discussion class3969 with system notes3970 returns GID on Discussion class3971Submodules::UpdateService3972 #execute3973 when the user is not authorized3974 behaves like returns error result3975 is expected to eq "You are not allowed to push into this branch"3976 when the user is authorized3977 updates the submodule reference3978 when the branch is protected3979 behaves like returns error result3980 is expected to eq "You are not allowed to push into this branch"3981 validations3982 when submodule3983 is empty3984 behaves like returns error result3985 is expected to eq "Invalid parameters"3986 is not present3987 behaves like returns error result3988 is expected to eq "Invalid parameters"3989 is invalid3990 behaves like returns error result3991 is expected to eq "Invalid submodule path"3992 does not exist3993 behaves like returns error result3994 is expected to eq "Invalid submodule path"3995 has traversal path3996 behaves like returns error result3997 is expected to eq "Invalid submodule path"3998 commit_sha3999 is empty4000 behaves like returns error result4001 is expected to eq "Invalid parameters"4002 is not present4003 behaves like returns error result4004 is expected to eq "Invalid parameters"4005 is invalid4006 behaves like returns error result4007 is expected to eq "Invalid parameters"4008 is the same as the current ref4009 behaves like returns error result4010 is expected to eq "The submodule six is already at 409f37c4f05865e4fb208c771485f211a22c4c2d"4011 branch_name4012 is empty4013 behaves like returns error result4014 is expected to eq "You can only create or edit files when you are on a branch"4015 is not present4016 behaves like returns error result4017 is expected to eq "Invalid parameters"4018 does not exist4019 behaves like returns error result4020 is expected to eq "You can only create or edit files when you are on a branch"4021 when commit message is empty4022 a default commit message is set4023 when there is an unexpected error4024 behaves like returns error result4025 is expected to eq "error message"4026 when submodule is inside a directory4027 updates the submodule reference4028 when repository is empty4029 behaves like returns error result4030 is expected to eq "The repository is empty"4031TrendingProject4032 .refresh!4033 populates the trending projects table4034 removes existing rows before populating the table4035 stores the project IDs for every trending project4036 does not store projects that fall out of the trending time range4037 stores only public projects4038Issues::ImportCsvService4039 #execute4040 behaves like correctly handles invalid files4041 when given file with unsupported extension4042 behaves like invalid file4043 returns invalid file error4044 when given empty file4045 behaves like invalid file4046 returns invalid file error4047 when given file without headers4048 behaves like invalid file4049 returns invalid file error4050 behaves like importer with email notification4051 notifies user of import result4052 behaves like an issuable importer4053 records the import attempt if resource is an issue4054 with a file generated by Gitlab CSV export4055 imports the CSV without errors4056 correctly sets the issuable attributes4057 behaves like importer with email notification4058 notifies user of import result4059 behaves like an issuable importer4060 records the import attempt if resource is an issue4061 comma delimited file4062 imports CSV without errors4063 correctly sets the issuable attributes4064 behaves like importer with email notification4065 notifies user of import result4066 behaves like an issuable importer4067 records the import attempt if resource is an issue4068 tab delimited file with error row4069 imports CSV with some error rows4070 correctly sets the issuable attributes4071 behaves like importer with email notification4072 notifies user of import result4073 behaves like an issuable importer4074 records the import attempt if resource is an issue4075 semicolon delimited file with CRLF4076 imports CSV with a blank row4077 correctly sets the issuable attributes4078 behaves like importer with email notification4079 notifies user of import result4080 behaves like an issuable importer4081 records the import attempt if resource is an issue4082 #execute4083 sets all issueable attributes and executes quick actions4084WebHookService4085 #initialize4086 when SystemHook4087 when local requests are allowed4088 is expected to be truthy4089 when local requests are not allowed4090 is expected to be falsey4091 when ProjectHook4092 when local requests are allowed4093 is expected to be truthy4094 when local requests are not allowed4095 is expected to be falsey4096 #disabled?4097 forced: false, executable: true, disabled: false4098 is expected to have attributes {:disabled? => false}4099 forced: false, executable: false, disabled: true4100 is expected to have attributes {:disabled? => true}4101 forced: true, executable: true, disabled: false4102 is expected to have attributes {:disabled? => false}4103 forced: true, executable: false, disabled: false4104 is expected to have attributes {:disabled? => false}4105 #execute4106 POSTs the data as JSON and returns expected headers4107 catches exceptions4108 does not execute disabled hooks4109 executes and registers the hook with the recursion detection4110 blocks and logs if a recursive web hook is detected4111 blocks and logs if the recursion count limit would be exceeded4112 handles exceptions4113 handles 200 status code4114 handles 2xx status codes4115 when there is an interpolation error4116 logs the error4117 when there are URL variables4118 POSTs to the interpolated URL, and logs the hook.url4119 there is userinfo4120 POSTs to the interpolated URL, and logs the hook.url4121 when token is defined4122 POSTs to the webhook URL4123 when the data is a Gitlab::DataBuilder::Pipeline4124 can log the request payload4125 when auth credentials are present4126 uses the credentials4127 when auth credentials are partial present4128 uses the credentials anyways4129 when url is not encoded4130 handles exceptions4131 when request body size is too big4132 does not perform the request4133 execution logging4134 with success4135 queues LogExecutionWorker correctly4136 queues LogExecutionWorker correctly, resulting in a log record (integration-style test)4137 does not log in the service itself4138 when forced4139 logs execution inline4140 with bad request4141 queues LogExecutionWorker correctly4142 with exception4143 queues LogExecutionWorker correctly4144 with unsafe response body4145 queues LogExecutionWorker with sanitized response_body4146 with oversize response body4147 queues LogExecutionWorker with stripped response_body4148 with massive amount of headers4149 queues LogExecutionWorker with limited amount of headers4150 with oversize header4151 queues LogExecutionWorker with stripped header value4152 with log data exceeding Sidekiq limit4153 queues LogExecutionWorker with request_data overrided in the second attempt4154 new log data still exceeds limit4155 raises an exception4156 #async_execute4157 when rate limiting is not configured4158 queues a worker without tracking the call4159 when rate limiting is configured4160 queues a worker and tracks the call4161 when the hook is throttled (via mock)4162 does not queue a worker and logs an error4163 when the hook is throttled (via Redis)4164 stops queueing workers and logs errors4165 still queues workers for other hooks4166 recursion detection4167 does not queue a worker and logs an error if the call chain limit would be exceeded4168 does not queue a worker and logs an error if a recursive call chain is detected4169 when hook has custom context attributes4170 includes the attributes in the worker context4171Gitlab::Database::Migrations::Runner4172 main database4173 creates the results dir when one does not exist4174 .up4175 result directory4176 uses the /up subdirectory4177 migrations to run4178 is the list of pending migrations4179 running migrations4180 runs the unapplied migrations in regular/post order, then version order4181 writes a metadata file with the current schema version and database name4182 runs the unapplied migrations on the correct database4183 .down4184 writes a metadata file with the current schema version4185 result directory4186 is the /down subdirectory4187 migrations to run4188 is the list of migrations that are up and on this branch4189 running migrations4190 runs the applied migrations for the current branch in reverse order4191 .background_migrations4192 is a TestBackgroundRunner4193 is configured with a result dir of /background_migrations4194 .batched_background_migrations4195 is a TestBatchedBackgroundRunner4196 choosing the database to test against4197 chooses the provided database4198 throws an error with an invalid name4199 includes the database name in the result dir4200 legacy mode4201 does not include the database name in the path4202 .batched_migrations_last_id4203 matches the expected runner class4204 main database (legacy mode)4205 creates the results dir when one does not exist4206 .up4207 result directory4208 uses the /up subdirectory4209 migrations to run4210 is the list of pending migrations4211 running migrations4212 runs the unapplied migrations in regular/post order, then version order4213 writes a metadata file with the current schema version and database name4214 runs the unapplied migrations on the correct database4215 .down4216 writes a metadata file with the current schema version4217 result directory4218 is the /down subdirectory4219 migrations to run4220 is the list of migrations that are up and on this branch4221 running migrations4222 runs the applied migrations for the current branch in reverse order4223 .background_migrations4224 is a TestBackgroundRunner4225 is configured with a result dir of /background_migrations4226 .batched_background_migrations4227 is a TestBatchedBackgroundRunner4228 choosing the database to test against4229 chooses the provided database4230 throws an error with an invalid name4231 includes the database name in the result dir4232 legacy mode4233 does not include the database name in the path4234 .batched_migrations_last_id4235 matches the expected runner class4236 ci database4237 creates the results dir when one does not exist (PENDING: Skipping because ci is shared or doesn't not exist)4238 .up4239 result directory4240 uses the /up subdirectory (PENDING: Skipping because ci is shared or doesn't not exist)4241 migrations to run4242 is the list of pending migrations (PENDING: Skipping because ci is shared or doesn't not exist)4243 running migrations4244 runs the unapplied migrations in regular/post order, then version order (PENDING: Skipping because ci is shared or doesn't not exist)4245 writes a metadata file with the current schema version and database name (PENDING: Skipping because ci is shared or doesn't not exist)4246 runs the unapplied migrations on the correct database (PENDING: Skipping because ci is shared or doesn't not exist)4247 .down4248 writes a metadata file with the current schema version (PENDING: Skipping because ci is shared or doesn't not exist)4249 result directory4250 is the /down subdirectory (PENDING: Skipping because ci is shared or doesn't not exist)4251 migrations to run4252 is the list of migrations that are up and on this branch (PENDING: Skipping because ci is shared or doesn't not exist)4253 running migrations4254 runs the applied migrations for the current branch in reverse order (PENDING: Skipping because ci is shared or doesn't not exist)4255 .background_migrations4256 is a TestBackgroundRunner (PENDING: Skipping because ci is shared or doesn't not exist)4257 is configured with a result dir of /background_migrations (PENDING: Skipping because ci is shared or doesn't not exist)4258 .batched_background_migrations4259 is a TestBatchedBackgroundRunner (PENDING: Skipping because ci is shared or doesn't not exist)4260 choosing the database to test against4261 chooses the provided database (PENDING: Skipping because ci is shared or doesn't not exist)4262 throws an error with an invalid name (PENDING: Skipping because ci is shared or doesn't not exist)4263 includes the database name in the result dir (PENDING: Skipping because ci is shared or doesn't not exist)4264 legacy mode4265 does not include the database name in the path (PENDING: Skipping because ci is shared or doesn't not exist)4266 .batched_migrations_last_id4267 matches the expected runner class (PENDING: Skipping because ci is shared or doesn't not exist)4268Lfs::FileTransformer4269 #new_file4270 with lfs disabled4271 skips gitattributes check4272 returns untransformed content4273 returns untransformed encoding4274 with lfs enabled4275 reuses cached gitattributes4276 creates an LfsObject with the file's content4277 returns an LFS pointer4278 returns LFS pointer encoding as text4279 links LfsObjects to project4280 saves the repository_type to LfsObjectsProject4281 when an actual file is passed4282 creates an LfsObject with the file's content4283 when repository is a design repository4284 creates an LfsObject with the file's content4285 saves the correct repository_type to LfsObjectsProject4286 when content type detection enabled4287 when mime type detected4288 creates a file with custom content type4289 when mime type not detected4290 creates a file with default content type4291 when doesn't use LFS4292 doesn't create LFS pointers4293 when LfsObject already exists4294 links LfsObjects to project4295 when the LfsObject is already linked to project4296 and the service is called again with the same repository type4297 is expected not to change `project.lfs_objects.count`4298 does not create a new LfsObjectsProject record4299 and the service is called again with a different repository type4300 is expected not to change `project.lfs_objects.count`4301 creates a new LfsObjectsProject record4302 sets the correct repository_type on the new LfsObjectsProject record4303LabelsHelper4304 #show_label_issuables_link?4305 with a project label4306 when asking for an issue link4307 behaves like a valid response to show_label_issuables_link?4308 when asking for a issues link4309 when issues are enabled for the project4310 is expected to equal true4311 when issues are disabled for the project4312 is expected to equal false4313 when asking for a merge requests link4314 behaves like a valid response to show_label_issuables_link?4315 when asking for a merge_requests link4316 when merge_requests are enabled for the project4317 is expected to equal true4318 when merge_requests are disabled for the project4319 is expected to equal false4320 with a group label4321 when asking for an issue link4322 behaves like a valid response to show_label_issuables_link?4323 when asking for a issues link4324 when issues are enabled for the project4325 is expected to equal true4326 when issues are disabled for the project4327 is expected to equal true4328 when asking for a merge requests link4329 behaves like a valid response to show_label_issuables_link?4330 when asking for a merge_requests link4331 when merge_requests are enabled for the project4332 is expected to equal true4333 when merge_requests are disabled for the project4334 is expected to equal true4335 link_to_label4336 without subject4337 uses the label's project4338 with a project as subject4339 links to project issues page4340 with a group as subject4341 links to group issues page4342 with a type argument4343 set to issue4344 links to correct page4345 set to issue4346 links to correct page4347 set to merge_request4348 links to correct page4349 set to merge_request4350 links to correct page4351 with a tooltip argument4352 set to false4353 does not include the has-tooltip class4354 with block4355 passes the block to link_to4356 without block4357 uses render_colored_label as the link content4358 render_label_text4359 html escapes the bg_color correctly4360 text_color_for_bg4361 uses light text on dark backgrounds4362 uses dark text on light backgrounds4363 supports RGB triplets4364 create_label_title4365 with a group as subject4366 returns "Create group label"4367 with a project as subject4368 returns "Create project label"4369 with no subject4370 returns "Create new label"4371 manage_labels_title4372 with a group as subject4373 returns "Manage group labels"4374 with a project as subject4375 returns "Manage project labels"4376 with no subject4377 returns "Manage labels"4378 view_labels_title4379 with a group as subject4380 returns "View group labels"4381 with a project as subject4382 returns "View project labels"4383 with no subject4384 returns "View labels"4385 labels_filter_path4386 links to the dashboard labels page4387 links to the group labels page4388 links to the project labels page4389 supports json format4390 presented_labels_sorted_by_title4391 sorts labels alphabetically4392 returns an array of label presenters4393 #label_status_tooltip4394 with a project label4395 is expected to eq "Subscribe at project level"4396 with a group label4397 is expected to eq "Subscribe at group level"4398 #label_tooltip_title4399 removes HTML4400 #show_labels_full_path?4401 within a project4402 returns truthy4403 within a subgroup4404 returns truthy4405 within a group4406 returns falsey4407 within the admin area4408 returns falsey4409 #wrap_label_html4410 does not include the color4411 #label_subscription_toggle_button_text4412 when the label is subscribed4413 is expected to eq "Unsubscribe"4414 when the label is not subscribed4415 is expected to eq "Subscribe"4416DiffHelper4417 diff_view4418 uses the view param over the cookie4419 returns the default value when the view param is invalid4420 returns a valid value when cookie is set4421 returns the default value when cookie is invalid4422 returns the default value when cookie is nil4423 diff_options4424 returns no collapse false4425 returns no collapse true if expanded4426 when action name is diff_for_path4427 returns expanded true4428 returns paths if param old path4429 returns paths if param new path4430 does not set max_patch_bytes_for_file_extension4431 when file_identifier include .ipynb4432 when large_ipynb_diffs is disabled4433 does not set max_patch_bytes_for_file_extension4434 when large_ipynb_diffs is enabled4435 sets max_patch_bytes_for_file_extension4436 #diff_line_content4437 when the line is empty4438 returns a non breaking space4439 returns an HTML-safe string4440 when the line is not empty4441 when the line starts with +, -, or a space4442 strips the first character4443 when the line is HTML-safe4444 returns an HTML-safe string4445 when the line is not HTML-safe4446 returns a non-HTML-safe string4447 when the line does not start with a +, -, or a space4448 returns the string4449 when the line is HTML-safe4450 returns an HTML-safe string4451 when the line is not HTML-safe4452 returns a non-HTML-safe string4453 #diff_link_number4454 line_type: "new", match: "new", line_number: 1, expected_return_value: " "4455 returns the expected value4456 line_type: "new", match: "old", line_number: 2, expected_return_value: 24457 returns the expected value4458 line_type: "old", match: "new", line_number: 3, expected_return_value: 34459 returns the expected value4460 line_type: "old", match: "old", line_number: 4, expected_return_value: " "4461 returns the expected value4462 line_type: "new-nonewline", match: "new", line_number: 5, expected_return_value: 54463 returns the expected value4464 line_type: "new-nonewline", match: "old", line_number: 6, expected_return_value: 64465 returns the expected value4466 line_type: "old-nonewline", match: "new", line_number: 7, expected_return_value: 74467 returns the expected value4468 line_type: "old-nonewline", match: "old", line_number: 8, expected_return_value: 84469 returns the expected value4470 line_type: "match", match: "new", line_number: 9, expected_return_value: 94471 returns the expected value4472 line_type: "match", match: "old", line_number: 10, expected_return_value: 104473 returns the expected value4474 #mark_inline_diffs4475 returns strings with marked inline diffs4476 when given HTML4477 sanitizes it4478 sanitizes the entire line, not just the changes4479 #parallel_diff_discussions4480 does not put comments on nonewline lines4481 puts comments on added lines4482 puts comments on unchanged lines4483 #diff_match_line4484 generates foldable top match line for inline view with empty text by default4485 allows to define text and bottom option4486 generates match line for parallel view4487 allows to generate only left match line for parallel view4488 allows to generate only right match line for parallel view4489 #diff_nomappinginraw_line4490 generates only single line num4491 generates only both line nums4492 line_type: "old-nomappinginraw", added_class: ".old"4493 appends the correct class4494 line_type: "new-nomappinginraw", added_class: ".new"4495 appends the correct class4496 line_type: "unchanged-nomappinginraw", added_class: ""4497 appends the correct class4498 #render_overflow_warning?4499 when no limits are hit4500 returns false and does not log any overflow events4501 overflow_method: :overflow_max_bytes?, event_name: :diffs_overflow_max_bytes_limits4502 returns false and only logs the correct collection overflow event4503 overflow_method: :overflow_max_files?, event_name: :diffs_overflow_max_files_limits4504 returns false and only logs the correct collection overflow event4505 overflow_method: :overflow_max_lines?, event_name: :diffs_overflow_max_lines_limits4506 returns false and only logs the correct collection overflow event4507 overflow_method: :collapsed_safe_bytes?, event_name: :diffs_overflow_collapsed_bytes_limits4508 returns false and only logs the correct collection overflow event4509 overflow_method: :collapsed_safe_files?, event_name: :diffs_overflow_collapsed_files_limits4510 returns false and only logs the correct collection overflow event4511 overflow_method: :collapsed_safe_lines?, event_name: :diffs_overflow_collapsed_lines_limits4512 returns false and only logs the correct collection overflow event4513 when the file collection has an overflow4514 returns true and only logs all the correct collection overflow event4515 when two individual files are too big4516 returns false and only logs single file overflow events4517 #diff_file_html_data4518 returns data for project files4519 #collapsed_diff_url4520 returns a valid URL4521 #params_with_whitespace4522 filters with safe_params4523 #render_fork_suggestion4524 user signed in4525 renders the partial4526 guest4527 is expected to be nil4528 #conflicts4529 returns list of conflicts indexed by path4530 when merge request can be merged4531 returns nil4532 when source branch does not exist4533 returns nil4534 when target branch does not exist4535 returns nil4536 when conflicts cannot be resolved in UI4537 returns nil4538 when allow_tree_conflicts is true4539 returns list of conflicts4540 when Gitlab::Git::Conflict::Resolver::ConflictSideMissing exception is raised4541 returns an empty hash4542 #show_only_context_commits?4543 when only_context_commits param is set to true4544 is expected to be truthy4545 when merge request has commits4546 is expected to be truthy4547 when only_context_commits param is set to false4548 is expected to be truthy4549 when merge request has commits4550 is expected to be falsey4551Label4552 modules4553 is expected to includes the Referable module4554 is expected to includes the Subscribable module4555 associations4556 is expected to have many issues through label_links source => target4557 is expected to have many label_links dependent => destroy4558 is expected to have many lists dependent => destroy4559 is expected to have many priorities class_name => LabelPriority4560 validation4561 is expected to validate that :title is case-sensitively unique within the scope of :group_id and :project_id4562 validates color code4563 validates title4564 scopes4565 .on_board4566 returns only the board labels4567 #color4568 strips color4569 uses default color if color is missing4570 #text_color4571 uses default color if color is missing4572 #title4573 sanitizes title4574 strips title4575 #description4576 sanitizes description4577 accepts an empty string4578 priorization4579 #prioritize!4580 when label is not prioritized4581 creates a label priority4582 sets label priority4583 when label is prioritized4584 does not create a label priority4585 updates label priority4586 #unprioritize!4587 removes label priority4588 #priority4589 when label is not prioritized4590 returns nil4591 when label is prioritized4592 returns label priority4593 .search4594 returns labels with a partially matching title4595 returns labels with a partially matching description4596 returns nothing4597 .subscribed_by4598 returns subscribed labels4599 returns nothing4600 .top_labels_by_target4601 returns distinct labels, ordered by usage in the given target relation4602 excludes labels that are not assigned to any records in the given target relation4603 .optionally_subscribed_by4604 returns subscribed labels4605 returns all labels if user_id is nil4606 #templates4607 with invalid template labels4608 returns only valid template labels4609Releases::UpdateService4610 #execute4611 successfully updates an existing release4612 executes hooks4613 when the tag does not exists4614 behaves like a failed update4615 raises an error4616 when the release does not exist4617 behaves like a failed update4618 raises an error4619 when a milestone is passed in4620 a different milestone4621 behaves like updates milestones4622 updates the related milestone accordingly4623 an identical milestone4624 raises an error4625 by ids4626 behaves like updates milestones4627 updates the related milestone accordingly4628 when an 'empty' milestone is passed in4629 by title4630 behaves like removes milestones4631 removes the old milestone and does not associate any new milestone4632 by id4633 behaves like removes milestones4634 removes the old milestone and does not associate any new milestone4635 when multiple new milestones are passed in4636 by title4637 behaves like updates multiple milestones4638 removes the old milestone and update the release with the new ones4639 by id4640 behaves like updates multiple milestones4641 removes the old milestone and update the release with the new ones4642Gitlab::Json4643 .parse4644 is aliased4645 legacy_mode is disabled by default4646 parses an object4647 parses an array4648 parses a string4649 parses a true bool4650 parses a false bool4651 legacy_mode is enabled4652 parses an object4653 parses an array4654 raises an error on a string4655 raises an error on a true bool4656 raises an error on a false bool4657 feature flag is disabled4658 parses an object4659 parses an array4660 parses a string4661 parses a true bool4662 parses a false bool4663 .parse!4664 legacy_mode is disabled by default4665 parses an object4666 parses an array4667 parses a string4668 parses a true bool4669 parses a false bool4670 legacy_mode is enabled4671 parses an object4672 parses an array4673 raises an error on a string4674 raises an error on a true bool4675 raises an error on a false bool4676 feature flag is disabled4677 parses an object4678 parses an array4679 parses a string4680 parses a true bool4681 parses a false bool4682 .dump4683 dumps an object4684 dumps an array4685 dumps a string4686 dumps a true bool4687 dumps a false bool4688 .generate4689 is aliased4690 generates JSON4691 allows you to customise the output4692 .pretty_generate4693 generates pretty JSON4694 allows you to customise the output4695 the feature table is missing4696 skips legacy mode handling4697 the database is missing4698 still parses json4699 still generates json4700 Gitlab::Json::GrapeFormatter4701 generates JSON4702 uses Gitlab::Json4703 precompiled JSON4704 renders the string directly4705 calls #to_s on the object4706 doesn't run the JSON formatter4707 Gitlab::Json::PrecompiledJson4708 #to_s4709 obj is a string4710 returns a string4711 obj is an array4712 returns a string4713 obj is an array of un-stringables4714 raises an error4715 obj is something else4716 raises an error4717 Gitlab::Json::LimitedEncoder4718 when object size is acceptable4719 returns json string4720 when object is too big4721 raises LimitExceeded error4722 when object contains ASCII-8BIT encoding4723 does not raise encoding error4724 Gitlab::Json::RailsEncoder4725 is used by ActiveSupport::JSON4726 is used by .to_json calls4727 is consistent with the original JSON implementation4728 behaves the same when processing invalid unicode data4729Banzai::ReferenceParser::MergeRequestParser4730 #nodes_visible_to_user4731 when the link has a data-issue attribute4732 behaves like referenced feature visibility4733 when feature is disabled4734 does not create reference4735 when feature is enabled only for team members4736 does not create reference for non member4737 creates reference for member4738 when feature is enabled4739 creates reference4740 #referenced_by4741 when the link has a data-merge-request attribute4742 using an existing merge request ID4743 returns an Array of merge requests4744 using a non-existing merge request ID4745 returns an empty Array4746 when checking multiple merge requests on another project4747 behaves like no N+1 queries4748 avoids N+1 queries in #records_for_nodes4749 behaves like no project N+1 queries4750 avoids N+1 queries in #nodes_visible_to_user4751 #can_read_reference?4752 is expected to be truthy4753 when merge request belongs to the private project4754 prevents user from reading merge request references4755 when user has access to the project4756 is expected to be truthy4757 with memoization4758 when project is the same4759 calls #can? only once4760 when merge requests belong to different projects4761 calls #can? for each project4762Projects::ImportExport::CreateRelationExportsWorker4763 # order random4764 creates a export_job and sets the status to `started`4765 creates relation export records and enqueues a worker for each relation to be exported4766 enqueues a WaitRelationExportsWorker4767 behaves like an idempotent worker4768 is labeled as idempotent4769 performs multiple times sequentially without raising an exception4770 when job is re-enqueued after an interuption and same JID is used4771 does not start the export process twice4772 behaves like an idempotent worker4773 is labeled as idempotent4774 performs multiple times sequentially without raising an exception4775Gitlab::Ci::Config::Entry::Processable4776 validations4777 when entry config value is correct4778 #valid?4779 is valid4780 when config uses both "when:" and "rules:"4781 is valid4782 when job name is more than 2554783 shows a validation error4784 when job name is empty4785 reports error4786 when entry value is not correct4787 incorrect config value type4788 #errors4789 reports error about a config type4790 when config is empty4791 #valid4792 is invalid4793 when extends key is not a string4794 returns error about wrong value type4795 when resource_group key is not a string4796 returns error about wrong value type4797 when a variable has an invalid data attribute4798 reports error about variable4799 when only: is used with rules:4800 returns error about mixing only: with rules:4801 and only: is blank4802 is valid4803 and rules: is blank4804 is valid4805 when except: is used with rules:4806 returns error about mixing except: with rules:4807 and except: is blank4808 is valid4809 and rules: is blank4810 is valid4811 when only: and except: are both used with rules:4812 returns errors about mixing both only: and except: with rules:4813 when only: and except: as both blank4814 is valid4815 when rules: is blank4816 is valid4817 #relevant?4818 is a relevant entry4819 #compose!4820 with workflow rules4821 name: "uses default only", has_workflow_rules?: false, only: nil, rules: nil, result: {:refs=>["branches", "tags"]}4822 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesDefaultOnlyHasWorkflowRulesFalseOnlyNilRulesNilResultRefsBranchesTags4823 name: "uses user only", has_workflow_rules?: false, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4824 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesFalseOnlyBranchesRulesNilResultRefsBranches4825 name: "does not define only", has_workflow_rules?: false, only: nil, rules: [], result: nil4826 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesFalseOnlyNilRulesResultNil4827 name: "does not define only", has_workflow_rules?: true, only: nil, rules: nil, result: nil4828 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesNilResultNil4829 name: "uses user only", has_workflow_rules?: true, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4830 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesTrueOnlyBranchesRulesNilResultRefsBranches4831 name: "does not define only", has_workflow_rules?: true, only: nil, rules: [], result: nil4832 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesResultNil4833 when workflow rules is used4834 when rules are used4835 does not define only4836 when rules are not used and only is defined4837 keeps only entry4838 when workflow rules is not used4839 when rules are valid4840 when last rule contains only `when`4841 and its value is not `never`4842 raises a warning4843 and its value is `never`4844 behaves like has no warnings4845 does not raise the warning4846 when last rule does not contain only `when`4847 behaves like has no warnings4848 does not raise the warning4849 when rules are invalid4850 behaves like has no warnings4851 does not raise the warning4852 when workflow rules is used4853 when last rule contains only `when4854 behaves like has no warnings4855 does not raise the warning4856 with resource group4857 resource_group: "iOS", result: "iOS"4858 is expected to eq "iOS"4859 resource_group: "review/$CI_COMMIT_REF_NAME", result: "review/$CI_COMMIT_REF_NAME"4860 is expected to eq "review/$CI_COMMIT_REF_NAME"4861 resource_group: nil, result: nil4862 is expected to eq nil4863 with inheritance4864 of default:tags4865 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: nil, result: ["a", "b"]4866 is expected to eq ["a", "b"]4867 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: true, result: ["a", "b"]4868 is expected to eq ["a", "b"]4869 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: false, result: ["a", "b"]4870 is expected to eq ["a", "b"]4871 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: nil, result: ["a", "b"]4872 is expected to eq ["a", "b"]4873 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: true, result: ["a", "b"]4874 is expected to eq ["a", "b"]4875 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: false, result: ["a", "b"]4876 is expected to eq ["a", "b"]4877 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: nil, result: ["b", "c"]4878 is expected to eq ["b", "c"]4879 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: true, result: ["b", "c"]4880 is expected to eq ["b", "c"]4881 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: false, result: nil4882 is expected to eq nil4883 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: ["image"], result: nil4884 is expected to eq nil4885 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: ["tags"], result: ["b", "c"]4886 is expected to eq ["b", "c"]4887 when composed4888 #value4889 when entry is correct4890 returns correct value4891 when variables have "expand" data4892 returns correct value4893Projects::ImportExport::ExportService4894 #execute4895 saves the version4896 saves the avatar4897 saves the models4898 saves the uploads4899 saves the repo (PENDING: No reason given)4900 saves the wiki repo4901 saves the design repo4902 saves the lfs objects4903 saves the snippets4904 avoids N+1 when exporting project members4905 when all saver services succeed4906 logs a successful message4907 saves the project in the file system4908 calls the after export strategy4909 when the upload fails4910 notifies the user of an error4911 when after export strategy fails4912 removes the remaining exported data4913 notifies the user4914 notifies logger4915 when saving services fail4916 removes the remaining exported data4917 notifies the user4918 notifies logger4919 does not call the export strategy4920 when one of the savers fail unexpectedly4921 removes the remaining exported data4922 when user does not have admin_project permission4923 fails4924Projects::AfterImportWorker4925 #execute4926 performs housekeeping4927 with some refs in refs/pull/**/*4928 removes refs/pull/**/*4929 with a ref in refs/heads/tmp4930 does not remove refs/heads/tmp4931 with a ref in refs/tags/tmp4932 does not remove refs/tags/tmp4933 with a ref in refs/replace/tmp4934 does not remove refs/replace/tmp4935 with a ref in refs/merge-requests/tmp4936 does not remove refs/merge-requests/tmp4937 with a ref in refs/environments/tmp4938 does not remove refs/environments/tmp4939 with a ref in refs/keep-around/tmp4940 does not remove refs/keep-around/tmp4941 with a ref in refs/pipelines/tmp4942 does not remove refs/pipelines/tmp4943 when after import action throw non-retriable exception4944 throws after import error4945 when housekeeping service lease is taken4946 logs the error message4947 when after import action throw retriable exception one time4948 removes refs/pull/**/*4949 records the failures in the database4950Pages::DeploymentUploader4951 behaves like builds correct paths4952 #store_dir4953 behaves like matches the method pattern4954 is expected to match /\/\h{2}\/\h{2}\/\h{64}\/pages_deployments\/\d+/4955 #cache_dir4956 behaves like matches the method pattern4957 is expected to match /pages\/@hashed\/tmp\/cache/4958 #work_dir4959 behaves like matches the method pattern4960 is expected to match /pages\/@hashed\/tmp\/work/4961 #upload_path4962 behaves like matches the method pattern4963 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4964 #relative_path4965 is relative (PENDING: Path not set, skipping.)4966 .absolute_path4967 behaves like matches the method pattern4968 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4969 .base_dir4970 behaves like matches the method pattern4971 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4972 path traversal exploits4973 throws an exception4974 when object store is REMOTE4975 preserves original file when stores it4976 behaves like builds correct paths4977 #store_dir4978 behaves like matches the method pattern4979 is expected to match /\A\h{2}\/\h{2}\/\h{64}\/pages_deployments\/\d+\z/4980 #cache_dir4981 behaves like matches the method pattern4982 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4983 #work_dir4984 behaves like matches the method pattern4985 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4986 #upload_path4987 behaves like matches the method pattern4988 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4989 #relative_path4990 is relative (PENDING: Path not set, skipping.)4991 .absolute_path4992 behaves like matches the method pattern4993 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4994 .base_dir4995 behaves like matches the method pattern4996 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4997 path traversal exploits4998 throws an exception4999 when file is stored in valid local_path5000 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/pages\/@hashed\/\h{2}\/\h{2}\/\h{64}\/pages_deployments\/18\/pages.zip/5001 preserves original file when stores it5002 .default_store5003 returns local store when object storage is not enabled5004 returns remote store when object storage is enabled5005Packages::Maven::Metadata::SyncService5006 #execute5007 permissions5008 role: :anonymous, expected_result: :rejected5009 behaves like returning an error service response5010 returns an error service response5011 role: :developer, expected_result: :rejected5012 behaves like returning an error service response5013 returns an error service response5014 role: :maintainer, expected_result: :accepted5015 behaves like returning a success service response5016 returns a success service response5017 with a maintainer5018 with a jar package5019 with no changes5020 behaves like returning a success service response5021 returns a success service response5022 with changes5023 behaves like returning a success service response5024 returns a success service response5025 with empty versions5026 behaves like returning a success service response5027 returns a success service response5028 with a too big maven metadata file for versions5029 behaves like returning an error service response5030 returns an error service response5031 an error from the create versions xml service5032 behaves like returning an error service response5033 returns an error service response5034 an error from the append package file service5035 behaves like returning an error service response5036 returns an error service response5037 without a package name5038 behaves like returning an error service response5039 returns an error service response5040 without a versionless package for version5041 behaves like returning a success service response5042 returns a success service response5043 without a metadata package file for versions5044 behaves like returning a success service response5045 returns a success service response5046 without a project5047 behaves like returning an error service response5048 returns an error service response5049 with a maven plugin package5050 with no changes5051 behaves like returning a success service response5052 returns a success service response5053 with changes in the versions xml5054 behaves like returning a success service response5055 returns a success service response5056 with changes in the plugin xml5057 behaves like returning a success service response5058 returns a success service response5059 with empty versions5060 behaves like returning a success service response5061 returns a success service response5062 with a too big maven metadata file for plugins5063 behaves like returning an error service response5064 returns an error service response5065 an error from the create versions xml service5066 behaves like returning an error service response5067 returns an error service response5068 an error from the append package file service5069 behaves like returning an error service response5070 returns an error service response5071 without a versionless package for plugins5072 behaves like returning a success service response5073 returns a success service response5074 without a versionless package for versions5075 behaves like returning a success service response5076 returns a success service response5077 without a metadata package file for plugins5078 behaves like returning a success service response5079 returns a success service response5080Gitlab::MultiCollectionPaginator5081 raises an error for invalid page size5082 combines both collections5083 includes elements second collection if first collection is empty5084 with a full first page5085 knows the total count of the collection5086 fills the first page with elements of the first collection5087 fils the second page with a mixture of the first & second collection5088 fils the last page with elements from the second collection5089GitlabSchema5090 uses batch loading5091 enables the generic instrumenter5092 has the base mutation5093 has the base query5094 paginates active record relations using `Pagination::Keyset::Connection`5095 paginates ExternallyPaginatedArray using `Pagination::ExternallyPaginatedArrayConnection`5096 sets an appropriate validation timeout5097 .execute5098 setting query `max_complexity` and `max_depth`5099 with no context5100 is expected to have attributes {:max_complexity => 200, :max_depth => 15}5101 with no :current_user5102 is expected to have attributes {:max_complexity => 200, :max_depth => 15}5103 with anonymous user5104 is expected to have attributes {:max_complexity => 200, :max_depth => 15}5105 with a logged in user5106 sets authenticated user limits5107 with an admin user5108 sets admin/authenticated user limits5109 when limits passed as kwargs5110 sets limits from the kwargs5111 .id_from_object5112 returns a global id5113 raises a meaningful error if a global id couldn't be generated5114 .object_from_id5115 raises the correct error on invalid input5116 with subclasses of `ApplicationRecord`5117 returns the correct record5118 returns the correct record, of the expected type5119 fails if the type does not match5120 batchloads the queries5121 with classes that are not ActiveRecord subclasses and have implemented .lazy_find5122 returns the correct record5123 batchloads the queries5124 with other classes5125 falls back to a regular find5126 validate_max_errors5127 reports at most 5 errors5128 for gid parsing5129 .parse_gid5130 parses the gid5131 when gid is malformed5132 raises an error5133 when using expected_type5134 accepts a single type5135 accepts an ancestor type5136 rejects an unknown type5137 when expected_type is an array5138 when global_id is of type TestOne5139 returns an object of an expected type5140 when global_id is of type TestTwo5141 returns an object of an expected type5142 when global_id is of type TestThree5143 rejects an unknown type5144 .parse_gids5145 parses the gids5146Gitlab::Memory::Reporter5147 # order random5148 #run_report5149 when reports path is specified directly5150 behaves like runs and stores reports5151 runs the given report and returns true5152 logs start and finish event5153 increments Prometheus duration counter5154 when the report returns invalid file path5155 logs `0` as `perf_report_size_bytes`5156 when an error occurs5157 when cause was an error being raised5158 behaves like handles errors gracefully5159 logs the error and returns false5160 when compression process is still running5161 terminates the process5162 when cause was compression command failing5163 behaves like handles errors gracefully5164 logs the error and returns false5165 when compression process is still running5166 terminates the process5167 when a report is disabled5168 does nothing and returns false5169 when reports path is specified via environment5170 behaves like runs and stores reports5171 runs the given report and returns true5172 logs start and finish event5173 increments Prometheus duration counter5174 when the report returns invalid file path5175 logs `0` as `perf_report_size_bytes`5176 when an error occurs5177 when cause was an error being raised5178 behaves like handles errors gracefully5179 logs the error and returns false5180 when compression process is still running5181 terminates the process5182 when cause was compression command failing5183 behaves like handles errors gracefully5184 logs the error and returns false5185 when compression process is still running5186 terminates the process5187 when a report is disabled5188 does nothing and returns false5189 when reports path is not specified5190 defaults to a temporary location5191 behaves like runs and stores reports5192 runs the given report and returns true5193 logs start and finish event5194 increments Prometheus duration counter5195 when the report returns invalid file path5196 logs `0` as `perf_report_size_bytes`5197 when an error occurs5198 when cause was an error being raised5199 behaves like handles errors gracefully5200 logs the error and returns false5201 when compression process is still running5202 terminates the process5203 when cause was compression command failing5204 behaves like handles errors gracefully5205 logs the error and returns false5206 when compression process is still running5207 terminates the process5208 when a report is disabled5209 does nothing and returns false5210Gitlab::SidekiqMiddleware::SizeLimiter::Validator5211 #initialize5212 configuration from application settings5213 has the right defaults5214 allows configuration through application settings5215 .validate!5216 skips background migrations5217 skips jobs that are already validated5218 behaves like validate limit job payload size5219 in track mode5220 when size limit is 05221 does not track jobs5222 does not raise exception5223 marks the job as validated5224 when job size is bigger than size limit5225 tracks job5226 does not raise an exception5227 marks the job as tracked5228 when the worker has big_payload attribute5229 does not track jobs5230 does not raise an exception5231 marks the job as validated5232 when job size is less than size limit5233 does not track job5234 does not raise an exception5235 marks the job as validated5236 in compress mode5237 when job size is less than compression threshold5238 does not raise an exception5239 marks the job as validated5240 when job size is bigger than compression threshold and less than size limit after compressed5241 does not raise an exception5242 marks the job as validated5243 when job size is bigger than compression threshold and size limit is 05244 does not raise an exception and compresses the arguments5245 marks the job as validated5246 when the job was already compressed5247 does not compress the arguments again5248 when job size is bigger than compression threshold and bigger than size limit after compressed5249 raises an exception5250 does not raise an exception when the worker allows big payloads5251 .validated?5252 returns true when the job is already validated5253 returns false when job is not yet validated5254 #validate!5255 behaves like validate limit job payload size5256 in track mode5257 when size limit is 05258 does not track jobs5259 does not raise exception5260 marks the job as validated5261 when job size is bigger than size limit5262 tracks job5263 does not raise an exception5264 marks the job as tracked5265 when the worker has big_payload attribute5266 does not track jobs5267 does not raise an exception5268 marks the job as validated5269 when job size is less than size limit5270 does not track job5271 does not raise an exception5272 marks the job as validated5273 in compress mode5274 when job size is less than compression threshold5275 does not raise an exception5276 marks the job as validated5277 when job size is bigger than compression threshold and less than size limit after compressed5278 does not raise an exception5279 marks the job as validated5280 when job size is bigger than compression threshold and size limit is 05281 does not raise an exception and compresses the arguments5282 marks the job as validated5283 when the job was already compressed5284 does not compress the arguments again5285 when job size is bigger than compression threshold and bigger than size limit after compressed5286 raises an exception5287 does not raise an exception when the worker allows big payloads5288NoteEntity5289 behaves like note entity5290 basic note5291 exposes correct elements5292 does not expose elements for specific notes cases5293 exposes author correctly5294 does not expose web_url for author5295 exposes permission fields on current_user5296 exposes the report_abuse_path5297 :can_resolve_discussion5298 discussion is resolvable5299 user can resolve5300 is true5301 user cannot resolve5302 is false5303 discussion is not resolvable5304 is false5305 :outdated_line_change_path5306 when note shows outdated changes5307 returns correct outdated_line_change_namespace_project_note_path5308 when note does not show outdated changes5309 does not expose outdated_line_change_path5310 when note was edited5311 exposes last_edited_at and last_edited_by elements5312 when note is a system note5313 exposes system_note_icon_name element5314Resolvers::WorkItemsResolver5315 is expected to have nullable GraphQL type WorkItemConnection5316 with a project5317 #resolve5318 finds all items5319 filters by state5320 returns items user can see5321 batches queries that only include IIDs5322 finds a specific item with iids5323 finds multiple items with iids5324 finds only the items within the project we are looking at5325 when searching items5326 behaves like graphql query for searching issuables5327 uses search optimization5328 filters issuables by title5329 filters issuables by description5330 with in param5331 generates an error if param search is missing5332 filters issuables by title and description5333 filters issuables by description only5334 filters issuables by title only5335 sorting5336 when sorting by created5337 sorts items ascending5338 sorts items descending5339 when sorting by title5340 sorts items ascending5341 sorts items descending5342 when passing a non existent, batch loaded project5343 returns nil without breaking5344DeploymentEntity5345 # order random5346 exposes fields5347 playable_build5348 when the deployment has a playable deployable5349 when this build is ready to be played5350 exposes only the play_path5351 when this build has failed5352 exposes the play_path and the retry_path5353 when the deployment does not have a playable deployable5354 is not exposed5355 when deployment details serialization was disabled5356 does not serialize deployment details5357 only exposes deployable name and path5358 scheduled_actions5359 when the same pipeline has a scheduled action5360 returns other scheduled actions5361 when the same pipeline does not have a scheduled action5362 does not return other actions5363 when deployment details serialization was disabled5364 does not serialize scheduled actions details5365 when deployable is nil5366 does not expose deployable entry5367 when the pipeline has another manual action5368 returns another manual action5369 when user is a reporter5370 returns another manual action5371 when deployment details serialization was disabled5372 does not serialize manual actions details5373LastGroupOwnerAssigner5374 #execute5375 avoids extra database queries utilizing memoization5376 when there are unblocked owners5377 with one unblocked owner5378 is expected to change `GroupMember#last_owner` from nil to true and change `GroupMember#last_blocked_owner` from nil to false5379 with multiple unblocked owners5380 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5381 has many members passed5382 with owners from a parent5383 when top-level group5384 with group sharing5385 is expected to change `GroupMember#last_owner` from nil to true and change `GroupMember#last_blocked_owner` from nil to false5386 when subgroup5387 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5388 when there are blocked owners5389 with one blocked owner5390 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to true5391 with multiple unblocked owners5392 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5393 with multiple blocked owners5394 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5395 with owners from a parent5396 when top-level group5397 with group sharing5398 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to true5399 when subgroup5400 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to true5401 with two owners5402 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5403 when there are bot members5404 with a bot owner5405 is expected to change `GroupMember#last_owner` from nil to true and change `GroupMember#last_blocked_owner` from nil to false5406Gitlab::ApplicationContext5407 .with_context5408 yields the block5409 passes the expected context on to labkit5410 raises an error when passing invalid options5411 .with_raw_context5412 yields the block5413 passes the attributes unaltered on to labkit5414 .push5415 passes the expected context on to labkit5416 raises an error when passing invalid options5417 .current_context_include?5418 returns true if the key was present in the context5419 returns false if the key was not present in the current context5420 .current_context_attribute5421 returns the raw attribute value5422 returns the attribute value with meta prefix5423 returns nil if the key was not present in the current context5424 #to_lazy_hash5425 does not call the attributes until needed5426 correctly loads the expected values when they are wrapped in a block5427 correctly loads the expected values when passed directly5428 falls back to a projects namespace when a project is passed but no namespace5429 contains known keys5430 setting the client5431 provided_options: [:remote_ip], client: :remote_ip5432 sets the client_id to the expected value5433 provided_options: [:remote_ip, :runner], client: :runner5434 sets the client_id to the expected value5435 provided_options: [:remote_ip, :runner, :user], client: :runner5436 sets the client_id to the expected value5437 provided_options: [:remote_ip, :user], client: :user5438 sets the client_id to the expected value5439 provided_options: [:job], client: :user5440 sets the client_id to the expected value5441 when using a runner project5442 sets project path from runner project5443 when the runner serves multiple projects5444 does not set project path5445 when using an instance runner5446 does not sets project path5447 when using job context5448 sets expected values5449 #use5450 yields control5451 passes the expected context on to labkit5452 does not cause queries5453Releases::DestroyService5454 #execute5455 when there is a release5456 removes the release5457 returns the destroyed object5458 when tag does not exist in the repository5459 removes the orphaned release5460 when release is not found5461 returns an error5462 when user does not have permission5463 returns an error5464 when a milestone is tied to the release5465 destroys the release but leave the milestone intact5466Ci::ParseDotenvArtifactService5467 #execute5468 when build has a dotenv artifact5469 parses the artifact5470 when dotenv variables are conflicting against manual variables5471 returns an error message that there is a duplicate variable5472 when dotenv variables have duplicate variables5473 latest values get used5474 when parse error happens5475 returns error5476 when artifact size is too big5477 returns error5478 when artifact has the specified blob5479 when a white space trails the key5480 trims the trailing space5481 when multiple key/value pairs exist in one line5482 parses the dotenv data5483 when key contains UNICODE5484 returns error5485 when value contains UNICODE5486 parses the dotenv data5487 when key contains a space5488 returns error5489 when value contains a space5490 parses the dotenv data5491 when value is double quoated5492 parses the value as-is5493 when value is single quoated5494 parses the value as-is5495 when value has white spaces in double quote5496 parses the value as-is5497 when key is missing5498 returns error5499 when value is missing5500 parses the dotenv data5501 when it is not dotenv format5502 returns error5503 when blob is encoded in UTF-16 LE5504 parses the dotenv data5505 when more than limitated variables are specified in dotenv5506 returns error5507 when variables are cross-referenced in dotenv5508 does not support variable expansion in dotenv parser5509 when there is an empty line5510 does not support empty line in dotenv parser5511 when there is a comment5512 does not support comment in dotenv parser5513 when build does not have a dotenv artifact5514 raises an error5515Mutations::Issues::Create5516 is expected to require graphql authorizations :create_issue5517 #resolve5518 when the user does not have permission to create an issue5519 raises an error5520 when the user has exceeded the rate limit5521 raises an error5522 when the user can create an issue5523 when creating an issue a developer5524 creates issue with correct values5525 when passing in label_ids5526 creates issue with correct values5527 when trying to create issue with restricted params5528 ignores the special params5529 when creating a non-default issue type5530 creates issue with correct values5531 when creating an issue as owner5532 sets the special params5533 #ready?5534 when passing in both labels and label_ids5535 raises exception when mutually exclusive params are given5536 when passing only `discussion_to_resolve` param5537 raises exception when mutually exclusive params are given5538 when passing only `merge_request_to_resolve_discussions_of` param5539 raises exception when mutually exclusive params are given5540MergeRequests::UpdateAssigneesService5541 execute5542 when the parameters are valid5543 does not update the assignees if they do not have access5544 is more efficient than using the full update-service5545 when using sentinel values5546 when using assignee_ids5547 behaves like removing all assignees5548 removes all assignees5549 enqueues the correct background work5550 when using assignee_id5551 behaves like removing all assignees5552 removes all assignees5553 enqueues the correct background work5554 when the assignee_ids parameter is the empty list5555 behaves like removing all assignees5556 removes all assignees5557 enqueues the correct background work5558 behaves like it updates and enqueues the job5559 correctly updates the MR and enqueues the job5560Security::CiConfiguration::SastIacCreateService5561 #execute5562 user does not belong to project5563 returns an error status5564 does not track a snowplow event5565 user belongs to project5566 does track the snowplow event5567 raises exception if the user does not have permission to create a new branch5568 when exception is raised5569 when branch was created5570 tries to rm branch5571 when branch was not created5572 does not try to rm branch5573 with no parameters5574 returns the path to create a new merge request5575 when the project has a non-default ci config file5576 does track the snowplow event5577 when existing ci config contains anchors/aliases5578 fails with error5579 when parsing existing ci config gives a Psych error5580 fails with error5581 when parsing existing ci config gives any other error5582 is successful5583 when the project is empty5584 returns an error5585Ci::CreatePipelineService5586 dry run5587 when pipeline is valid5588 returns a valid pipeline5589 behaves like returns a non persisted pipeline5590 does not persist the pipeline5591 does not process the pipeline5592 does not schedule merge request head pipeline update5593 when pipeline is not valid5594 when there are syntax errors5595 returns a pipeline with errors5596 behaves like returns a non persisted pipeline5597 does not persist the pipeline5598 does not process the pipeline5599 does not schedule merge request head pipeline update5600 when there are logical errors5601 returns a pipeline with errors5602 behaves like returns a non persisted pipeline5603 does not persist the pipeline5604 does not process the pipeline5605 does not schedule merge request head pipeline update5606 when there are errors at the seeding stage5607 returns a pipeline with errors5608 behaves like returns a non persisted pipeline5609 does not persist the pipeline5610 does not process the pipeline5611 does not schedule merge request head pipeline update5612BulkImports::Common::Pipelines::LfsObjectsPipeline5613 #run5614 imports lfs objects into destination project and removes tmpdir5615 #extract5616 downloads & extracts lfs objects filepaths5617 #load5618 when file path is lfs json5619 returns5620 when file path is tar file5621 returns5622 when lfs json read failed5623 raises an error5624 when file path is being traversed5625 raises an error5626 when file path is not under tmpdir5627 returns5628 when file path is symlink5629 returns5630 when path is a directory5631 returns5632 lfs objects project5633 when lfs objects json is invalid5634 when oid value is not Array5635 does not create lfs objects project5636 when oid value is nil5637 does not create lfs objects project5638 when oid value is not allowed5639 does not create lfs objects project5640 when repository type is duplicated5641 creates only one lfs objects project5642 when lfs objects project fails to be created5643 logs the failure5644 #after_run5645 removes tmpdir5646 when tmpdir does not exist5647 does not attempt to remove tmpdir5648MergeRequestDiffEntity5649 as json5650 exposes needed attributes5651 #version_index5652 when diff is not present5653 behaves like version_index is nil5654 returns nil5655 when diff is not included in @merge_request_diffs5656 behaves like version_index is nil5657 returns nil5658 when @merge_request_diffs.size <= 15659 behaves like version_index is nil5660 returns nil5661 when @merge_request_diffs.size > 15662 returns difference between size and diff index5663 #short_commit_sha5664 returns short sha5665 returns nil if head_commit_sha does not exist5666 #head_version_path5667 merge request can be merged5668 returns diff path with diff_head param set5669 merge request cannot be merged5670 returns diff path with diff_head param set5671Load balancer behavior with errors inside a transaction5672 in a transaction5673 raises an exception when a retry would occur5674 without a transaction5675 retries5676Mutations::Issues::SetSeverity5677 is expected to require graphql authorizations :update_issue and :admin_issue5678 #resolve5679 as guest5680 raises an error5681 and also author5682 raises an error5683 and also assignee5684 raises an error5685 as reporter5686 when issue type is incident5687 when severity has a correct value5688 updates severity5689 returns no errors5690 when severity has an unsuported value5691 sets severity to default5692 returns no errorsr5693 when issue type is not incident5694 does not update the issue5695PageLayoutHelper5696 page_description5697 defaults to nil5698 returns the last-pushed description5699 squishes multiple newlines5700 truncates5701 sanitizes all HTML5702 truncates before sanitizing5703 page_image5704 defaults to the GitLab logo5705 with @project assigned5706 uses Project avatar full url5707 when avatar_url is nil5708 falls back to the default when avatar_url is nil5709 with no assignments5710 falls back to the default5711 with @user assigned5712 uses User avatar full url5713 when avatar_url is nil5714 falls back to the default when avatar_url is nil5715 with no assignments5716 falls back to the default5717 with @group assigned5718 uses Group avatar full url5719 when avatar_url is nil5720 falls back to the default when avatar_url is nil5721 with no assignments5722 falls back to the default5723 page_card_attributes5724 raises ArgumentError when given more than two attributes5725 rejects blank values5726 page_card_meta_tags5727 returns the twitter:label and twitter:data tags5728 escapes content5729 #search_context5730 a bare controller5731 returns an empty context5732 #page_canonical_link5733 when link is passed5734 stores and returns the link value5735 when no link is provided5736 behaves like generates the canonical url using the params in the context5737 is expected to eq "http://test.host/foo"5738 behaves like generates the canonical url using the params in the context5739 is expected to eq "http://test.host/foo"5740 behaves like does not return a canonical url5741 is expected to be nil5742 behaves like does not return a canonical url5743 is expected to be nil5744 #page_itemtype5745 when itemtype is passed5746 stores and returns the itemtype value5747 when no itemtype is provided5748 returns an empty hash5749 #full_content_class5750 has a content_class set5751 has no content_class set5752 #user_status_properties5753 when the user has no status5754 returns default properties5755 when user has a status5756 merges the status properties with the defaults5757WebIdeTerminal5758 returns the show_path of the build5759 returns the retry_path of the build5760 returns the cancel_path of the build5761 returns the terminal_path of the build5762 returns the proxy_websocket_path of the build5763 services5764 when image does not have an alias5765 returns services aliases5766 when both image and services have aliases5767 returns all aliases5768 when image and services does not have any alias5769 returns an empty array5770 when no image nor services5771 returns an empty array5772Integrations::Packagist5773 behaves like Integrations::HasWebHook5774 associations5775 is expected to have one service_hook inverse_of => integration5776 callbacks5777 calls #update_web_hook! when enabled5778 does not call #update_web_hook! when disabled5779 does not call #update_web_hook! when validation fails5780 #hook_url5781 returns a string5782 #url_variables5783 returns a hash5784 #hook_ssl_verification5785 returns a boolean5786 delegates to #enable_ssl_verification if the concern is included5787 #update_web_hook!5788 creates or updates a service hook5789 raises an error if the service hook could not be saved5790 does not attempt to save the service hook if there are no changes5791 #execute_web_hook!5792 creates the webhook if necessary and executes it5793 raises an error if the service hook could not be saved5794 behaves like Integrations::ResetSecretFields5795 #exposing_secrets_fields5796 returns an array of strings5797 #reset_secret_fields?5798 returns false if no exposing field has changed5799 returns true if any exposing field has changed5800 validation callback5801 when an exposing field has changed5802 clears all secret fields5803 when a secret field has been updated5804 does not clear this secret field5805 when a secret field has been updated with the same value5806 does not clear this secret field5807 when no exposing field has changed5808 does not clear any secret fields5809 #execute5810 calls Packagist API5811 #test5812 when test request executes without errors5813 when response is a 2005814 return failure result5815 when response is a 2025816 return success result5817 when test request executes with errors5818 return failure result5819Resolvers::DesignManagement::VersionsResolver5820 #resolve5821 a design collection5822 behaves like a source of versions5823 when the user is not authorized5824 is expected to be empty5825 without constraints5826 returns the ordered versions5827 loading associations5828 prevents N+1 queries when loading author5829 when constrained5830 by earlier_or_equal_to_id5831 behaves like a query for all_versions up to the first_version5832 is expected to eq #<ActiveRecord::Relation [#<DesignManagement::Version id: 1, sha: "69f7bf2ac802eef87b9c3253b1527c8996b9c0c7", issue_id: 187, created_at: "2023-03-30 12:00:33.337130000 +0000", author_id: 1549>]>5833 by earlier_or_equal_to_sha5834 behaves like a query for all_versions up to the first_version5835 is expected to eq #<ActiveRecord::Relation [#<DesignManagement::Version id: 1, sha: "69f7bf2ac802eef87b9c3253b1527c8996b9c0c7", issue_id: 187, created_at: "2023-03-30 12:00:33.337130000 +0000", author_id: 1549>]>5836 by earlier_or_equal_to_sha AND earlier_or_equal_to_id5837 and they match5838 behaves like a query for all_versions up to the first_version5839 is expected to eq #<ActiveRecord::Relation [#<DesignManagement::Version id: 1, sha: "69f7bf2ac802eef87b9c3253b1527c8996b9c0c7", issue_id: 187, created_at: "2023-03-30 12:00:33.337130000 +0000", author_id: 1549>]>5840 and they do not match5841 generates a suitable error5842 a design5843 behaves like a source of versions5844 when the user is not authorized5845 is expected to be empty5846 without constraints5847 returns the ordered versions5848 loading associations5849 prevents N+1 queries when loading author5850 when constrained5851 by earlier_or_equal_to_id5852 behaves like a query for all_versions up to the first_version5853 is expected to eq #<ActiveRecord::AssociationRelation [#<DesignManagement::Version id: 1, sha: "69f7bf2ac802eef87b9c325...27c8996b9c0c7", issue_id: 187, created_at: "2023-03-30 12:00:33.337130000 +0000", author_id: 1549>]>5854 by earlier_or_equal_to_sha5855 behaves like a query for all_versions up to the first_version5856 is expected to eq #<ActiveRecord::AssociationRelation [#<DesignManagement::Version id: 1, sha: "69f7bf2ac802eef87b9c325...27c8996b9c0c7", issue_id: 187, created_at: "2023-03-30 12:00:33.337130000 +0000", author_id: 1549>]>5857 by earlier_or_equal_to_sha AND earlier_or_equal_to_id5858 and they match5859 behaves like a query for all_versions up to the first_version5860 is expected to eq #<ActiveRecord::AssociationRelation [#<DesignManagement::Version id: 1, sha: "69f7bf2ac802eef87b9c325...27c8996b9c0c7", issue_id: 187, created_at: "2023-03-30 12:00:33.337130000 +0000", author_id: 1549>]>5861 and they do not match5862 generates a suitable error5863JiraConnectInstallation5864 associations5865 is expected to have many subscriptions class_name => JiraConnectSubscription5866 validations5867 is expected to validate that :client_key cannot be empty/falsy5868 is expected to validate that :client_key is case-sensitively unique5869 is expected to validate that :shared_secret cannot be empty/falsy5870 is expected to validate that :base_url cannot be empty/falsy5871 is expected to allow :base_url to be ‹"https://test.atlassian.net"›5872 is expected not to allow :base_url to be ‹"not/a/url"›5873 is expected to allow :instance_url to be ‹"https://test.atlassian.net"›5874 is expected not to allow :instance_url to be ‹"not/a/url"›5875 scopes5876 .for_project5877 returns installations with subscriptions for project5878 returns distinct installations5879 .direct_installations5880 is expected to contain exactly #<JiraConnectInstallation id: 3, client_key: [FILTERED], encrypted_shared_secret: [FILTERED], encrypt...ret_iv: [FILTERED], base_url: "https://sample.atlassian.net", instance_url: nil, shared_secret: nil>5881 .proxy_installations5882 is expected to be empty5883 with an installation on a self-managed instance5884 is expected to contain exactly #<JiraConnectInstallation id: 8, client_key: [FILTERED], encrypted_shared_secret: [FILTERED], encrypt... "https://sample.atlassian.net", instance_url: "http://self-managed-gitlab.com", shared_secret: nil>5885 #oauth_authorization_url5886 is expected to eq "http://test.host"5887 with instance_url5888 is expected to eq "https://gitlab.example.com"5889 audience_url5890 is expected to eq nil5891 when proxy installation5892 is expected to eq "https://example.com/-/jira_connect"5893 audience_installed_event_url5894 is expected to eq nil5895 when proxy installation5896 is expected to eq "https://example.com/-/jira_connect/events/installed"5897 audience_uninstalled_event_url5898 is expected to eq nil5899 when proxy installation5900 is expected to eq "https://example.com/-/jira_connect/events/uninstalled"5901 proxy?5902 is expected to eq false5903 when instance_url is present5904 is expected to eq true5905Ci::DeleteObjectsService5906 #execute5907 deletes records5908 deletes files5909 when trying to execute without records5910 does not change the number of objects5911 when trying to remove the same file multiple times5912 executes successfully5913 with artifacts both ready and not ready for deletion5914 skips records with pick_up_at in the future5915 limits the number of records removed5916 removes records in order5917 updates pick_up_at timestamp5918 does not delete objects for which file deletion has failed5919 with an open database transaction5920 raises an exception and does not remove records5921 #remaining_batches_count5922 when there is less than one batch size5923 is expected to eq 15924 when there is more than one batch size5925 is expected to eq 25926Gitlab::Metrics::BackgroundTransaction5927 #run5928 yields the supplied block5929 stores the transaction in the current thread5930 removes the transaction from the current thread upon completion5931 #labels5932 when the worker queue is accessible5933 provides labels with endpoint_id, feature_category and queue5934 when the worker name does not exist5935 provides labels with endpoint_id and feature_category5936 when the worker queue is not accessible5937 provides labels with endpoint_id and feature_category5938 behaves like transaction metrics with labels5939 .prometheus_metric5940 adds a metric5941 #method_call_for5942 returns a MethodCall5943 #add_event5944 adds a metric5945 allows tracking of custom tags5946 with sensitive tags5947 filters tags5948 #increment5949 adds a metric5950 with block5951 overrides docstring5952 overrides labels5953 filters sensitive tags5954 #set5955 adds a metric5956 with block5957 overrides docstring5958 overrides labels5959 filters sensitive tags5960 #observe5961 adds a metric5962 with block5963 overrides docstring5964 overrides labels5965 filters sensitive tags5966Gitlab::Ci::Status::Build::FailedAllowed5967 #text5968 does not override status text5969 #icon5970 returns a warning icon5971 #label5972 returns information about failed but allowed to fail status5973 #group5974 returns status failed with warnings status group5975 action details5976 #has_action?5977 does not decorate action details5978 #action_path5979 does not decorate action path5980 #action_icon5981 does not decorate action icon5982 #action_title5983 does not decorate action title5984 #badge_tooltip5985 does override badge_tooltip5986 #status_tooltip5987 does override status_tooltip5988 .matches?5989 when build is failed5990 when build is allowed to fail5991 is a correct match5992 when build is not allowed to fail5993 is not a correct match5994 when build did not fail5995 when build is allowed to fail5996 is not a correct match5997 when build is not allowed to fail5998 is not a correct match5999Sanitizable6000 behaves like a non-sanitizable field6001 id6002 has no effect6003 behaves like a non-sanitizable field6004 html_body6005 has no effect6006 behaves like a sanitizable field6007 name6008 when input is nil6009 behaves like noop6010 has no effect6011 when input does not contain any html6012 behaves like noop6013 has no effect6014 when input contains html6015 sanitizes the input6016 when input includes html entities6017 does not escape them6018 when input contains pre-escaped html entities6019 is not valid6020 behaves like noop6021 has no effect6022 when input contains double-escaped data6023 is not valid6024 behaves like noop6025 has no effect6026 when input contains a path traversal attempt6027 is not valid6028 behaves like noop6029 has no effect6030 when input contains both path traversal attempt and pre-escaped entities6031 is not valid6032 behaves like noop6033 has no effect6034 behaves like a sanitizable field6035 description6036 when input is nil6037 behaves like noop6038 has no effect6039 when input does not contain any html6040 behaves like noop6041 has no effect6042 when input contains html6043 sanitizes the input6044 when input includes html entities6045 does not escape them6046 when input contains pre-escaped html entities6047 is not valid6048 behaves like noop6049 has no effect6050 when input contains double-escaped data6051 is not valid6052 behaves like noop6053 has no effect6054 when input contains a path traversal attempt6055 is not valid6056 behaves like noop6057 has no effect6058 when input contains both path traversal attempt and pre-escaped entities6059 is not valid6060 behaves like noop6061 has no effect6062BackgroundMigrationWorker6063 behaves like it runs background migration jobs6064 defining the job attributes6065 defines the data_consistency as always6066 defines the retry count in sidekiq_options6067 defines the feature_category as database6068 defines the urgency as throttled6069 defines the loggable_arguments6070 .tracking_database6071 does not raise an error6072 overrides the method to return the tracking database6073 .minimum_interval6074 returns 2 minutes6075 #perform6076 when execute_background_migrations feature flag is disabled6077 does not perform the job, reschedules it in the future, and logs a message6078 when execute_background_migrations feature flag is enabled6079 performs jobs using the coordinator for the worker6080 when lease can be obtained6081 sets up the shared connection before checking replication6082 performs a background migration6083 can run scheduled job and retried job concurrently6084 sets the class that will be executed as the caller_id6085 when lease_attempts is 16086 performs a background migration6087 when lease not obtained (migration of same class was performed recently)6088 reschedules the migration and decrements the lease_attempts6089 when lease_attempts is 16090 reschedules the migration and decrements the lease_attempts6091 when lease_attempts is 06092 gives up performing the migration6093 when database is not healthy6094 reschedules a migration if the database is not healthy6095 increments the unhealthy counter6096 when lease_attempts is 06097 gives up performing the migration6098Gitlab::Ci::Config::Extendable::Entry6099 .new6100 when entry key is not included in the context hash6101 raises error6102 #value6103 reads a hash value from the context6104 #extensible?6105 when entry has inheritance defined6106 is extensible6107 when entry does not have inheritance specified6108 is not extensible6109 when entry value is not a hash6110 is not extensible6111 #extends_keys6112 when entry is extensible6113 returns symbolized extends key value6114 when entry is not extensible6115 returns nil6116 #ancestors6117 returns ancestors keys6118 #base_hashes!6119 when base hash is not extensible6120 returns unchanged base hashes6121 when base hash is extensible too6122 extends the base hashes first6123 mutates original context6124 #extend!6125 when extending a non-hash value6126 raises an error6127 when extending unknown key6128 raises an error6129 when extending a hash correctly6130 returns extended part of the hash6131 mutates original context6132 when extending multiple hashes correctly6133 returns extended part of the hash6134 mutates original context6135 when hash is not extensible6136 returns original key value6137 does not mutate orignal context6138 when circular depenency gets detected6139 raises an error6140 when nesting level is too deep6141 raises an error6142Gitlab::ProcessManagement6143 .trap_signals6144 traps the given signals6145 .modify_signals6146 traps the given signals with the given command6147 .signal_processes6148 sends a signal to every given process6149 .signal6150 sends a signal to the given process6151 returns false when the process does not exist6152 .all_alive?6153 returns true if all processes are alive6154 returns false when a thread was not alive6155 .process_alive?6156 returns true if the process is alive6157 returns false when a thread was not alive6158 returns false when no pid is given6159 .process_died?6160 returns false if the process is alive6161 returns true when a thread was not alive6162 returns true when no pid is given6163 .pids_alive6164 returns the pids that are alive, from a given array6165 .any_alive?6166 returns true if at least one process is alive6167 returns false when all threads are dead6168 .write_pid6169 writes the PID of the current process to the given file6170Mutations::Issues::SetEscalationStatus6171 #resolve6172 behaves like permission level for issue mutation is correctly verified6173 when the user is not a project member6174 behaves like when the user does not have access to the resource6175 raises an error6176 even if assigned to the issue6177 does not modify issue6178 even if author of the issue6179 does not modify issue6180 when the user is a project member6181 with guest role6182 behaves like when the user does not have access to the resource6183 raises an error6184 even if assigned to the issue6185 does not modify issue6186 even if author of the issue6187 does not modify issue6188 when the user can update the issue6189 behaves like permission level for issue mutation is correctly verified6190 when the user is not a project member6191 behaves like when the user does not have access to the resource6192 raises an error6193 even if assigned to the issue6194 does not modify issue6195 even if author of the issue6196 does not modify issue6197 when the user is a project member6198 with guest role6199 behaves like when the user does not have access to the resource6200 raises an error6201 even if assigned to the issue6202 does not modify issue6203 even if author of the issue6204 does not modify issue6205 when the user can update the escalation status6206 returns the issue with the escalation policy6207 returns errors when issue update fails6208 with non-incident issue is provided6209 raises an error6210forked project import6211 can access the MR6212UploadedFile6213 from_params functions6214 .from_params6215 when valid file is specified6216 only local path is specified6217 is expected not to be nil6218 generates filename from path6219 all parameters are specified6220 with a filepath6221 behaves like using the file path6222 is expected not to be nil6223 sets properly the attributes6224 handles a blank path6225 with a remote id6226 behaves like using the remote id6227 is expected not to be nil6228 sets properly the attributes6229 with a path and a remote id6230 behaves like using the remote id6231 is expected not to be nil6232 sets properly the attributes6233 when no params are specified6234 does not return an object6235 when verifying allowed paths6236 when file is stored in system temporary folder6237 is expected not to be nil6238 when file is stored in user provided upload path6239 is expected not to be nil6240 when file is stored outside of user provided upload path6241 raises an error6242 .initialize6243 when no size is provided6244 determine size from local path6245 raises an exception if is a remote file6246 when size is a number6247 is overridden by the size of the local file6248 is respected if is a remote file6249 when size is a string6250 is converted to a number6251 raises an exception if does not represent a number6252 when upload_duration is not provided6253 sets upload_duration to zero6254 when upload_duration is provided6255 and upload_duration is a number6256 sets the upload_duration6257 and upload_duration is a string6258 and represents a number6259 converts upload_duration to a number6260 and does not represent a number6261 sets upload_duration to zero6262 #sanitize_filename6263 is expected to eq "spaced_name"6264 is expected to eq "_____"6265 is expected to eq "_.."6266 is expected to eq "unnamed"6267Gitlab::Diff::Parser6268 #parse6269 is expected to eq 306270 lines6271 first line6272 is expected to eq "match"6273 is expected to eq 66274 is expected to eq 66275 is expected to eq "@@ -6,12 +6,18 @@ module Popen"6276 removal line6277 is expected to eq "old"6278 is expected to eq 146279 is expected to eq 136280 is expected to eq "- options = { chdir: path }"6281 addition line6282 is expected to eq "new"6283 is expected to eq 156284 is expected to eq 186285 is expected to eq "+ options = {"6286 unchanged line6287 is expected to eq nil6288 is expected to eq 246289 is expected to eq 316290 is expected to eq " @cmd_output << stderr.read"6291 \ No newline at end of file6292 parses nonewline in one file correctly6293 parses nonewline in two files correctly6294 when lines is empty6295 is expected to eq []6296 is expected to eq []6297 when it is a binary notice6298 is expected to eq []6299 tolerates special diff markers in a content6300 counts lines correctly6301Gitlab::GlobalId6302 .build6303 returns a standard GlobalId if only object is passed6304 returns a GlobalId from params6305 returns a GlobalId from object and `id` param6306 returns a GlobalId from object and `model_name` param6307 returns an error if model_name and id are not able to be determined6308 .as_global_id6309 is the identify function on GlobalID instances6310 wraps URI::GID in GlobalID6311 cannot coerce Integers without a model name6312 can coerce Integers with a model name6313 rejects any other value6314Gitlab::Kubernetes::Helm::API6315 #initialize6316 creates a namespace object6317 #uninstall6318 ensures the namespace exists before creating the POD6319 removes an existing pod before installing6320 with a ConfigMap6321 creates a ConfigMap on kubeclient6322 config map already exists6323 updates the config map6324 #install6325 ensures the namespace exists before creating the POD6326 removes an existing pod before installing6327 with a ConfigMap6328 creates a ConfigMap on kubeclient6329 config map already exists6330 updates the config map6331 without a service account6332 does not create a service account on kubeclient6333 with a service account6334 rbac-enabled cluster6335 service account does not exist6336 creates a service account, followed the cluster role binding on kubeclient6337 service account already exists6338 updates the service account, followed by creating the cluster role binding6339 a non-404 error is thrown6340 raises an error6341 legacy abac cluster6342 does not create a service account on kubeclient6343 #status6344 fetches POD phase from kubernetes cluster6345 #log6346 fetches POD phase from kubernetes cluster6347 #delete_pod!6348 deletes the POD from kubernetes cluster6349 when the resource being deleted does not exist6350 catches the error6351 #get_config_map6352 ensures the namespace exists before retrieving the config map6353 gets the config map on kubeclient6354Clusters::Agents::AuthorizationConfigScopes6355 .with_available_ci_access_fields6356 is expected to contain exactly #<Clusters::Agents::ProjectAuthorization id: 1, project_id: 1093, agent_id: 15, config: {"default_namespace"=>"production"}>, #<Clusters::Agents::ProjectAuthorization id: 2, project_id: 1093, agent_id: 16, config: {"access_as"=>{}}>, and #<Clusters::Agents::ProjectAuthorization id: 3, project_id: 1093, agent_id: 17, config: {"access_as"=>{"agent"=>{}}}>6357Gitlab::Ci::Config::Entry::Image6358 when configuration is a string6359 #value6360 returns image hash6361 #errors6362 does not append errors6363 #valid?6364 is valid6365 #image6366 returns image's name6367 #entrypoint6368 returns image's entrypoint6369 #ports6370 returns image's ports6371 #pull_policy6372 returns nil6373 when configuration is a hash6374 #value6375 returns image hash6376 #errors6377 does not append errors6378 #valid?6379 is valid6380 #image6381 returns image's name6382 #entrypoint6383 returns image's entrypoint6384 when configuration has ports6385 when with_image_ports metadata is not enabled6386 #valid?6387 is not valid6388 when with_image_ports metadata is enabled6389 #valid?6390 is valid6391 #ports6392 returns image's ports6393 when configuration has pull_policy6394 #valid?6395 is valid6396 #value6397 returns value6398 when entry value is not correct6399 #errors6400 saves errors6401 #valid?6402 is not valid6403 when unexpected key is specified6404 #errors6405 saves errors6406 #valid?6407 is not valid6408ObjectStorage::MigrateUploadsWorker6409 #perform6410 migrates files to remote storage6411 handles legacy argument format6412 logs an error when number of arguments is incorrect6413 reversed6414 migrates files to local storage6415 migration is unsuccessful6416 does not migrate files to remote storage6417 limits N+1 queries6418 to N*56419Banzai::ReferenceParser::AlertParser6420 #nodes_visible_to_user6421 when the link has a data-issue attribute6422 behaves like referenced feature visibility6423 when feature is disabled6424 does not create reference6425 when feature is enabled only for team members6426 does not create reference for non member6427 creates reference for member6428 when feature is enabled6429 creates reference6430 #referenced_by6431 when the link has a data-alert attribute6432 using an existing alert ID6433 returns an Array of alerts6434 using a non-existing alert ID6435 returns an empty Array6436WorkItems::Widgets::HierarchyService::UpdateService6437 #update6438 when parent and children params are present6439 behaves like raises a WidgetError6440 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "A Work Item can be a parent or a child, but not both."6441 when invalid params are present6442 behaves like raises a WidgetError6443 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "One or more arguments are invalid: other_parent."6444 when updating children6445 when user has insufficient permissions to link work items6446 behaves like raises a WidgetError6447 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "No matching work item found. Make sure that you are adding a valid work item ID."6448 when user has sufficient permissions to link work item6449 with valid params6450 correctly sets work item parent6451 when child is already assigned6452 behaves like raises a WidgetError6453 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "Work item(s) already assigned"6454 when child type is invalid6455 behaves like raises a WidgetError6456 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "#7 cannot be added: is not allowed to add this type of parent"6457 when updating parent6458 when user has insufficient permissions to link work items6459 behaves like raises a WidgetError6460 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "No matching work item found. Make sure that you are adding a valid work item ID."6461 when user has sufficient permissions to link work item6462 correctly sets new parent6463 when parent is nil6464 removes the work item parent if present6465 returns success status if parent not present6466 when type is invalid6467 behaves like raises a WidgetError6468 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "#4 cannot be added: is not allowed to add this type of parent"6469Identity6470 relations6471 is expected to belong to user required: false6472 fields6473 is expected to respond to #provider6474 is expected to respond to #extern_uid6475 validations6476 with existing user and provider6477 returns false for a duplicate entry6478 returns true when a different provider is used6479 with newly-created user6480 successfully validates even with a nil user_id6481 #is_ldap?6482 returns true if it is a ldap identity6483 returns false if it is not a ldap identity6484 .with_extern_uid6485 LDAP identity6486 finds the identity when the DN is formatted differently6487 any other provider6488 the extern_uid lookup is case insensitive6489 .with_any_extern_uid6490 provider with extern uid6491 finds any extern uids associated with a provider6492 provider with nil extern uid6493 has no results when there are no extern uids6494 no provider6495 has no results when there is no associated provider6496 callbacks6497 before_save6498 normalizes extern uid6499 if extern_uid changes6500 if current_uid is nil6501 if extern_uid changed and not nil6502 after_destroy6503 if user synced attributes metadada provider6504 matches the identity provider6505 removes the user synced attributes6506 does not matche the identity provider6507 does not remove the user synced attributes6508Packages::TagsFinder6509 #execute6510 is expected to contain exactly #<Packages::Tag id: 1, package_id: 48, name: "tag-1", created_at: "2023-03-30 12:01:29.458598726 +0000", updated_at: "2023-03-30 12:01:29.458598726 +0000"> and #<Packages::Tag id: 2, package_id: 48, name: "tag-2", created_at: "2023-03-30 12:01:29.467004385 +0000", updated_at: "2023-03-30 12:01:29.467004385 +0000">6511 with package type6512 is expected to contain exactly #<Packages::Tag id: 5, package_id: 51, name: "tag-5", created_at: "2023-03-30 12:01:30.387077627 +0000", updated_at: "2023-03-30 12:01:30.387077627 +0000">6513 with blank package type6514 is expected to contain exactly #<Packages::Tag id: 6, package_id: 52, name: "tag-6", created_at: "2023-03-30 12:01:30.839044819 +0000", updated_at: "2023-03-30 12:01:30.839044819 +0000"> and #<Packages::Tag id: 7, package_id: 52, name: "tag-7", created_at: "2023-03-30 12:01:30.846352918 +0000", updated_at: "2023-03-30 12:01:30.846352918 +0000">6515 with nil package type6516 is expected to contain exactly #<Packages::Tag id: 8, package_id: 53, name: "tag-8", created_at: "2023-03-30 12:01:31.303994029 +0000", updated_at: "2023-03-30 12:01:31.303994029 +0000"> and #<Packages::Tag id: 9, package_id: 53, name: "tag-9", created_at: "2023-03-30 12:01:31.310073348 +0000", updated_at: "2023-03-30 12:01:31.310073348 +0000">6517 with unknown package name6518 is expected to be empty6519 #find_by_name6520 is expected to eq #<Packages::Tag id: 12, package_id: 55, name: "tag-12", created_at: "2023-03-30 12:01:32.214545983 +0000", updated_at: "2023-03-30 12:01:32.214545983 +0000">6521 with package type6522 is expected to eq #<Packages::Tag id: 16, package_id: 58, name: "tag-16", created_at: "2023-03-30 12:01:33.183003937 +0000", updated_at: "2023-03-30 12:01:33.183003937 +0000">6523 with unknown tag_name6524 is expected to be nil6525Ci::PipelineSuccessUnlockArtifactsWorker6526 #perform6527 is labeled as idempotent6528 performs multiple times sequentially without raising an exception6529 unlocks the artifacts from older pipelines6530 when pipeline exists6531 when pipeline has erasable artifacts6532 calls the unlock service6533 when pipeline has no erasable artifacts6534 does not call the unlock service6535 when pipeline does not exist6536 does not call service6537ErrorTracking::StacktraceBuilder6538 #stacktrace6539 with full error context6540 generates a correct stacktrace in expected format6541 when error context is missing6542 generates a stacktrace without context6543 when exception payload is a list6544 extracts a stracktrace6545 with empty payload6546 is expected to eq []6547 without exception field6548 is expected to eq []6549 without exception.values field6550 is expected to eq []6551 without any exception.values[].stacktrace fields6552 is expected to eq []6553 without any exception.values[].stacktrace.frame fields6554 is expected to eq []6555Milestones::FindOrCreateService6556 #execute6557 when finding milestone on project level6558 returns existing milestone6559 when finding milestone on group level6560 returns existing milestone6561 when not finding milestone6562 when user has permissions6563 when params are valid6564 creates a new milestone at project level using params6565 when params are not valid6566 returns nil6567 when user does not have permissions6568 does not create a new milestone6569 returns nil6570MergeRequests::BaseService6571 #execute_hooks6572 with a Jira subscription6573 MR contains Jira issue key6574 behaves like enqueues Jira sync worker6575 aggregate_failures6576 MR does not contain Jira issue key6577 behaves like does not enqueue Jira sync worker6578 is expected not to change `Array#size`6579 without a Jira subscription6580 behaves like does not enqueue Jira sync worker6581 is expected not to change `Array#size`6583 async: false6584 creates a pipeline directly6585 allow_duplicate: true6586 passes :allow_duplicate as true6587 async: true6588 enques a CreatePipelineWorker6589 allow_duplicate: true6590 passes :allow_duplicate as true6591 #constructor_container_arg6592 is expected to eq {:project=>"some-value"}6593Gitlab::Ci::Badge::Coverage::Report6594 #entity6595 describes a coverage6596 #metadata6597 returns correct metadata6598 #template6599 returns correct template6600 #status6601 with no job specified6602 returns the most recent successful pipeline coverage value6603 and no successful pipelines6604 returns nil6605 with a blank job name6606 returns the latest successful pipeline coverage value6607 with an unmatching job name specified6608 returns nil6609 with a matching job name specified6610 returns the pipeline coverage value6611 with a more recent running pipeline6612 returns the running pipeline coverage value6613 with a more recent failed pipeline6614 returns the failed pipeline coverage value6615Users::GroupCalloutsHelper6616 .show_invite_banner?6617 when user has the admin ability for the group6618 when the invite_members_banner has not been dismissed6619 is expected to eq true6620 when the group was just created6621 is expected to eq false6622 with concerning multiple members6623 on current group6624 is expected to eq false6625 on current group that is a subgroup6626 with only one user on parent and this group6627 is expected to eq true6628 when another user is on this group6629 is expected to eq false6630 when another user is on the parent group6631 is expected to eq false6632 when the invite_members_banner has been dismissed6633 is expected to eq false6634 when user does not have admin ability for the group6635 is expected to eq false6636GroupDeployKey6637 is expected to validate that :user cannot be empty/falsy6638 is expected to belong to user required: false6639 is expected to have many groups6640 is of type DeployKey6641 #group_deploy_keys_group_for6642 when this group deploy key is linked to a given group6643 returns the relevant group_deploy_keys_group association6644 when this group deploy key is not linked to a given group6645 is expected to be nil6646 .defined_enums6647 excludes the inherited enum6648 #can_be_edited_for6649 when a given user has the :update_group_deploy_key permission for that key6650 is true6651 when a given user does not have the :update_group_deploy_key permission for that key6652 is true when this user has the :update_group_deploy_key_for_group permission for this group6653 is false when this user does not have the :update_group_deploy_key_for_group permission for this group6654 #group_deploy_keys_groups_for_user6655 when a group has a group deploy key6656 returns the related group_deploy_keys_group association when the user can read the group6657 does not return the related group_deploy_keys_group association when the user cannot read the group6658 .for_groups6659 when group deploy keys are enabled for some groups6660 returns these group deploy keys6661Members::RequestAccessService6662 when source is nil6663 behaves like a service raising Gitlab::Access::AccessDeniedError6664 raises Gitlab::Access::AccessDeniedError6665 when current user cannot request access to the project6666 behaves like a service raising Gitlab::Access::AccessDeniedError6667 raises Gitlab::Access::AccessDeniedError6668 behaves like a service raising Gitlab::Access::AccessDeniedError6669 raises Gitlab::Access::AccessDeniedError6670 when access requests are disabled6671 behaves like a service raising Gitlab::Access::AccessDeniedError6672 raises Gitlab::Access::AccessDeniedError6673 behaves like a service raising Gitlab::Access::AccessDeniedError6674 raises Gitlab::Access::AccessDeniedError6675 when current user can request access to the project6676 behaves like a service creating a access request6677 succeeds6678 returns a <Source>Member6679 behaves like a service creating a access request6680 succeeds6681 returns a <Source>Member6682Gitlab::Database::BackgroundMigration::BatchedMigrationWrapper#perform6683 runs the migration job6684 updates the tracking record in the database6685 when running a job that failed previously6686 increments attempts and updates other fields6687 when the migration job does not raise an error6688 marks the tracking record as succeeded6689 tracks metrics of the execution6690 when the migration job raises an error6691 behaves like an error is raised6692 marks the tracking record as failed6693 tracks metrics of the execution6694 behaves like an error is raised6695 marks the tracking record as failed6696 tracks metrics of the execution6697 behaves like an error is raised6698 marks the tracking record as failed6699 tracks metrics of the execution6700 behaves like an error is raised6701 marks the tracking record as failed6702 tracks metrics of the execution6703 when the batched background migration does not inherit from BatchedMigrationJob6704 runs the job with the correct arguments6705Gitlab::SetupHelper::Praefect6706 .configuration_toml6707 defaults to in memory queue6708 provides database details if wanted6709 fails when pghost is missing6710 uses the provided pghost6711 fails when pgport is missing6712 uses the provided pgport6713 fails when pguser is missing6714 uses the provided pguser6715 defaults to praefect_test if dbname is missing6716 uses the provided dbname6717 .get_config_path6718 defaults to praefect.config.toml6719 takes the provided config_filename6720Metrics::Dashboard::PodDashboardService6721 #raw_dashboard6722 behaves like #raw_dashboard raises error if dashboard loading fails6723 when yaml is too large6724 raises error6725 when yaml loader returns error6726 raises error6727 when yaml is not a hash6728 returns nil6729 .valid_params?6730 is expected to be truthy6731 missing dashboard_path6732 is expected to be falsey6733 non-matching dashboard_path6734 is expected to be falsey6735 #get_dashboard6736 behaves like valid dashboard service response6737 behaves like valid dashboard service response for schema6738 returns a json representation of the dashboard6739 behaves like caches the unprocessed dashboard for subsequent calls6740 is expected to receive load_raw!(*(any args)) 1 time6741 behaves like refreshes cache when dashboard_version is changed6742 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/pod_metrics.yml>) 2 times6743 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric6744 prometheus6745 behaves like dashboard_version contains SHA256 hash of dashboard file content6746 is expected to eq "3a91b32f91b2dd3d90275333c0ea3630b3f3f37c4296ede5b5eef59bf523d66b"6747 .all_dashboard_paths6748 returns the dashboard attributes6749Gitlab::Kubernetes::Helm::V3::BaseCommand6750 HELM_VERSION6751 is expected to match /^3\.\d+\.\d+$/6752 behaves like helm command generator6753 #generate_script6754 returns appropriate command6755 #pod_name6756 is expected to eq "install-test-class-name"6757 behaves like helm command6758 HELM_VERSION6759 is expected to match /\d+\.\d+\.\d+/6760 #env6761 is expected to be a kind of Hash6762 #rbac?6763 rbac is enabled6764 is expected to be truthy6765 rbac is not enabled6766 is expected to be falsey6767 #pod_resource6768 rbac is enabled6769 is expected to be an instance of Kubeclient::Resource6770 generates a pod that uses the tiller serviceAccountName6771 rbac is not enabled6772 is expected to be an instance of Kubeclient::Resource6773 generates a pod that uses the default serviceAccountName6774 #config_map_resource6775 returns a KubeClient resource with config map content for the application6776 #service_account_resource6777 rbac is enabled6778 generates a Kubeclient resource for the tiller ServiceAccount6779 rbac is not enabled6780 generates nothing6781 #cluster_role_binding_resource6782 rbac is enabled6783 generates a Kubeclient resource for the ClusterRoleBinding for tiller6784 binds the account in #service_account_resource6785 rbac is not enabled6786 generates nothing6787Ci::CompareTestReportsService6788 #execute6789 when head pipeline has test reports6790 returns status and data6791 when base and head pipelines have test reports6792 returns status and data6793 when head pipeline has corrupted test reports6794 returns a parsed TestReports success status and failure on the individual suite6795 test failure history6796 loads recent failures on limited test cases to avoid building up a huge DB query6797Projects::ExportJobFinder6798 #execute6799 when queried for a project6800 scopes to the project6801 when queried by job id6802 filters records6803 when queried by status6804 filters records6805 when queried by invalid status6806 raises exception6807BlobViewer::Changelog6808 #render_error6809 when there are no tags6810 returns :no_tags6811 when there are tags6812 returns nil6813Gitlab::SlashCommands::Presenters::IssueMove6814 is expected to be a kind of Hash6815 shows the new issue6816 mentions the old issue and the new issue in the pretext6817Board6818 relationships6819 is expected to belong to project required: false6820 is expected to have many lists order => {:list_type=>:asc, :position=>:asc} dependent => delete_all inverse_of => board6821 is expected to have many destroyable_lists order => {:list_type=>:asc, :position=>:asc} inverse_of => board6822 validations6823 is expected to validate that :name cannot be empty/falsy6824 is expected to validate that :project cannot be empty/falsy6825 constants6826 is expected to be a kind of Integer6827 #order_by_name_asc6828 returns in case-insensitive alphabetical order and then by ascending id6829 #first_board6830 return the first case-insensitive alphabetical board as a relation6831 raises an error when find is done on a non-existent record6832 #disabled_for?6833 for group board6834 behaves like board disabled_for?6835 when current user cannot create non backlog issues6836 is expected to eq true6837 when user can create backlog issues6838 is expected to eq false6839 when block_issue_repositioning is enabled6840 is expected to eq true6841 for project board6842 behaves like board disabled_for?6843 when current user cannot create non backlog issues6844 is expected to eq true6845 when user can create backlog issues6846 is expected to eq false6847 when block_issue_repositioning is enabled6848 is expected to eq true6849ProjectCacheWorker6850 #perform6851 with a non-existing project6852 does nothing6853 with an existing project without a repository6854 updates statistics but does not refresh the method cashes6855 with an existing project6856 refreshes the method caches6857 with statistics disabled6858 does not update the project statistics6859 with statistics6860 updates the project statistics6861 with plain readme6862 refreshes the method caches6863 #update_statistics6864 when a lease could not be obtained6865 does not update the project statistics6866 when a lease could be obtained6867 updates the project statistics twice6868 behaves like an idempotent worker6869 is labeled as idempotent6870 performs multiple times sequentially without raising an exception6871 calls Projects::UpdateStatisticsService service twice6872Gitlab::Ci::Status::Build::Common6873 #has_action?6874 is expected not to have action6875 #has_details?6876 when user has access to read build6877 is expected to have details6878 when user does not have access to read build6879 is expected not to have details6880 #details_path6881 links to the build details page6882 #illustration6883 provides a fallback empty state illustration6884Gitlab::Auth::OAuth::Provider6885 .enabled?6886 when OmniAuth is disabled6887 allows database auth6888 allows LDAP auth6889 does not allow other OmniAuth providers6890 when OmniAuth is enabled6891 allows database auth6892 allows LDAP auth6893 allows other OmniAuth providers6894 .config_for6895 for an LDAP provider6896 when the provider exists6897 returns the config6898 when the provider does not exist6899 returns nil6900 for an OmniAuth provider6901 when the provider exists6902 returns the config6903 merges defaults with the given configuration6904 when the provider does not exist6905 returns nil6906 for an OpenID Connect provider6907 when the provider exists6908 returns the config6909 .label_for6910 when configuration specifies a custom label6911 returns the custom label name6912 when configuration does not specify a custom label6913 when the name does not correspond to a label mapping6914 returns the titleized name6915 when the name corresponds to a label mapping6916 returns the mapped name6917Gitlab::ImportSources6918 .options6919 returns a hash6920 .values6921 returns an array6922 .importer_names6923 returns an array of importer names6924 .importer6925 returns Gitlab::GithubImport::ParallelImporter when given github6926 returns Gitlab::BitbucketImport::Importer when given bitbucket6927 returns Gitlab::BitbucketServerImport::Importer when given bitbucket_server6928 returns Gitlab::GitlabImport::Importer when given gitlab6929 returns Gitlab::FogbugzImport::Importer when given fogbugz6930 returns when given git6931 returns Gitlab::ImportExport::Importer when given gitlab_project6932 returns Gitlab::LegacyGithubImport::Importer when given gitea6933 returns when given manifest6934 returns Gitlab::PhabricatorImport::Importer when given phabricator6935 .title6936 returns GitHub when given github6937 returns Bitbucket Cloud when given bitbucket6938 returns Bitbucket Server when given bitbucket_server6939 returns GitLab.com when given gitlab6940 returns FogBugz when given fogbugz6941 returns Repository by URL when given git6942 returns GitLab export when given gitlab_project6943 returns Gitea when given gitea6944 returns Manifest file when given manifest6945 returns Phabricator when given phabricator6946 imports_repository? checker6947 fails if any importer other than the allowed ones implements this method6948Mutations::Boards::Issues::IssueMoveList6949 #resolve6950 when we only pass from_list_id6951 generates an error6952 when we only pass to_list_id6953 generates an error6954 when required arguments are missing6955 generates an error6956 when the board ID is wrong6957 raises an error6958 when positionInList is given6959 when fromListId and toListId are missing6960 generates an error6961 when move_before_id is also given6962 generates an error6963 when move_after_id is also given6964 generates an error6965 when position_in_list is invalid6966 generates an error6967 when user have access to resources6968 moves and repositions issue6969 when user cannot update issue6970 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable6971Packages::Go::CreatePackageService6972 #execute6973 with no existing package6974 creates a new package6975 behaves like creates a package6976 returns a valid package with 2 file(s)6977 behaves like creates a package file6978 returns a package with a mod file6979 with FIPS mode6980 does not generate file_md56981 behaves like creates a package file6982 returns a package with a zip file6983 with FIPS mode6984 does not generate file_md56985 with an existing package6986 does not create a package or files6987 behaves like creates a package6988 returns a valid package with 2 file(s)6989 behaves like creates a package file6990 returns a package with a mod file6991 with FIPS mode6992 does not generate file_md56993 behaves like creates a package file6994 returns a package with a zip file6995 with FIPS mode6996 does not generate file_md56997shared/wikis/_sidebar.html.haml6998 includes a link to clone the repository6999 the sidebar failed to load7000 reports this to the user7001 The sidebar comes from a custom page7002 does not show an alert7003 renders the wiki content7004 The sidebar comes a list of wiki pages7005 does not show an alert7006 renders the wiki content7007 there is no more to see7008 does not invite the user to view more7009 link to edit the sidebar7010 when the user has edit permission7011 renders the link7012 when the user does not have edit permission7013 does not render the link7014gitlab:dependency_proxy namespace rake task7015 migrate7016 object storage disabled7017 doesn't migrate files7018 object storage enabled7019 migrates local file to object storage7020 an error is raised while migrating7021 fails to migrate a local file that does not exist7022API::Entities::Nuget::Metadatum7023 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}7024 metadatum without project_url7025 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license"}7026 metadatum without license_url7027 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :projectUrl=>"http://sandbox.com/project"}7028 metadatum without icon_url7029 is expected to eq {:licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}7030Gitlab::GithubGistsImport::Importer::GistImporter7031 # order random7032 #execute7033 when success7034 creates expected snippet and snippet repository7035 when file size limit exeeded7036 returns error7037 when invalid attributes7038 raises an error7039 when repository cloning fails7040 returns error7041 when url is invalid7042 when local network is allowed7043 raises error7044 when local network is not allowed7045 raises error7046RuboCop::Cop::RSpec::FactoriesInMigrationSpecs7047 # order random7048 behaves like an offensive factory call7049 registers an offense for FactoryBot.build(:user)7050 registers an offense for FactoryBot.build_list(:user)7051 registers an offense for FactoryBot.create(:user)7052 registers an offense for FactoryBot.create_list(:user)7053 registers an offense for FactoryBot.attributes_for(:user)7054 behaves like an offensive factory call7055 registers an offense for build(:user)7056 registers an offense for build_list(:user)7057 registers an offense for create(:user)7058 registers an offense for create_list(:user)7059 registers an offense for attributes_for(:user)7060Gitlab::SlashCommands::Presenters::Access7061 #access_denied7062 is expected to be a kind of Hash7063 behaves like displays an error message7064 is expected to equal :ephemeral7065 #generic_access_denied7066 is expected to be a kind of Hash7067 behaves like displays an error message7068 is expected to equal :ephemeral7069 #deactivated7070 is expected to be a kind of Hash7071 behaves like displays an error message7072 is expected to equal :ephemeral7073 #not_found7074 is expected to be a kind of Hash7075 tells the user the resource was not found7076 #authorize7077 with an authorization URL7078 is expected to be a kind of Hash7079 tells the user to authorize7080 without authorization url7081 is expected to be a kind of Hash7082 tells the user to authorize7083Gitlab::SidekiqMiddleware::WorkerContext::Client7084 #call7085 applies a context for jobs scheduled in batch7086 root_caller_id7087 uses caller_id of the current context7088 uses root_caller_id instead of caller_id of the current context7089 when the feature category is set in the context_proc7090 takes the feature category from the worker, not the caller7091 takes the feature category from the caller if the worker is not owned7092 does not set any explicit feature category for mailers7093 when the feature category is already set in the surrounding block7094 takes the feature category from the worker, not the caller7095 takes the feature category from the caller if the worker is not owned7096Namespaces::RootStatisticsWorker#perform7097 has the `until_executed` deduplicate strategy7098 has an option to reschedule once if deduplicated7099 with a namespace7100 with remove_aggregation_schedule_lease feature flag enabled7101 behaves like bypasses aggregation schedule7102 executes refresher service7103 does not change AggregationSchedule count7104 when something goes wrong when updating7105 logs the error7106 with remove_aggregation_schedule_lease feature flag disabled7107 executes refresher service7108 deletes namespace aggregated schedule row7109 when something goes wrong when updating7110 does not delete the aggregation schedule7111 logs the error7112 with no namespace7113 does not execute the refresher service7114 with a namespace with no aggregation scheduled7115 with remove_aggregation_schedule_lease feature flag disabled7116 does not execute the refresher service7117 with remove_aggregation_schedule_lease feature flag enabled7118 behaves like bypasses aggregation schedule7119 executes refresher service7120 does not change AggregationSchedule count7121 behaves like an idempotent worker7122 is labeled as idempotent7123 performs multiple times sequentially without raising an exception7124 with remove_aggregation_schedule_lease feature flag disabled7125 deletes one aggregation schedule7126 behaves like worker with data consistency7127 .get_data_consistency_feature_flag_enabled?7128 returns true7129 .get_data_consistency7130 returns correct data consistency7131Gitlab::Ci::Status::Build::Manual7132 #illustration7133 is expected to include :image, :size, :title, and :content7134 when the user can trigger the job7135 when the job has not been played7136 instructs the user about possible actions7137 when the job is retryable7138 instructs the user about possible actions7139 when the user can not trigger the job because of outdated deployment7140 is expected to match /This deployment job does not run automatically and must be started manually, but it's older than the latest deployment, and therefore can't run/7141 when the user can not trigger the job due to another reason7142 informs the user7143 .matches?7144 when build is manual7145 is a correct match7146 when build is not manual7147 does not match7148Mutations::Groups::Update7149 is expected to require graphql authorizations :admin_group7150 #resolve7151 changing shared runners setting7152 user_role: :owner, shared_examples_name: "updating the group shared runners setting"7153 behaves like updating the group shared runners setting7154 updates the group shared runners setting7155 returns no errors7156 with invalid params7157 doesn't update the shared_runners_setting7158 returns an error7159 user_role: :developer, shared_examples_name: "denying access to group shared runners setting"7160 behaves like denying access to group shared runners setting7161 raises Gitlab::Graphql::Errors::ResourceNotAvailable7162 user_role: :reporter, shared_examples_name: "denying access to group shared runners setting"7163 behaves like denying access to group shared runners setting7164 raises Gitlab::Graphql::Errors::ResourceNotAvailable7165 user_role: :guest, shared_examples_name: "denying access to group shared runners setting"7166 behaves like denying access to group shared runners setting7167 raises Gitlab::Graphql::Errors::ResourceNotAvailable7168 user_role: :anonymous, shared_examples_name: "denying access to group shared runners setting"7169 behaves like denying access to group shared runners setting7170 raises Gitlab::Graphql::Errors::ResourceNotAvailable7171Mutations::Todos::MarkAllDone7172 is expected to require graphql authorizations :update_user7173 #resolve7174 marks all pending todos as done7175 behaves as expected if there are no todos for the requesting user7176 when user is not logged in7177 fails with the expected error7178Gitlab::Ci::Pipeline::Chain::AssignPartition7179 # order random7180 #perform!7181 assigns partition_id to pipeline7182 with parent-child pipelines7183 assigns partition_id to pipeline7184Gitlab::Utils::LinkHeaderParser7185 # order random7186 #parse7187 with a valid header7188 is expected to eq {:next=>{:uri=>#<URI::HTTP http://sandbox.org/next>}}7189 with multiple links7190 is expected to eq {:next=>{:uri=>#<URI::HTTP http://sandbox.org/next>}, :previous=>{:uri=>#<URI::HTTP http://sandbox.org/previous>}}7191 with an incomplete uri7192 is expected to eq {}7193 with no rel7194 is expected to eq {}7195 with multiple rel elements7196 is expected to eq {:next=>{:uri=>#<URI::HTTP http://sandbox.org/next>}}7197 when the url is too long7198 is expected to eq {}7199 with nil header7200 is expected to eq {}7201 with empty header7202 is expected to eq {}7203Gitlab::ImportExport::Project::RelationSaver7204 #save7205 when relation is the root node7206 serializes the root node as a json file in the export path7207 serializes only allowed attributes7208 successfuly serializes without errors7209 when relation is a child node7210 serializes the child node as a ndjson file in the export path inside the project folder7211 serializes only allowed attributes7212 successfuly serializes without errors7213 when relation name is not supported7214 returns false and register the error7215 when an exception occurs during serialization7216 returns false and register the exception error message7217TimeZoneHelper7218 #timezone_data7219 with short format7220 matches schema7221 formats for display7222 with abbr format7223 matches schema7224 formats for display7225 with full format7226 matches schema7227 formats for display7228 with unknown format7229 raises an exception7230 #local_time7231 when timezone is `nil`7232 returns `nil`7233 when timezone is blank7234 returns `nil`7235 when a valid timezone is passed7236 returns local time7237 when an invalid timezone is passed7238 returns local time using the configured default timezone (UTC in this case)7239 #local_timezone_instance7240 when timezone is `nil`7241 returns the system timezone instance7242 when timezone is blank7243 returns the system timezone instance7244 when a valid timezone is passed7245 returns the local time instance7246 when an invalid timezone is passed7247 returns the system timezone instance7248TaskListToggleService7249 checks Task 17250 unchecks Item 17251 checks task in loose list7252 checks task with no-break space7253 returns false if line_source does not match the text7254 tolerates \r\n line endings7255 returns false if markdown is nil7256 returns false if markdown_html is nil7257 properly handles tasks in a blockquote7258 properly handles a GitLab blockquote7259 when clicking an embedded subtask7260 properly handles it inside an unordered list7261 properly handles it inside an ordered list7262LegacyBulkInsert7263 #bulk_insert7264 does nothing with empty rows7265 uses the ordering from the first row7266 quotes column names7267 quotes values7268 does not quote values of a column in the disable_quote option7269 does not quote values of columns in the disable_quote option7270 handles non-UTF-8 data7271 when using PostgreSQL7272 allows the returning of the IDs of the inserted rows7273 allows setting the upsert to do nothing7274PipelineTestReportBuilder7275 # order random7276 #test_report_for_pipeline7277 for previous pipeline7278[PipelineTestReportBuilder] Discovered previous failed pipeline (#1) for MR!1162707279[PipelineTestReportBuilder] 1 failed builds in test stage found...7280 fetches builds from pipeline related to MR7281 canonical pipeline7282 no previous pipeline7283 returns empty hash7284 no failed test builds7285[PipelineTestReportBuilder] Discovered previous failed pipeline (#1) for MR!1162707286[PipelineTestReportBuilder] 0 failed builds in test stage found...7287 returns a hash with an empty "suites" array7288 failed pipeline and failed test builds7289[PipelineTestReportBuilder] Discovered previous failed pipeline (#1) for MR!1162707290[PipelineTestReportBuilder] 1 failed builds in test stage found...7291 returns populated test list for suites7292 when receiving a server error7293 when response code is 4047294/builds/gitlab-org/gitlab/spec/scripts/pipeline_test_report_builder_spec.rb:163: warning: constant Net::HTTPServerException is deprecated7295[PipelineTestReportBuilder] Discovered previous failed pipeline (#1) for MR!1162707296/builds/gitlab-org/gitlab/scripts/pipeline_test_report_builder.rb:107: warning: constant Net::HTTPServerException is deprecated7297[PipelineTestReportBuilder] Artifacts not found. They may have expired. Skipping this build.7298[PipelineTestReportBuilder] 0 failed builds in test stage found...7299 continues without the missing reports7300 when response code is unexpected7301/builds/gitlab-org/gitlab/spec/scripts/pipeline_test_report_builder_spec.rb:163: warning: constant Net::HTTPServerException is deprecated7302[PipelineTestReportBuilder] Discovered previous failed pipeline (#1) for MR!1162707303/builds/gitlab-org/gitlab/scripts/pipeline_test_report_builder.rb:107: warning: constant Net::HTTPServerException is deprecated7304 raises HTTPServerException7305 for latest pipeline7306[PipelineTestReportBuilder] Discovered latest failed pipeline (#3) for MR!1162707307[PipelineTestReportBuilder] 1 failed builds in test stage found...7308 fetches builds from pipeline related to MR7309 #previous_pipeline7310 pipeline in a fork project7311 returns fork pipeline7312 pipeline in target project7313 returns failed pipeline7314WhereComposite7315 .where_composite7316 requires at least one permitted key7317 requires all arguments to match the permitted_keys7318 attaches a key error as cause if a key is missing7319 returns an empty relation if there are no arguments7320 permits extra arguments7321 can handle multiple fields7322 is equivalent to ids.map { |attrs| model.find_by(attrs) }7323 constructs (A&B) for one argument7324 constructs (A&B) OR (C&D) for two arguments7325 constructs (A&B) OR (C&D) OR (E&F) for three arguments7326 large sets of IDs7327 constructs correct trees of constraints7328 raises errors if too many IDs are passed7329Gitlab::Email::ServiceDeskReceiver7330 when the email contains a valid email address7331 when in a To header7332 finds the service desk key7333 when the email contains a valid email address in a header7334 when in a Delivered-To header7335 finds the service desk key7336 when in a Envelope-To header7337 finds the service desk key7338 when in a X-Envelope-To header7339 finds the service desk key7340 when the email contains no key in the To header and contains reference header with no key7341 sends a rejection email7342 when the email does not contain a valid email address7343 raises an error7344Mutations::Achievements::Create7345 # order random7346 is expected to require graphql authorizations :admin_achievement7347 #resolve7348 when the user does not have permission7349 raises an error7350 when the user has permission7351 creates contact with correct values7352 when the params are invalid7353 returns the validation error7354Gitlab::Database::Partitioning::DetachedPartitionDropper7355 #perform7356 when the partition should not be dropped yet7357 does not drop the partition7358 with a partition to drop7359 drops the partition7360 removing foreign keys7361 removes foreign keys from the table before dropping it7362 does not remove foreign keys from the parent table7363 when another process drops the foreign key7364 skips dropping that foreign key7365 when another process drops the partition7366 skips dropping the foreign key7367 when another process drops the table while the first waits for a lock7368 skips the table7369 when the partition to drop is still attached to its table7370 does not drop the partition, but does remove the DetachedPartition entry7371 when another process removes the entry before this process7372 does nothing7373 with multiple partitions to drop7374 drops both partitions7375 when the first drop returns an error7376 still drops the second partition7377Gitlab::Ci::Input::Arguments::Default7378 # order random7379 returns an error if the argument has not been fabricated correctly7380 returns a default value if user-provider one is unknown7381 returns an empty value if user-provider input is empty7382 returns a user-provided value if it is present7383 .matches?7384 matches specs with default configuration7385 does not match specs different configuration keyword7386Integrations::IssueTrackerData7387 behaves like Integrations::BaseDataFields7388 associations7389 is expected to belong to integration required: false7390 #activated?7391 with integration7392 with value set to false7393 is expected to eq false7394 with value set to true7395 is expected to eq true7396 without integration7397 is expected to eq false7398 #to_database_hash7399 does not include certain attributes7400 encrypted attributes7401 is expected to contain exactly :issues_url, :new_issue_url, and :project_url7402Gitlab::Config::Entry::Undefined7403 #leaf?7404 is leaf node7405 #valid?7406 is always valid7407 #errors7408 is does not contain errors7409 #value7410 returns nil7411 #relevant?7412 is not relevant7413 #specified?7414 is not defined7415 #type7416 returns nil7417Gitlab::UsageDataCounters::WebIdeCounter7418 commits counter7419 behaves like counter examples7420 increments counter and return the total count7421 merge requests counter7422 behaves like counter examples7423 increments counter and return the total count7424 views counter7425 behaves like counter examples7426 increments counter and return the total count7427 terminals counter7428 behaves like counter examples7429 increments counter and return the total count7430 pipelines counter7431 behaves like counter examples7432 increments counter and return the total count7433 .totals7434 can report all totals7435Gitlab::Config::Entry::Validators::NestedArrayHelpers7436 #validate_nested_array7437 with valid values7438 with arrays of integers7439 is expected to be empty7440 with nested arrays of integers7441 is expected to be empty7442 with invalid values7443 with single integers7444 is expected to eq {:value=>["is invalid"]}7445 when it is nested over the limit7446 is expected to eq {:value=>["is invalid"]}7447 when a value in the array is not valid7448 is expected to eq {:value=>["is invalid"]}7449 when a value in the nested array is not valid7450 is expected to eq {:value=>["is invalid"]}7451Gitlab::Database::UnidirectionalCopyTrigger7452 #name7453 when a single column name is given7454 returns the trigger name7455 when multiple column names are given7456 returns the trigger name7457 when a different number of new and old column names are given7458 raises an error7459 #create7460 when a single column name is given7461 creates the trigger and function7462 properly copies the column data using the trigger function7463 when multiple column names are given7464 creates the trigger and function to set all the columns7465 properly copies the columns using the trigger function7466 when a custom trigger name is given7467 creates the trigger and function with the custom name7468 when the trigger function already exists7469 does not raise an error7470 when a different number of new and old column names are given7471 raises an error7472 #drop7473 drops the trigger and function for the given arguments7474 when the trigger does not exist7475 does not raise an error7476ProgrammingLanguagesHelper7477 # order random7478 .programming_languages7479 callings ProgrammingLanguage.most_popular7480 .search_language_placeholder7481 with no `language` param7482 returns a placeholder7483 with a `language` param7484 when invalid7485 returns a placeholder7486 when valid7487 returns the chosen language7488 .language_state_class7489 when language param matches7490 returns `is-active`7491 when language param does not match7492 returns ``7493Tooling::Mappings::ViewToSystemSpecsMappings7494 # order random7495 #execute7496 when the changed files are not view files7497 behaves like writes nothing to the output file7498 writes nothing to the output file7499 when the changed files are view files7500 when the view files do not exist on disk7501 behaves like writes nothing to the output file7502 writes nothing to the output file7503 when the view files exist on disk7504 when no feature match the view7505 behaves like writes nothing to the output file7506 writes nothing to the output file7507 when there is a feature spec that exactly matches the view7508 writes that feature spec to the output file7509 when there is a feature spec that matches the parent folder of the view7510 writes all of the feature specs for the parent folder to the output file7511Gitlab::UsageDataCounters::IpynbDiffActivityCounter7512 #track_note_created_in_ipynb_diff7513 note is for commit7514 behaves like an action that tracks events7515 is expected to change `event_count(action)` by 2 and change `event_count(per_user_action)` by 17516 behaves like an action that tracks events7517 is expected to change `event_count(action)` by 2 and change `event_count(per_user_action)` by 17518 behaves like an action that does not track events7519 is expected to change `event_count(action)` by 0 and change `event_count(per_user_action)` by 07520 note is for MR7521 behaves like an action that tracks events7522 is expected to change `event_count(action)` by 2 and change `event_count(per_user_action)` by 17523 behaves like an action that tracks events7524 is expected to change `event_count(action)` by 2 and change `event_count(per_user_action)` by 17525 behaves like an action that does not track events7526 is expected to change `event_count(action)` by 0 and change `event_count(per_user_action)` by 07527 note is for neither MR nor Commit7528 behaves like an action that does not track events7529 is expected to change `event_count(action)` by 0 and change `event_count(per_user_action)` by 07530 behaves like an action that does not track events7531 is expected to change `event_count(action)` by 0 and change `event_count(per_user_action)` by 07532 behaves like an action that does not track events7533 is expected to change `event_count(action)` by 0 and change `event_count(per_user_action)` by 07534API::Entities::BasicProjectDetails7535 #default_branch7536 delegates to Project#default_branch_or_main7537 anonymous user7538 is not included7539 #readme_url #forks_count7540 public project with repository is accessible by the user7541 current_user: member_user, project: project_without_restriction7542 exposes readme_url and forks_count7543 current_user: non_member_user, project: project_without_restriction7544 exposes readme_url and forks_count7545 current_user: nil, project: project_without_restriction7546 exposes readme_url and forks_count7547 current_user: member_user, project: project_with_repository_restriction7548 exposes readme_url and forks_count7549 public project with repository is not accessible by the user7550 current_user: non_member_user, project: project_with_repository_restriction7551 does not expose readme_url and forks_count7552 current_user: nil, project: project_with_repository_restriction7553 does not expose readme_url and forks_count7554Gitlab::Git::Patches::Collection7555 #size7556 combines the size of the patches7557 #valid_size?7558 is not valid if the total size is bigger than 2MB7559ProjectGroupLinkPolicy7560 # order random7561 when user is not a group owner7562 when user is a project maintainer7563 can admin group_project_link7564 when user is not a project maintainer7565 cannot admin group_project_link7566 when the user is a group owner7567 when user is not project maintainer7568 can admin group_project_link7569 when user is a project maintainer7570 can admin group_project_link7571Ci::PipelineArtifacts::CodeQualityMrDiffPresenter7572 #for_files7573 when code quality has data7574 when filenames is empty7575 returns hash without quality7576 when filenames do not match code quality data7577 returns hash without quality7578 when filenames matches code quality data7579 when asking for one filename7580 returns quality for the given filename7581 when asking for multiple filenames7582 returns quality for the given filenames7583Resolvers::ErrorTracking::SentryDetailedErrorResolver7584 is expected to have nullable GraphQL type SentryDetailedError7585 #resolve7586 fetches the data via the sentry API7587 when error matches7588 resolves to a detailed error7589 assigns the gitlab project7590 when id does not match issue7591 resolves to nil7592Types::DiffRefsType7593 is expected to eq "DiffRefs"7594 is expected to have graphql fields :head_sha, :base_sha, and :start_sha7595 is expected to be non null7596 is expected not to be non null7597 is expected to be non null7598Gitlab::DatabaseImporters::CommonMetrics::PrometheusMetric7599 group enum equals ::PrometheusMetric7600 .group_titles equals ::PrometheusMetric7601LicenseTemplateFinder7602 #execute7603 behaves like filters by popular category7604 popular: true7605 only returns popular licenses7606 popular: false7607 only returns unpopular licenses7608 popular: nil7609 returns all licenses known by the Licensee gem7610 correctly copies all attributes7611 #template_names7612 behaves like filters by popular category7613 popular: true7614 only returns popular licenses7615 popular: false7616 only returns unpopular licenses7617 popular: nil7618 returns all licenses known by the Licensee gem7619 template names hash keys7620 has all the expected keys7621Banzai::Filter::AsciiDocPostProcessingFilter7622 adds class for elements with data-math-style7623 adds class for elements with data-mermaid-style7624 keeps content when no data-math-style found7625Gitlab::GlRepository7626 .parse7627 parses a project gl_repository7628 parses a project wiki gl_repository7629 parses a snippet gl_repository7630 parses a design gl_repository7631 throws an argument error on an invalid gl_repository type7632 throws an argument error on an invalid gl_repository id7633Gitlab::Usage::Metrics::Instrumentations::CountProjectsWithMlCandidatesMetric7634 # order random7635 behaves like a correct instrumented metric value and query7636 behaves like a correct instrumented metric value7637 has correct value7638 behaves like a correct instrumented metric query7639 has correct generate query7640Gitlab::Usage::Metrics::Instrumentations::CountUsersCreatingIssuesMetric7641 with all time frame7642 behaves like a correct instrumented metric value and query7643 behaves like a correct instrumented metric value7644 has correct value7645 behaves like a correct instrumented metric query7646 has correct generate query7647 for 28d time frame7648 behaves like a correct instrumented metric value and query7649 behaves like a correct instrumented metric value7650 has correct value7651 behaves like a correct instrumented metric query7652 has correct generate query7653Gitlab::Usage::Metrics::Instrumentations::CountProjectsWithMonitorEnabledMetric7654 # order random7655 behaves like a correct instrumented metric value and query7656 behaves like a correct instrumented metric value7657 has correct value7658 behaves like a correct instrumented metric query7659 has correct generate query7660Gitlab::Email::Message::InProductMarketing7661 .for7662 when track exists7663 track: :create, expected_class: Gitlab::Email::Message::InProductMarketing::Create7664 is expected to eq Gitlab::Email::Message::InProductMarketing::Create7665 track: :team_short, expected_class: Gitlab::Email::Message::InProductMarketing::TeamShort7666 is expected to eq Gitlab::Email::Message::InProductMarketing::TeamShort7667 track: :trial_short, expected_class: Gitlab::Email::Message::InProductMarketing::TrialShort7668 is expected to eq Gitlab::Email::Message::InProductMarketing::TrialShort7669 track: :admin_verify, expected_class: Gitlab::Email::Message::InProductMarketing::AdminVerify7670 is expected to eq Gitlab::Email::Message::InProductMarketing::AdminVerify7671 track: :verify, expected_class: Gitlab::Email::Message::InProductMarketing::Verify7672 is expected to eq Gitlab::Email::Message::InProductMarketing::Verify7673 track: :trial, expected_class: Gitlab::Email::Message::InProductMarketing::Trial7674 is expected to eq Gitlab::Email::Message::InProductMarketing::Trial7675 track: :team, expected_class: Gitlab::Email::Message::InProductMarketing::Team7676 is expected to eq Gitlab::Email::Message::InProductMarketing::Team7677 when track does not exist7678 raises error7679admin/sessions/new.html.haml7680 internal admin user7681 shows enter password form7682 warns authentication not possible if password not set7683 omniauth authentication enabled7684 shows omniauth form7685 ldap authentication7686 is shown when enabled7687 is not shown when LDAP sign in is disabled7688Projects::UpdateRepositoryStorageWorker7689 behaves like an update storage move worker7690 has the `until_executed` deduplicate strategy7691 #perform7692 without repository storage move7693 calls the update repository storage service7694 with repository storage move7695 calls the update repository storage service7696SystemCheck::App::GitUserDefaultSSHConfigCheck7697 only whitelists safe files7698 #skip?7699 user_exists: true, home_dir_exists: true7700 is expected to eq false7701 user_exists: true, home_dir_exists: false7702 is expected to eq true7703 user_exists: false, home_dir_exists: true7704 is expected to eq true7705 user_exists: false, home_dir_exists: false7706 is expected to eq true7707 #check?7708 fails if a forbidden file exists7709 succeeds if the SSH directory doesn't exist7710 succeeds if all the whitelisted files exist7711 #show_error7712 outputs error information7713Types::ReleaseLinksType7714 is expected to require graphql authorizations :read_release7715 has the expected fields7716 individual field authorization7717 openedMergeRequestsUrl7718 has valid authorization7719 mergedMergeRequestsUrl7720 has valid authorization7721 closedMergeRequestsUrl7722 has valid authorization7723 openedIssuesUrl7724 has valid authorization7725 closedIssuesUrl7726 has valid authorization7727 editUrl7728 has valid authorization7729Gitlab::Auth::KeyStatusChecker7730 #show_console_message?7731 for an expired key7732 is expected to eq true7733 for a key expiring in the next 7 days7734 is expected to eq true7735 for a key expiring after the next 7 days7736 is expected to eq false7737 for a key that never expires7738 is expected to eq false7739 #console_message7740 for an expired key7741 is expected to eq "INFO: Your SSH key has expired. Please generate a new key."7742 for a key expiring in the next 7 days7743 is expected to eq "INFO: Your SSH key is expiring soon. Please generate a new key."7744 for a key expiring after the next 7 days7745 is expected to be nil7746 for a key that never expires7747 is expected to be nil7748Gitlab::QuickActions::SpendTimeAndDateSeparator7749 #execute7750 invalid paramenter in arg line7751 empty arg line7752 behaves like arg line with invalid parameters7753 return nil7754 future date in arg line7755 behaves like arg line with invalid parameters7756 return nil7757 unparseable date(invalid mixes of delimiters)7758 behaves like arg line with invalid parameters7759 return nil7760 trash in arg line7761 return nil as time value7762 only time present in arg line7763 behaves like arg line with valid parameters7764 return time and date array7765 simple time with date in arg line7766 behaves like arg line with valid parameters7767 return time and date array7768 composite time with date in arg line7769 behaves like arg line with valid parameters7770 return time and date array7771Gitlab::SampleDataTemplate7772 .all7773 returns all templates7774 .find7775 when there is a match7776 is expected to be a kind of Gitlab::SampleDataTemplate7777 when there is no match7778 is expected to equal nil7779 .archive_directory7780 is expected to be a kind of Pathname7781 validate all templates7782 sample has a valid archive7783 with valid parameters7784 can be imported7785Gitlab::Analytics::UsageTrends::WorkersArgumentBuilder7786 when no measurement identifiers are given7787 returns empty array7788 when measurement identifiers are given7789 returns worker arguments7790 when bogus measurement identifiers are given7791 skips bogus measurement identifiers7792 when custom min and max queries are present7793 uses custom min/max for ids7794ActsAsTaggableOn::Tag7795 .find_or_create_all_with_like_by_name7796 creates a tag7797 returns the Tag record7798 some tags already existing7799 creates only the missing tag7800 returns the Tag records7801 all tags already existing7802 does not create new tags7803 returns the Tag records7804Gitlab::Ci::Config::External::Mapper::LocationExpander7805 # order random7806 #process7807 when there are project files7808 returns expanded locations7809 when there are local files7810 returns expanded locations7811 when there are other files7812 returns the same location7813RuboCop::Cop::Gitlab::FeatureAvailableUsage7814 # order random7815 no arguments given7816 does not flag the use of Gitlab::Sourcegraph.feature_available? with no arguments7817 one argument given7818 does not flag the use of License.feature_available?7819 flags the use with a dynamic feature as nil7820 flags the use with an OSS project feature7821 flags the use with a feature that is not a project feature7822 two arguments given7823 does not flag the use with an OSS project feature7824 does not flag the use with an EE project feature7825 flags the use with a dynamic feature as a method call with two args7826Ci::Pipelines::HookService7827 #execute_hooks7828 HOOK_NAME7829 is expected to eq :pipeline_hooks7830 with pipeline hooks enabled7831 calls pipeline.project.execute_hooks and pipeline.project.execute_integrations7832 with pipeline hooks and integrations disabled7833 does not call pipeline.project.execute_hooks and pipeline.project.execute_integrations7834Gitlab::Template::MetricsDashboardTemplate7835 .all7836 combines the globals and rest7837 #content7838 loads the full file7839 behaves like file template shared examples7840 .all7841 strips the .metrics-dashboard.yml suffix7842 ensures that the template name is used exactly once7843 .by_category7844 returns sorted results7845 .find7846 returns nil if the file does not exist7847 returns the corresponding object of a valid file7848 #<=>7849 sorts lexicographically7850Resolvers::Metrics::DashboardResolver7851 #resolve7852 for environment7853 use ActiveModel class to find matching dashboard7854 without parent object7855 returns nil7856Gitlab::Ssh::Commit7857 #signature7858 returns the cached signature on multiple calls7859 when all expected data is present7860 calls signature verifier and uses returned attributes7861 when signed_by_key is nil7862 creates signature without a key_id7863 #update_signature!7864 updates verification status7865Ci::BridgePresenter7866 presents information about recoverable state7867 presents the detailed status for the user7868Gitlab::ExceptionsApp7869 .call7870 for a 500 error7871 for an HTML request7872 fills in the request ID7873 HTML-escapes the request ID7874 returns an empty 500 when the 500.html page cannot be found7875 for a JSON request7876 does not include the request ID7877 for a 404 error7878 returns a 404 response that does not include the request ID7879Doorkeeper::OpenidConnect::DiscoveryController routing7880 to #provider7881 to #webfinger7882 to #keys7883Doorkeeper::OpenidConnect::UserinfoController routing7884 to #show7885 to #show7886Gitlab::Ci::Pipeline::Expression::Token7887 #value7888 returns raw token value7889 #lexeme7890 returns raw token lexeme7891 #build7892 delegates to lexeme after adding a value7893 allows passing only required arguments7894 #type7895 delegates type query to the lexeme7896 #to_lexeme7897 returns raw lexeme syntax component name7898IssuableLink7899 .inverse_link_type7900 returns the inverse type of link7901 .issuable_type7902 when opposite relation already exists7903 raises NotImplementedError when performing validations7904 .available_link_types7905 is expected to contain exactly "relates_to", "blocks", and "is_blocked_by"7906RuboCop::Cop::PreferClassMethodsOverModule7907 # order random7908 doesn't flag violation when module is not extending ActiveSupport::Concern7909 doesn't flag violation when not using either class_methods or ClassMethods7910 doesn't flag violation when ClassMethods is used inside a class7911 doesn't flag violation when using class_methods7912 flags violation when using module ClassMethods and corrects7913pages storage check7914 when local store does not exist yet7915 is expected to be truthy7916 when pages is not enabled7917 is expected to be truthy7918 when pages is enabled7919 local_storage_enabled: false, object_storage_enabled: false, raises_exception: true7920 validates pages storage configuration7921 local_storage_enabled: false, object_storage_enabled: true, raises_exception: false7922 validates pages storage configuration7923 local_storage_enabled: true, object_storage_enabled: false, raises_exception: false7924 validates pages storage configuration7925 local_storage_enabled: true, object_storage_enabled: true, raises_exception: false7926 validates pages storage configuration7927 local_storage_enabled: 1, object_storage_enabled: 0, raises_exception: false7928 validates pages storage configuration7929 local_storage_enabled: nil, object_storage_enabled: nil, raises_exception: true7930 validates pages storage configuration7931Gitlab::DependencyLinker::GemspecLinker7932 .support?7933 supports *.gemspec7934 does not support other files7935 #link7936 does not link the gem name7937 links the license7938 links the homepage7939 links dependencies7940Gitlab::Tracking::Destinations::SnowplowMicro7941 #hostname7942 when snowplow_micro config is set7943 returns proper URI7944 when gitlab config has https scheme7945 returns proper URI7946 when snowplow_micro config is not set7947 returns localhost hostname7948 #options7949 includes protocol with the correct value7950 includes port with the correct value7951 includes forceSecureTracker with value false7952Packages::Composer::CacheFile7953 relationships7954 is expected to belong to group required: false7955 is expected to belong to namespace required: false7956 validations7957 is expected to validate that :namespace cannot be empty/falsy7958 scopes7959 .with_namespace7960 is expected to eq [#<Packages::Composer::CacheFile id: 1, created_at: "2023-03-30 12:03:50.165046328 +0000", updated_at...00", delete_at: nil, namespace_id: 3175, file_store: 1, file: "123456.json", file_sha256: "123456">]7961 .with_sha7962 is expected to eq [#<Packages::Composer::CacheFile id: 1, created_at: "2023-03-30 12:03:50.165046328 +0000", updated_at...00", delete_at: nil, namespace_id: 3175, file_store: 1, file: "123456.json", file_sha256: "123456">]7963RuboCop::Cop::CodeReuse::Presenter7964 # order random7965 flags the use of a Presenter in a model class method7966 flags the use of a Presenter in a worker7967 flags the use of a Presenter in a Serializer7968 flags the use of a Presenter in a Service class7969 flags the use of a Presenter in a model instance method7970 flags the use of a Service class in a Presenter7971 flags the use of a Presenter in a Finder7972Snippets::ScheduleBulkRepositoryShardMovesService7973 behaves like moves repository shard in bulk7974 #execute7975 schedules container repository storage moves7976 read-only repository7977 does not get scheduled7978 .enqueue7979 defers to the worker7980Integrations::Pivotaltracker7981 Validations7982 when integration is active7983 is expected to validate that :token cannot be empty/falsy7984 when integration is inactive7985 is expected not to validate that :token cannot be empty/falsy7986 Execute7987 posts correct message7988 when allowed branches is specified7989 posts message if branch is in the list7990 does not post message if branch is not in the list7991Packages::Generic::PackageFinder7992 #execute!7993 finds package by name and version7994 ignores packages with same name but different version7995 does not find uninstallable packages7996 raises ActiveRecord::RecordNotFound if package is not found7997Gitlab::PhabricatorImport::WorkerState7998 #add_job7999 increments the counter for jobs8000 #remove_job8001 decrements the counter for jobs8002 #running_count8003 reads the value8004 returns 0 when nothing was set8005RuboCop::Cop::UsageData::DistinctCountByLargeForeignKey8006 # order random8007 when calling by allowed key8008 does not register an offense with symbol8009 does not register an offense with string8010 when counting by disallowed key8011 registers an offense8012 does not register an offense when batch is false8013 registers an offense when batch is true8014Packages::Rpm::RepositoryMetadata::BuildRepomdXmlService8015 # order random8016 #execute8017 generate valid xml8018 has all data info8019 when data values has unexpected keys8020 ignores wrong keys8021Applications::CreateService8022 when scopes are present8023 is expected to change `Doorkeeper::Application.count` by 18024 when scopes are missing8025 is expected not to change `Doorkeeper::Application.count`8026 includes blank scopes error message8027Resolvers::CommitPipelinesResolver8028 resolves pipelines for commit and ref8029Gitlab::Ci::Build::Rules::Rule::Clause8030 .fabricate8031 when type is valid8032 type: "changes", result: Gitlab::Ci::Build::Rules::Rule::Clause::Changes8033 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Changes8034 type: "exists", result: Gitlab::Ci::Build::Rules::Rule::Clause::Exists8035 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Exists8036 type: "if", result: Gitlab::Ci::Build::Rules::Rule::Clause::If8037 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::If8038 when type is invalid8039 is expected to be nil8040 when type is 'variables'8041 is expected to be nil8042Types::ContainerRepositoryTagType8043 is expected to eq "ContainerRepositoryTag"8044 is expected to eq "A tag from a container repository"8045 is expected to require graphql authorizations :read_container_image8046 is expected to have graphql fields :name, :path, :location, :digest, :revision, :short_revision, :total_size, :created_at, and :can_delete8047GroupDeployKeyPolicy8048 edit a group deploy key8049 when the user does not own the group deploy key8050 is expected to be disallowed :update_group_deploy_key8051 when the user owns the group deploy key8052 is expected to be allowed :update_group_deploy_key8053API::Validations::Validators::ProjectPortable8054 valid portable8055 does not raise a validation error8056 empty params8057 raises a validation error8058 not portable8059 raises a validation error8060ShaValidator8061 with empty value8062 does not add any error if value is empty8063 with valid sha8064 does not add any error8065 with invalid sha8066 adds error to the record8067ReleaseSerializer8068 #represent8069 when a single object is being serialized8070 serializes the label object8071 does not expose git-sha as sensitive information8072 when multiple objects are being serialized8073 serializes the array of releases8074Gitlab::Usage::Metrics::Instrumentations::CountUserAuthMetric8075 # order random8076 with 28d time frame8077 behaves like a correct instrumented metric value8078 has correct value8079 with all time frame8080 behaves like a correct instrumented metric value8081 has correct value8082Types::Ci::ManualVariableType8083 is expected to contain exactly Types::Ci::VariableInterface8084 is expected to have graphql fields :environment_scope8085Gitlab::Auth::Saml::OriginValidator8086 #store_origin8087 stores the SAML request ID8088 #gitlab_initiated?8089 returns false if InResponseTo is not present8090 returns false if InResponseTo does not match stored value8091 returns true if InResponseTo matches stored value8092DiffViewer::Image8093 .can_render?8094 returns false if both old and new blob are absent8095 returns true if the old blob is present8096 returns true if the new blob is present8097 returns true if both old and new blobs are present8098Gitlab::ApplicationRateLimiter::IncrementPerActionedResource8099 #increment8100 increments per resource8101 sets time to live (TTL) for the key8102 #read8103 returns 0 when there is no data8104 returns the correct value8105ArtifactsHelper8106 # order random8107 #artifacts_app_data8108 returns expected data8109 can_destroy_artifacts8110 returns false without permission8111 returns true when user has permission8112Gitlab::Ci::Build::Hook8113 # order random8114 .from_hooks8115 initializes and returns hooks8116RuboCop::Cop::GroupPublicOrVisibleToUser8117 # order random8118 does not flag the use of public_or_visible_to_user with a constant that is not Group8119 flags the use of Group.public_or_visible_to_user with a constant receiver8120 does not flag the use of Group.public_or_visible_to_user with a send receiver8121BulkImports::GetImportableDataService8122 #execute8123 returns version_validation and a response8124Types::Achievements::AchievementType8125 # order random8126 is expected to have graphql fields "id", "namespace", "name", "avatar_url", "description", "created_at", "updated_at", and "user_achievements"8127 is expected to require graphql authorizations :read_achievement8128 is expected to eq "Achievement"8129 #avatar_url8130 calls Achievement#avatar_url(only_path: false)8131Packages::Composer::CacheCleanupWorker8132 #perform8133 does nothing8134Gitlab::PerformanceBar::RedisAdapterWhenPeekEnabled8135 #save8136 stores request id and enqueues stats job8137 when performance_bar_stats is disabled8138 ignores stats processing for the request8139 when exclusive lease has been already taken8140 stores request id but does not enqueue any job8141WebIdeButtonHelper8142 #show_pipeline_editor_button?8143 when can view pipeline editor8144 when path is ci config path8145 returns true8146 when path is not config path8147 returns false8148 when can not view pipeline editor8149 returns false8150ProductAnalytics::EventParams8151 .parse_event_params8152 extracts all params from raw event8153 .has_required_params?8154 aid and eid are present8155 is expected to be truthy8156 aid and eid are missing8157 is expected to be falsey8158 eid is missing8159 is expected to be falsey8160MoveToProjectEntity8161 #as_json8162 includes the project ID8163 includes the human-readable full path8164 includes the full path8165Gitlab::Database::TablesSortedByForeignKeys8166 # order random8167 #execute8168 returns the tables sorted by the foreign keys dependency8169 returns both tables together if they are strongly connected8170Types::Snippets::BlobActionInputType8171 is expected to eq "SnippetBlobActionInputType"8172 has the correct arguments8173 sets the type of action argument to BlobActionEnum8174Types::Ci::RunnerMachineType8175 # order random8176 is expected to require graphql authorizations :read_runner_machine8177 contains attributes related to a runner machine8178 is expected to eq "CiRunnerMachine"8179Gitlab::Webpack::GraphqlKnownOperations8180 .load8181 when file loader returns8182 returns memoized value8183 when file loader errors8184 returns empty array8185Gitlab::GrapeLogging::Loggers::FilterParameters8186 # order random8187 .parameters8188 when the log_safety setting is provided8189 includes safe parameters, and filters unsafe ones8190 when the log_safety is not provided8191 behaves like the normal parameter filter8192SystemCheck::App::HashedStorageEnabledCheck8193 #check?8194 fails when hashed storage is disabled8195 succeeds when hashed storage is enabled8196Types::Ci::Config::NeedType8197 is expected to eq "CiConfigNeed"8198 exposes the expected fields8199Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns8200 builds array column names8201 when no columns are given8202 is expected to raise /No array columns were given/8203 when Arel AS node is given as input8204 works with Arel AS nodes8205Gitlab::ExternalAuthorization::Cache8206 #load8207 reads stored info from redis8208 #store8209 sets the values in redis8210Gitlab::Email::Hook::AdditionalHeadersInterceptor8211 adds Auto-Submitted header8212 when the same mail object is sent twice8213 does not add the Auto-Submitted header twice8214Types::WorkItems::Widgets::DescriptionType8215 exposes the expected fields8216BulkImports::RetryPipelineError8217 #retry_delay8218 returns retry_delay8219Mattermost::Command8220 #create8221 for valid trigger word8222 returns a token8223 for error message8224 raises an error with message8225Types::JiraUserType8226 is expected to eq "JiraUser"8227 has the expected fields8228Gitlab::BacktraceCleaner8229 .clean_backtrace8230 uses the Rails backtrace cleaner8231 removes lines from IGNORE_BACKTRACES8232Packages::Rpm::RepositoryMetadata::BuildFilelistXmlService8233 # order random8234 #execute8235 adds all file nodes8236 setting type attribute8237 when all files are directories8238 set dir type attribute for directories only8239Fog::Storage::GoogleXML::File8240 delegates to #get_https_url8241Ci::CodequalityMrDiffEntity8242 #as_json8243 when quality report has degradations8244 contains correct codequality mr diff report8245Gitlab::Database::LoadBalancing::ActionCableCallbacks8246 .wrapper8247 uses primary and then releases the connection and clears the session8248 with an exception8249 releases the connection and clears the session8250Gitlab::Database::Migrations::Observers::QueryDetails8251 records details of executed queries8252 unsubscribes after the observation8253Gitlab::Usage::Metrics::Instrumentations::SnowplowEnabledMetric8254 for snowplow enabled option8255 snowplow_enabled: true, expected_value: true8256 behaves like a correct instrumented metric value8257 has correct value8258 snowplow_enabled: false, expected_value: false8259 behaves like a correct instrumented metric value8260 has correct value8261API::Validations::Validators::GitRef8262 valid revision param8263 does not raise a validation error8264 revision param contains invalid chars8265 raises a validation error8266Gitlab::Database::AsyncConstraints8267 # order random8268 .validate_pending_entries!8269 executes pending validations8270Sidebars::StaticMenu8271 # order random8272 #serialize_for_super_sidebar8273 returns flat list of all menu items8274Gitlab::Memory::DiagnosticReportsLogger8275 # order random8276 #format_message8277 formats incoming hash properly8278TodosDestroyer::GroupPrivateWorker8279 calls the Todos::Destroy::GroupPrivateService with the params it was given8280BlobViewer::Podspec8281 #package_name8282 returns the package name8283Knapsack report was generated. Preview:8284{8285 "spec/lib/gitlab/usage_data_spec.rb": 271.4583544289999,8286 "spec/models/deployment_spec.rb": 160.59850295999968,8287 "spec/models/wiki_page_spec.rb": 81.13706831299896,8288 "spec/lib/gitlab/ci/pipeline/seed/build_spec.rb": 28.407919650999247,8289 "spec/services/projects/create_service_spec.rb": 55.48335380499884,8290 "spec/models/namespace/package_setting_spec.rb": 18.306851097000617,8291 "spec/services/merge_requests/merge_service_spec.rb": 59.08766088000084,8292 "spec/models/integrations/mattermost_spec.rb": 23.034172301999206,8293 "spec/lib/gitlab/ci/status/build/factory_spec.rb": 40.16702891599925,8294 "spec/finders/admin/projects_finder_spec.rb": 33.50367068199921,8295 "spec/presenters/projects/security/configuration_presenter_spec.rb": 32.251447090999136,8296 "spec/services/files/multi_service_spec.rb": 26.17746372900001,8297 "spec/services/merge_requests/cleanup_refs_service_spec.rb": 33.23265803300092,8298 "spec/models/discussion_spec.rb": 25.605669684999157,8299 "spec/services/submodules/update_service_spec.rb": 22.264306439001302,8300 "spec/models/trending_project_spec.rb": 23.438069710999116,8301 "spec/services/issues/import_csv_service_spec.rb": 24.268297986998732,8302 "spec/services/web_hook_service_spec.rb": 11.037826383999345,8303 "spec/lib/gitlab/database/migrations/runner_spec.rb": 5.075437184999828,8304 "spec/services/lfs/file_transformer_spec.rb": 19.75651010799993,8305 "spec/helpers/labels_helper_spec.rb": 12.02794339400134,8306 "spec/helpers/diff_helper_spec.rb": 4.19786074699914,8307 "spec/models/label_spec.rb": 12.983510150999791,8308 "spec/services/releases/update_service_spec.rb": 15.913874608000697,8309 "spec/lib/gitlab/json_spec.rb": 3.342848996000612,8310 "spec/lib/banzai/reference_parser/merge_request_parser_spec.rb": 14.105165161001423,8311 "spec/workers/projects/import_export/create_relation_exports_worker_spec.rb": 16.522067664998758,8312 "spec/lib/gitlab/ci/config/entry/processable_spec.rb": 2.639645881999968,8313 "spec/services/projects/import_export/export_service_spec.rb": 10.411678898999526,8314 "spec/workers/projects/after_import_worker_spec.rb": 12.982480582999415,8315 "spec/uploaders/pages/deployment_uploader_spec.rb": 9.242567444000088,8316 "spec/services/packages/maven/metadata/sync_service_spec.rb": 5.597618039000736,8317 "spec/lib/gitlab/multi_collection_paginator_spec.rb": 8.850332989999515,8318 "spec/graphql/gitlab_schema_spec.rb": 5.783271017000516,8319 "spec/lib/gitlab/memory/reporter_spec.rb": 2.7502014380006585,8320 "spec/lib/gitlab/sidekiq_middleware/size_limiter/validator_spec.rb": 3.407159614998818,8321 "spec/serializers/note_entity_spec.rb": 10.872966132999863,8322 "spec/graphql/resolvers/work_items_resolver_spec.rb": 6.862707121999847,8323 "spec/serializers/deployment_entity_spec.rb": 6.595846976999383,8324 "spec/models/members/last_group_owner_assigner_spec.rb": 7.030747762999454,8325 "spec/lib/gitlab/application_context_spec.rb": 4.809553154000241,8326 "spec/services/releases/destroy_service_spec.rb": 9.495520140000735,8327 "spec/services/ci/parse_dotenv_artifact_service_spec.rb": 4.114733733000321,8328 "spec/graphql/mutations/issues/create_spec.rb": 7.839533903999836,8329 "spec/services/merge_requests/update_assignees_service_spec.rb": 8.070613093999782,8330 "spec/services/security/ci_configuration/sast_iac_create_service_spec.rb": 5.091320186000303,8331 "spec/services/ci/create_pipeline_service/dry_run_spec.rb": 5.224212102999445,8332 "spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb": 5.023940956998558,8333 "spec/serializers/merge_request_diff_entity_spec.rb": 8.146419622000394,8334 "spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb": 2.755288936999932,8335 "spec/graphql/mutations/issues/set_severity_spec.rb": 3.6711797600000864,8336 "spec/helpers/page_layout_helper_spec.rb": 1.779530704001445,8337 "spec/models/web_ide_terminal_spec.rb": 5.060902000999704,8338 "spec/models/integrations/packagist_spec.rb": 2.8411615420009184,8339 "spec/graphql/resolvers/design_management/versions_resolver_spec.rb": 4.6962035939995985,8340 "spec/models/jira_connect_installation_spec.rb": 2.5204302669990284,8341 "spec/services/ci/delete_objects_service_spec.rb": 3.630914997000218,8342 "spec/lib/gitlab/metrics/background_transaction_spec.rb": 1.0998674820002634,8343 "spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb": 3.9179315279998264,8344 "spec/models/concerns/sanitizable_spec.rb": 1.4539685809995717,8345 "spec/workers/background_migration_worker_spec.rb": 1.323354632999326,8346 "spec/lib/gitlab/ci/config/extendable/entry_spec.rb": 1.272596311999223,8347 "spec/lib/gitlab/process_management_spec.rb": 0.820954109000013,8348 "spec/graphql/mutations/issues/set_escalation_status_spec.rb": 4.669322937999823,8349 "spec/lib/gitlab/import_export/fork_spec.rb": 5.888198769000155,8350 "spec/lib/uploaded_file_spec.rb": 2.938958005999666,8351 "spec/lib/gitlab/diff/parser_spec.rb": 1.1830537770001683,8352 "spec/lib/gitlab/global_id_spec.rb": 1.2537345549990278,8353 "spec/lib/gitlab/kubernetes/helm/api_spec.rb": 0.9878919000002497,8354 "spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb": 4.398103165000066,8355 "spec/lib/gitlab/ci/config/entry/image_spec.rb": 1.2021772129992314,8356 "spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb": 3.7403789080017305,8357 "spec/lib/banzai/reference_parser/alert_parser_spec.rb": 4.017162269999972,8358 "spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb": 3.5858587239999906,8359 "spec/models/identity_spec.rb": 1.5900789070001338,8360 "spec/finders/packages/tags_finder_spec.rb": 4.9404833520002285,8361 "spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb": 4.99759233199984,8362 "spec/lib/error_tracking/stacktrace_builder_spec.rb": 0.6041468759995041,8363 "spec/services/milestones/find_or_create_service_spec.rb": 4.540482370000973,8364 "spec/services/merge_requests/base_service_spec.rb": 3.6414063539996278,8365 "spec/lib/gitlab/ci/badge/coverage/report_spec.rb": 1.4622941790003097,8366 "spec/helpers/users/group_callouts_helper_spec.rb": 2.8504658410001866,8367 "spec/models/group_deploy_key_spec.rb": 1.8590538510015904,8368 "spec/services/members/request_access_service_spec.rb": 4.289572184001372,8369 "spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb": 1.6096947629994247,8370 "spec/lib/gitlab/setup_helper/praefect_spec.rb": 0.9160575030000473,8371 "spec/services/metrics/dashboard/pod_dashboard_service_spec.rb": 2.74167972900068,8372 "spec/lib/gitlab/kubernetes/helm/v3/base_command_spec.rb": 0.9172394230008649,8373 "spec/services/ci/compare_test_reports_service_spec.rb": 4.961137258000235,8374 "spec/finders/projects/export_job_finder_spec.rb": 2.2247701270007383,8375 "spec/models/blob_viewer/changelog_spec.rb": 2.1241037449999567,8376 "spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb": 4.6797820270003285,8377 "spec/models/board_spec.rb": 2.9797963590008294,8378 "spec/workers/project_cache_worker_spec.rb": 1.941011836999678,8379 "spec/lib/gitlab/ci/status/build/common_spec.rb": 3.7657664630005456,8380 "spec/lib/gitlab/auth/o_auth/provider_spec.rb": 0.8234109980003268,8381 "spec/lib/gitlab/import_sources_spec.rb": 1.267427011998734,8382 "spec/graphql/mutations/boards/issues/issue_move_list_spec.rb": 2.2912864469999477,8383 "spec/services/packages/go/create_package_service_spec.rb": 2.5310485549998702,8384 "spec/views/shared/wikis/_sidebar.html.haml_spec.rb": 2.323770880999291,8385 "spec/tasks/gitlab/dependency_proxy/migrate_rake_spec.rb": 2.404009727000812,8386 "spec/lib/api/entities/nuget/metadatum_spec.rb": 0.7709648679992824,8387 "spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb": 1.5835149779995845,8388 "spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb": 0.8811521879997599,8389 "spec/lib/gitlab/slash_commands/presenters/access_spec.rb": 0.8896015370009991,8390 "spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb": 0.7858027649999713,8391 "spec/workers/namespaces/root_statistics_worker_spec.rb": 1.4768963570004416,8392 "spec/lib/gitlab/ci/status/build/manual_spec.rb": 2.4986571709996497,8393 "spec/graphql/mutations/groups/update_spec.rb": 2.3954720479996467,8394 "spec/graphql/mutations/todos/mark_all_done_spec.rb": 3.589563393001299,8395 "spec/lib/gitlab/ci/pipeline/chain/assign_partition_spec.rb": 0.8449076949982555,8396 "spec/lib/gitlab/utils/link_header_parser_spec.rb": 0.6254888019993814,8397 "spec/lib/gitlab/import_export/project/relation_saver_spec.rb": 1.0326117029999295,8398 "spec/helpers/time_zone_helper_spec.rb": 1.7642360180016112,8399 "spec/services/task_list_toggle_service_spec.rb": 0.7628044490011234,8400 "spec/models/concerns/legacy_bulk_insert_spec.rb": 0.652796087999377,8401 "spec/scripts/pipeline_test_report_builder_spec.rb": 0.629896162001387,8402 "spec/models/concerns/where_composite_spec.rb": 1.323885263000193,8403 "spec/lib/gitlab/email/service_desk_receiver_spec.rb": 0.6017094559992984,8404 "spec/graphql/mutations/achievements/create_spec.rb": 1.2878108189997874,8405 "spec/lib/gitlab/database/partitioning/detached_partition_dropper_spec.rb": 1.2827547189990582,8406 "spec/lib/gitlab/ci/input/arguments/default_spec.rb": 0.701385868998841,8407 "spec/models/integrations/issue_tracker_data_spec.rb": 0.6721215340003255,8408 "spec/lib/gitlab/config/entry/undefined_spec.rb": 0.7658603179988859,8409 "spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb": 0.5812894000009692,8410 "spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb": 0.477560117999019,8411 "spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb": 1.0111878259995137,8412 "spec/helpers/programming_languages_helper_spec.rb": 0.5962742080009775,8413 "spec/tooling/lib/tooling/mappings/view_to_system_specs_mappings_spec.rb": 0.5139189210003678,8414 "spec/lib/gitlab/usage_data_counters/ipynb_diff_activity_counter_spec.rb": 1.5677990509993833,8415 "spec/lib/api/entities/basic_project_details_spec.rb": 1.5716013699984615,8416 "spec/lib/gitlab/git/patches/collection_spec.rb": 0.45412722199944255,8417 "spec/policies/project_group_link_policy_spec.rb": 2.045997649000128,8418 "spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb": 2.0314772209985676,8419 "spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb": 0.8947257569998328,8420 "spec/graphql/types/diff_refs_type_spec.rb": 0.4270173570002953,8421 "spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb": 0.360516908000136,8422 "spec/finders/license_template_finder_spec.rb": 0.7890579840004648,8423 "spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb": 0.5825572390003799,8424 "spec/lib/gitlab/gl_repository_spec.rb": 1.6535384460003115,8425 "spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_candidates_metric_spec.rb": 2.1476508420000755,8426 "spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb": 1.601059085000088,8427 "spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb": 1.1412177040001552,8428 "spec/lib/gitlab/email/message/in_product_marketing_spec.rb": 0.5010811640004249,8429 "spec/views/admin/sessions/new.html.haml_spec.rb": 1.314318844000809,8430 "spec/workers/projects/update_repository_storage_worker_spec.rb": 1.4637067080002453,8431 "spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb": 0.6241407630004687,8432 "spec/graphql/types/release_links_type_spec.rb": 0.643694680000408,8433 "spec/lib/gitlab/auth/key_status_checker_spec.rb": 0.5957768080006645,8434 "spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb": 0.7043888590014831,8435 "spec/lib/gitlab/sample_data_template_spec.rb": 0.9164607430011529,8436 "spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb": 1.1955666249996284,8437 "spec/initializers/1_acts_as_taggable_spec.rb": 0.558057184000063,8438 "spec/lib/gitlab/ci/config/external/mapper/location_expander_spec.rb": 1.5083655309990718,8439 "spec/rubocop/cop/gitlab/feature_available_usage_spec.rb": 0.6358365409996622,8440 "spec/services/ci/pipelines/hook_service_spec.rb": 1.829638736000561,8441 "spec/lib/gitlab/template/metrics_dashboard_template_spec.rb": 0.5552942850008549,8442 "spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb": 1.4708750169993436,8443 "spec/lib/gitlab/ssh/commit_spec.rb": 1.2949402180001925,8444 "spec/presenters/ci/bridge_presenter_spec.rb": 0.8998715560010169,8445 "spec/lib/gitlab/exceptions_app_spec.rb": 0.7468639519993303,8446 "spec/routing/openid_connect_spec.rb": 0.8952371060004225,8447 "spec/lib/gitlab/ci/pipeline/expression/token_spec.rb": 0.5257505690005928,8448 "spec/models/concerns/issuable_link_spec.rb": 1.0487326490001578,8449 "spec/rubocop/cop/prefer_class_methods_over_module_spec.rb": 0.4731269589992735,8450 "spec/initializers/pages_storage_check_spec.rb": 0.8929118669984746,8451 "spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb": 0.6365940200012119,8452 "spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb": 0.9962370289995306,8453 "spec/models/packages/composer/cache_file_spec.rb": 0.6647088959998655,8454 "spec/rubocop/cop/code_reuse/presenter_spec.rb": 0.6943053499999223,8455 "spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb": 1.0626484570002503,8456 "spec/models/integrations/pivotaltracker_spec.rb": 0.6189220240012219,8457 "spec/finders/packages/generic/package_finder_spec.rb": 0.9505128870005137,8458 "spec/lib/gitlab/phabricator_import/worker_state_spec.rb": 0.5157974120011204,8459 "spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb": 0.5494207249994361,8460 "spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb": 0.4803693080011726,8461 "spec/services/applications/create_service_spec.rb": 1.2228557299986278,8462 "spec/graphql/resolvers/commit_pipelines_resolver_spec.rb": 1.1406847540001763,8463 "spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb": 0.6714290349991643,8464 "spec/graphql/types/container_repository_tag_type_spec.rb": 0.44039137400068284,8465 "spec/policies/group_deploy_key_policy_spec.rb": 0.7449063820004085,8466 "spec/lib/api/validations/validators/project_portable_spec.rb": 0.440105384999697,8467 "spec/validators/sha_validator_spec.rb": 0.440516894999746,8468 "spec/serializers/release_serializer_spec.rb": 0.6147234740001295,8469 "spec/lib/gitlab/usage/metrics/instrumentations/count_user_auth_metric_spec.rb": 0.9658000239996909,8470 "spec/graphql/types/ci/manual_variable_type_spec.rb": 0.38747054300074524,8471 "spec/lib/gitlab/auth/saml/origin_validator_spec.rb": 0.8158201209989784,8472 "spec/models/diff_viewer/image_spec.rb": 0.5982268380012101,8473 "spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb": 0.454782291999436,8474 "spec/helpers/artifacts_helper_spec.rb": 0.4851535470006638,8475 "spec/lib/gitlab/ci/build/hook_spec.rb": 0.845452165000097,8476 "spec/rubocop/cop/group_public_or_visible_to_user_spec.rb": 0.5294769299998734,8477 "spec/services/bulk_imports/get_importable_data_service_spec.rb": 0.42884241600040696,8478 "spec/graphql/types/achievements/achievement_type_spec.rb": 0.45075512200128287,8479 "spec/workers/packages/composer/cache_cleanup_worker_spec.rb": 0.6620848869988549,8480 "spec/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled_spec.rb": 0.38246447399978933,8481 "spec/helpers/web_ide_button_helper_spec.rb": 0.4484852530003991,8482 "spec/lib/product_analytics/event_params_spec.rb": 0.5851864689993818,8483 "spec/serializers/move_to_project_entity_spec.rb": 0.6139799250013311,8484 "spec/lib/gitlab/database/tables_sorted_by_foreign_keys_spec.rb": 0.4450319429997762,8485 "spec/graphql/types/snippets/blob_action_input_type_spec.rb": 0.534244688000399,8486 "spec/graphql/types/ci/runner_machine_type_spec.rb": 0.771053918000689,8487 "spec/lib/gitlab/webpack/graphql_known_operations_spec.rb": 0.4110114289997,8488 "spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb": 0.4403841839994129,8489 "spec/lib/system_check/app/hashed_storage_enabled_check_spec.rb": 0.41307852899990394,8490 "spec/graphql/types/ci/config/need_type_spec.rb": 0.4743411189992912,8491 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 0.36165743800120254,8492 "spec/lib/gitlab/external_authorization/cache_spec.rb": 0.757905540000138,8493 "spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb": 0.39868504100013524,8494 "spec/graphql/types/work_items/widgets/description_type_spec.rb": 0.5062097029986035,8495 "spec/lib/bulk_imports/retry_pipeline_error_spec.rb": 0.5748942110003554,8496 "spec/lib/mattermost/command_spec.rb": 0.43043360600131564,8497 "spec/graphql/types/jira_user_type_spec.rb": 0.4563446110005316,8498 "spec/lib/gitlab/backtrace_cleaner_spec.rb": 0.9229110720007156,8499 "spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb": 0.38053991400011,8500 "spec/initializers/fog_google_https_private_urls_spec.rb": 0.39758467200044834,8501 "spec/serializers/ci/codequality_mr_diff_entity_spec.rb": 0.6085190060002788,8502 "spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb": 0.4919865160009067,8503 "spec/lib/gitlab/database/migrations/observers/query_details_spec.rb": 0.5672600130001229,8504 "spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb": 0.3934394120005891,8505 "spec/lib/api/validations/validators/git_ref_spec.rb": 0.3704144660005113,8506 "spec/lib/gitlab/database/async_constraints_spec.rb": 0.4748608379995858,8507 "spec/lib/sidebars/static_menu_spec.rb": 0.40874712000004365,8508 "spec/lib/gitlab/memory/diagnostic_reports_logger_spec.rb": 0.5623175739983708,8509 "spec/workers/todos_destroyer/group_private_worker_spec.rb": 0.46771944899956,8510 "spec/models/blob_viewer/podspec_spec.rb": 0.48496641699966868511}8512Knapsack global time execution for tests: 24m 30s8513Pending: (Failures listed here are expected and do not affect your suite's status)8514 1) Deployment modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8515 # No reason given8516 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498517 2) Deployment modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8518 # No reason given8519 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578520 3) Gitlab::Database::Migrations::Runner ci database creates the results dir when one does not exist8521 # Skipping because ci is shared or doesn't not exist8522 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1038523 4) Gitlab::Database::Migrations::Runner ci database .up result directory uses the /up subdirectory8524 # Skipping because ci is shared or doesn't not exist8525 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1138526 5) Gitlab::Database::Migrations::Runner ci database .up migrations to run is the list of pending migrations8527 # Skipping because ci is shared or doesn't not exist8528 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1218529 6) Gitlab::Database::Migrations::Runner ci database .up running migrations runs the unapplied migrations in regular/post order, then version order8530 # Skipping because ci is shared or doesn't not exist8531 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1298532 7) Gitlab::Database::Migrations::Runner ci database .up running migrations writes a metadata file with the current schema version and database name8533 # Skipping because ci is shared or doesn't not exist8534 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1368535 8) Gitlab::Database::Migrations::Runner ci database .up running migrations runs the unapplied migrations on the correct database8536 # Skipping because ci is shared or doesn't not exist8537 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1458538 9) Gitlab::Database::Migrations::Runner ci database .down writes a metadata file with the current schema version8539 # Skipping because ci is shared or doesn't not exist8540 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1778541 10) Gitlab::Database::Migrations::Runner ci database .down result directory is the /down subdirectory8542 # Skipping because ci is shared or doesn't not exist8543 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1578544 11) Gitlab::Database::Migrations::Runner ci database .down migrations to run is the list of migrations that are up and on this branch8545 # Skipping because ci is shared or doesn't not exist8546 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1638547 12) Gitlab::Database::Migrations::Runner ci database .down running migrations runs the applied migrations for the current branch in reverse order8548 # Skipping because ci is shared or doesn't not exist8549 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1698550 13) Gitlab::Database::Migrations::Runner ci database .background_migrations is a TestBackgroundRunner8551 # Skipping because ci is shared or doesn't not exist8552 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1888553 14) Gitlab::Database::Migrations::Runner ci database .background_migrations is configured with a result dir of /background_migrations8554 # Skipping because ci is shared or doesn't not exist8555 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1928556 15) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations is a TestBatchedBackgroundRunner8557 # Skipping because ci is shared or doesn't not exist8558 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2008559 16) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations choosing the database to test against chooses the provided database8560 # Skipping because ci is shared or doesn't not exist8561 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2058562 17) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations choosing the database to test against throws an error with an invalid name8563 # Skipping because ci is shared or doesn't not exist8564 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2138565 18) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations choosing the database to test against includes the database name in the result dir8566 # Skipping because ci is shared or doesn't not exist8567 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2188568 19) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations legacy mode does not include the database name in the path8569 # Skipping because ci is shared or doesn't not exist8570 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2268571 20) Gitlab::Database::Migrations::Runner ci database .batched_migrations_last_id matches the expected runner class8572 # Skipping because ci is shared or doesn't not exist8573 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2378574 21) Projects::ImportExport::ExportService#execute saves the repo8575 # No reason given8576 # ./spec/services/projects/import_export/export_service_spec.rb:518577 22) Pages::DeploymentUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8578 # No pattern provided, skipping.8579 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88580 23) Pages::DeploymentUploader behaves like builds correct paths #relative_path is relative8581 # Path not set, skipping.8582 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408583 24) Pages::DeploymentUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8584 # No pattern provided, skipping.8585 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88586 25) Pages::DeploymentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8587 # No pattern provided, skipping.8588 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88589 26) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8590 # No pattern provided, skipping.8591 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88592 27) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8593 # No pattern provided, skipping.8594 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88595 28) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 8596 # No pattern provided, skipping.8597 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88598 29) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #relative_path is relative8599 # Path not set, skipping.8600 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408601 30) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8602 # No pattern provided, skipping.8603 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88604 31) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8605 # No pattern provided, skipping.8606 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88607Finished in 24 minutes 33 seconds (files took 43.81 seconds to load)86083393 examples, 0 failures, 31 pending8609Randomized with seed 608668610[TEST PROF INFO] Time spent in factories: 13:21.570 (54.17% of total time)8611RSpec exited with 0.8612No examples to retry, congrats!8614Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8615Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8617Uploading artifacts...8618coverage/: found 5 matching artifact files and directories 8619crystalball/: found 2 matching artifact files and directories 8620WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8621knapsack/: found 3 matching artifact files and directories 8622WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8623rspec/: found 14 matching artifact files and directories 8624WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8625log/*.log: found 16 matching artifact files and directories 8626WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138463/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8627WARNING: Retrying... context=artifacts-uploader error=request redirected8628Uploading artifacts as "archive" to coordinator... 201 Created id=4031138463 responseStatus=201 Created token=64_L8qJn8629Uploading artifacts...8630rspec/junit_rspec.xml: found 1 matching artifact files and directories 8631WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138463/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8632WARNING: Retrying... context=artifacts-uploader error=request redirected8633Uploading artifacts as "junit" to coordinator... 201 Created id=4031138463 responseStatus=201 Created token=64_L8qJn8635Job succeeded