rspec unit pg13 15/28
Passed Started
by
@alipniagov

Aleksei Lipniagov
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.19-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:ab3945c8cf7160ed1381efd47c6a203ba9a84fc7327a17e4a389601eb3738b3b for postgres:13 with digest postgres@sha256:67edfda7deeecfda8e40c9b00818eae76573a9e9466ba7edbc536662d128173b ...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:63e95f069a7ee668f1fcd0b0f8865e473510f98b56e5db4c8517d6cfbd073470 ...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.19-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:667531aab48d3d73584a6ae24a2aea1de3972ab11b24d34d65740089d1635940 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-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.19-rust-1.65-node-16.14-postgresql-13@sha256:32a5178f22d0b62740cacea13dc02b6d5a1c9528c0a9af52124abe4455dd0a15 ...18Running on runner-rpvz2ff9-project-278964-concurrent-0 via runner-rpvz2ff9-private-1681304102-ac980463...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: 141454, done. 25remote: Counting objects: 100% (141454/141454), done. 26remote: Compressing objects: 100% (90405/90405), done. 27remote: Total 141454 (delta 62786), reused 98969 (delta 45741), pack-reused 0 28Receiving objects: 100% (141454/141454), 122.89 MiB | 23.68 MiB/s, done.29Resolving deltas: 100% (62786/62786), done.31 * [new ref] refs/pipelines/835170457 -> refs/pipelines/83517045732Checking out aa21306d as detached HEAD (ref is refs/merge-requests/116974/merge)...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 41Successfully extracted cache43Downloading artifacts for compile-test-assets (4101394559)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394559 responseStatus=200 OK token=64_VzVRA45Downloading artifacts for detect-tests (4101394577)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394577 responseStatus=200 OK token=64_VzVRA47Downloading artifacts for retrieve-tests-metadata (4101394581)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394581 responseStatus=200 OK token=64_VzVRA49Downloading artifacts for setup-test-env (4101394571)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394571 responseStatus=200 OK token=64_VzVRA52Using docker image sha256:667531aab48d3d73584a6ae24a2aea1de3972ab11b24d34d65740089d1635940 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-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.19-rust-1.65-node-16.14-postgresql-13@sha256:32a5178f22d0b62740cacea13dc02b6d5a1c9528c0a9af52124abe4455dd0a15 ...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.sh711Using decomposed database config (config/database.yml.decomposed-postgresql)712Geo DB won't be set up.713$ setup_db_user_only714CREATE ROLE715GRANT716==> 'setup_db_user_only' succeeded in 0 seconds.717$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes718Dropped database 'gitlabhq_test'719Dropped database 'gitlabhq_test_ci'720Created database 'gitlabhq_test'721Created database 'gitlabhq_test_ci'722main: == [advisory_lock_connection] object_id: 273860, pg_backend_pid: 101723main: == [advisory_lock_connection] object_id: 273860, pg_backend_pid: 101724ci: == [advisory_lock_connection] object_id: 273960, pg_backend_pid: 103725ci: == [advisory_lock_connection] object_id: 273960, pg_backend_pid: 103726==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 53 seconds.727$ setup_db_praefect728SELECT pg_catalog.set_config('search_path', '', false);729CREATE DATABASE praefect_test ENCODING 'UTF8';730==> 'setup_db_praefect' succeeded in 0 seconds.731$ source ./scripts/rspec_helpers.sh732$ run_timed_command "gem install knapsack --no-document"733$ gem install knapsack --no-document734Successfully installed knapsack-4.0.07351 gem installed736$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"737==> 'gem install knapsack --no-document' succeeded in 1 seconds.757$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"758SKIP_FLAKY_TESTS_AUTOMATICALLY: false759RETRY_FAILED_TESTS_IN_NEW_PROCESS: true760KNAPSACK_GENERATE_REPORT: true761FLAKY_RSPEC_GENERATE_REPORT: true762KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,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}{,/**/}*_spec.rb763KNAPSACK_LOG_LEVEL: debug764KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_15_28_report.json765FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json766FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_15_28_report.json767NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_15_28_report.json768SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_15_28_report.txt769CRYSTALBALL: 770Knapsack node specs:771spec/lib/gitlab/git_access_spec.rb772spec/lib/gitlab/import_export/project/tree_restorer_spec.rb773spec/services/merge_requests/create_service_spec.rb774spec/policies/group_policy_spec.rb775spec/models/integration_spec.rb776spec/models/ci/build_trace_chunk_spec.rb777spec/lib/gitlab/import_export/project/tree_saver_spec.rb778spec/tasks/gitlab/check_rake_spec.rb779spec/routing/project_routing_spec.rb780spec/lib/gitlab/ci/status/build/factory_spec.rb781spec/lib/gitlab/ci/trace_spec.rb782spec/lib/gitlab/background_migration/backfill_project_member_namespace_id_spec.rb783spec/tasks/gitlab/db_rake_spec.rb784spec/services/incident_management/timeline_events/create_service_spec.rb785spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb786spec/lib/gitlab/checks/branch_check_spec.rb787spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb788spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb789spec/helpers/issues_helper_spec.rb790spec/services/projects/move_forks_service_spec.rb791spec/components/pajamas/button_component_spec.rb792spec/services/ci/process_sync_events_service_spec.rb793spec/models/clusters/applications/helm_spec.rb794spec/models/application_record_spec.rb795spec/services/work_items/parent_links/create_service_spec.rb796spec/lib/gitlab/ci/trace/stream_spec.rb797spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb798spec/lib/banzai/reference_parser/commit_parser_spec.rb799spec/helpers/application_settings_helper_spec.rb800spec/lib/gitlab/ci/cron_parser_spec.rb801spec/services/discussions/update_diff_position_service_spec.rb802spec/lib/gitlab/slash_commands/deploy_spec.rb803spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb804spec/services/ci/components/fetch_service_spec.rb805spec/lib/gitlab/database/migration_helpers/v2_spec.rb806spec/lib/gitlab/github_import/representation/issue_event_spec.rb807spec/lib/gitlab/ci/config/external/file/artifact_spec.rb808spec/workers/packages/nuget/extraction_worker_spec.rb809spec/models/integrations/pumble_spec.rb810spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb811spec/services/ci/update_build_state_service_spec.rb812spec/models/ci/build_trace_metadata_spec.rb813spec/lib/gitlab/database/postgres_index_spec.rb814spec/lib/gitlab/import_export/merge_request_parser_spec.rb815spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb816spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb817spec/serializers/deployment_entity_spec.rb818spec/graphql/resolvers/group_labels_resolver_spec.rb819spec/lib/gitlab/sidekiq_config/worker_router_spec.rb820spec/models/packages/conan/metadatum_spec.rb821spec/models/clusters/providers/gcp_spec.rb822spec/workers/container_registry/migration/observer_worker_spec.rb823spec/lib/gitlab/repo_path_spec.rb824spec/models/packages/debian/group_component_file_spec.rb825spec/policies/metrics/dashboard/annotation_policy_spec.rb826spec/services/jira_import/start_import_service_spec.rb827spec/policies/personal_snippet_policy_spec.rb828spec/lib/gitlab/suggestions/commit_message_spec.rb829spec/graphql/resolvers/labels_resolver_spec.rb830spec/services/personal_access_tokens/create_service_spec.rb831spec/graphql/resolvers/group_milestones_resolver_spec.rb832spec/lib/gitlab/checks/snippet_check_spec.rb833spec/lib/gitlab/ci/status/external/common_spec.rb834spec/models/network/graph_spec.rb835spec/services/packages/conan/search_service_spec.rb836spec/models/concerns/spammable_spec.rb837spec/services/clusters/agent_tokens/revoke_service_spec.rb838spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb839spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb840spec/services/packages/update_package_file_service_spec.rb841spec/services/boards/issues/create_service_spec.rb842spec/lib/gitlab/ci/config/extendable/entry_spec.rb843spec/graphql/mutations/issues/set_locked_spec.rb844spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb845spec/lib/gitlab/ci/variables/builder/group_spec.rb846spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb847spec/workers/gitlab/phabricator_import/base_worker_spec.rb848spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb849spec/serializers/container_repositories_serializer_spec.rb850spec/lib/gitlab/kubernetes/helm/api_spec.rb851spec/rubocop/cop/rspec/expect_gitlab_tracking_spec.rb852spec/uploaders/lfs_object_uploader_spec.rb853spec/lib/gitlab/ci/badge/coverage/report_spec.rb854spec/workers/stuck_export_jobs_worker_spec.rb855spec/models/issue_assignee_spec.rb856spec/models/lfs_file_lock_spec.rb857spec/models/preloaders/project_policy_preloader_spec.rb858spec/graphql/resolvers/ci/group_runners_resolver_spec.rb859spec/models/blob_viewer/readme_spec.rb860spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb861spec/finders/namespaces/projects_finder_spec.rb862spec/models/packages/rpm/repository_file_spec.rb863spec/lib/bulk_imports/projects/pipelines/ci_pipelines_pipeline_spec.rb864spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb865spec/helpers/environment_helper_spec.rb866spec/lib/api/helpers/packages_manager_clients_helpers_spec.rb867spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb868spec/initializers/mail_encoding_patch_spec.rb869spec/graphql/mutations/clusters/agents/create_spec.rb870spec/finders/alert_management/http_integrations_finder_spec.rb871spec/finders/fork_targets_finder_spec.rb872spec/helpers/groups/settings_helper_spec.rb873spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb874spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb875spec/helpers/users/group_callouts_helper_spec.rb876spec/lib/api/helpers/version_spec.rb877spec/lib/gitlab/hook_data/project_member_builder_spec.rb878spec/models/merge_request_context_commit_spec.rb879spec/models/operations/feature_flags_client_spec.rb880spec/lib/gitlab/database/async_constraints/validators/check_constraint_spec.rb881spec/lib/safe_zip/extract_params_spec.rb882spec/services/ci/catalog/validate_resource_service_spec.rb883spec/lib/gitlab/hook_data/group_builder_spec.rb884spec/services/packages/cleanup/execute_policy_service_spec.rb885spec/models/analytics/usage_trends/measurement_spec.rb886spec/lib/gitlab/ci/config/extendable_spec.rb887spec/services/incident_management/link_alerts/create_service_spec.rb888spec/serializers/label_serializer_spec.rb889spec/lib/gitlab/git/base_error_spec.rb890spec/lib/gitlab/other_markup_spec.rb891spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb892spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb893spec/lib/gitlab/database/background_migration_job_spec.rb894spec/lib/gitlab/github_import/importer/events/closed_spec.rb895spec/workers/email_receiver_worker_spec.rb896spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb897spec/tooling/rspec_flaky/flaky_example_spec.rb898spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb899spec/workers/integrations/irker_worker_spec.rb900spec/lib/gitlab/kubernetes_spec.rb901spec/workers/propagate_integration_project_worker_spec.rb902spec/lib/gitlab/import_export/project/exported_relations_merger_spec.rb903spec/services/import/bitbucket_server_service_spec.rb904spec/services/bulk_imports/create_pipeline_trackers_service_spec.rb905spec/models/concerns/optionally_search_spec.rb906spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb907spec/services/metrics/dashboard/default_embed_service_spec.rb908spec/services/ci/build_cancel_service_spec.rb909spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb910spec/services/boards/destroy_service_spec.rb911spec/policies/resource_label_event_policy_spec.rb912spec/lib/gitlab/hashed_path_spec.rb913spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb914spec/lib/banzai/renderer_spec.rb915spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb916spec/lib/gitlab/database/async_indexes/index_creator_spec.rb917spec/models/group_deploy_token_spec.rb918spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb919spec/serializers/merge_request_sidebar_basic_entity_spec.rb920spec/graphql/types/work_item_id_type_spec.rb921spec/graphql/types/release_asset_link_type_spec.rb922spec/services/projects/enable_deploy_key_service_spec.rb923spec/workers/hashed_storage/project_rollback_worker_spec.rb924spec/services/metrics/users_starred_dashboards/delete_service_spec.rb925spec/workers/import_issues_csv_worker_spec.rb926spec/services/clusters/agents/create_activity_event_service_spec.rb927spec/services/achievements/revoke_service_spec.rb928spec/lib/gitlab/git/pre_receive_error_spec.rb929spec/graphql/resolvers/crm/contact_state_counts_resolver_spec.rb930spec/lib/gitlab/sourcegraph_spec.rb931spec/lib/api/every_api_endpoint_spec.rb932spec/graphql/mutations/user_callouts/create_spec.rb933spec/serializers/rollout_status_entity_spec.rb934spec/graphql/mutations/terraform/state/delete_spec.rb935spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb936spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb937spec/lib/gitlab/exception_log_formatter_spec.rb938spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb939spec/models/releases/evidence_spec.rb940spec/graphql/resolvers/project_pipelines_resolver_spec.rb941spec/lib/gitlab/shard_health_cache_spec.rb942spec/models/work_items/widgets/start_and_due_date_spec.rb943spec/services/achievements/create_service_spec.rb944spec/serializers/admin/abuse_report_serializer_spec.rb945spec/lib/gitlab/legacy_github_import/label_formatter_spec.rb946spec/finders/packages/composer/packages_finder_spec.rb947spec/lib/bulk_imports/pipeline/extracted_data_spec.rb948spec/scripts/lib/glfm/shared_spec.rb949spec/tooling/lib/tooling/test_map_generator_spec.rb950spec/lib/gitlab/import_export/version_checker_spec.rb951spec/models/users/banned_user_spec.rb952spec/models/token_with_iv_spec.rb953spec/lib/gitlab/jwt_token_spec.rb954spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb955spec/services/webauthn/register_service_spec.rb956spec/workers/ci/delete_objects_worker_spec.rb957spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb958spec/lib/api/entities/application_setting_spec.rb959spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb960spec/lib/gitlab/graphql/mount_mutation_spec.rb961spec/graphql/types/permission_types/base_permission_type_spec.rb962spec/lib/gitlab/kroki_spec.rb963spec/lib/gitlab/ci/config/entry/product/variables_spec.rb964spec/graphql/types/merge_requests/assignee_type_spec.rb965spec/services/ci/copy_cross_database_associations_service_spec.rb966spec/lib/gitlab/ci/config/entry/ports_spec.rb967spec/lib/api/entities/ci/job_request/port_spec.rb968spec/lib/gitlab/usage_data_counters/search_counter_spec.rb969spec/graphql/types/projects/fork_details_type_spec.rb970spec/helpers/webpack_helper_spec.rb971spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb972spec/lib/gitlab/ci/build/policy_spec.rb973spec/serializers/feature_flags_client_serializer_spec.rb974spec/serializers/runner_entity_spec.rb975spec/workers/gitlab/github_import/import_note_worker_spec.rb976spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb977spec/graphql/resolvers/package_details_resolver_spec.rb978spec/lib/gitlab/sidekiq_versioning_spec.rb979spec/services/clusters/build_service_spec.rb980spec/graphql/types/ci/test_case_status_enum_spec.rb981spec/graphql/types/container_repository_status_enum_spec.rb982spec/graphql/types/description_version_type_spec.rb983spec/graphql/types/snippets/blob_action_input_type_spec.rb984spec/models/concerns/presentable_spec.rb985spec/lib/gitlab/backtrace_cleaner_spec.rb986spec/helpers/container_registry_helper_spec.rb987spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb988spec/services/projects/android_target_platform_detector_service_spec.rb989spec/lib/gitlab/fogbugz_import/client_spec.rb990spec/graphql/types/detployment_tag_type_spec.rb991spec/lib/gitlab/database/async_constraints/validators_spec.rb992spec/lib/gitlab/kubernetes/tls_secret_spec.rb993spec/lib/gitlab/utils/execution_tracker_spec.rb994spec/services/wiki_pages/base_service_spec.rb995spec/db/production/add_security_training_providers_spec.rb996spec/lib/sidebars/groups/super_sidebar_menus/secure_menu_spec.rb997spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb998spec/rubocop/cop/gitlab/intersect_spec.rb999spec/presenters/deploy_key_presenter_spec.rb1000spec/lib/gitlab/word_diff/segments/newline_spec.rb1001spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb1002spec/helpers/abuse_reports_helper_spec.rb1003Filter specs:1004Running specs:1005Running all node tests without filter1006spec/lib/gitlab/git_access_spec.rb1007spec/lib/gitlab/import_export/project/tree_restorer_spec.rb1008spec/services/merge_requests/create_service_spec.rb1009spec/policies/group_policy_spec.rb1010spec/models/integration_spec.rb1011spec/models/ci/build_trace_chunk_spec.rb1012spec/lib/gitlab/import_export/project/tree_saver_spec.rb1013spec/tasks/gitlab/check_rake_spec.rb1014spec/routing/project_routing_spec.rb1015spec/lib/gitlab/ci/status/build/factory_spec.rb1016spec/lib/gitlab/ci/trace_spec.rb1017spec/lib/gitlab/background_migration/backfill_project_member_namespace_id_spec.rb1018spec/tasks/gitlab/db_rake_spec.rb1019spec/services/incident_management/timeline_events/create_service_spec.rb1020spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb1021spec/lib/gitlab/checks/branch_check_spec.rb1022spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb1023spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb1024spec/helpers/issues_helper_spec.rb1025spec/services/projects/move_forks_service_spec.rb1026spec/components/pajamas/button_component_spec.rb1027spec/services/ci/process_sync_events_service_spec.rb1028spec/models/clusters/applications/helm_spec.rb1029spec/models/application_record_spec.rb1030spec/services/work_items/parent_links/create_service_spec.rb1031spec/lib/gitlab/ci/trace/stream_spec.rb1032spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb1033spec/lib/banzai/reference_parser/commit_parser_spec.rb1034spec/helpers/application_settings_helper_spec.rb1035spec/lib/gitlab/ci/cron_parser_spec.rb1036spec/services/discussions/update_diff_position_service_spec.rb1037spec/lib/gitlab/slash_commands/deploy_spec.rb1038spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb1039spec/services/ci/components/fetch_service_spec.rb1040spec/lib/gitlab/database/migration_helpers/v2_spec.rb1041spec/lib/gitlab/github_import/representation/issue_event_spec.rb1042spec/lib/gitlab/ci/config/external/file/artifact_spec.rb1043spec/workers/packages/nuget/extraction_worker_spec.rb1044spec/models/integrations/pumble_spec.rb1045spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb1046spec/services/ci/update_build_state_service_spec.rb1047spec/models/ci/build_trace_metadata_spec.rb1048spec/lib/gitlab/database/postgres_index_spec.rb1049spec/lib/gitlab/import_export/merge_request_parser_spec.rb1050spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb1051spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb1052spec/serializers/deployment_entity_spec.rb1053spec/graphql/resolvers/group_labels_resolver_spec.rb1054spec/lib/gitlab/sidekiq_config/worker_router_spec.rb1055spec/models/packages/conan/metadatum_spec.rb1056spec/models/clusters/providers/gcp_spec.rb1057spec/workers/container_registry/migration/observer_worker_spec.rb1058spec/lib/gitlab/repo_path_spec.rb1059spec/models/packages/debian/group_component_file_spec.rb1060spec/policies/metrics/dashboard/annotation_policy_spec.rb1061spec/services/jira_import/start_import_service_spec.rb1062spec/policies/personal_snippet_policy_spec.rb1063spec/lib/gitlab/suggestions/commit_message_spec.rb1064spec/graphql/resolvers/labels_resolver_spec.rb1065spec/services/personal_access_tokens/create_service_spec.rb1066spec/graphql/resolvers/group_milestones_resolver_spec.rb1067spec/lib/gitlab/checks/snippet_check_spec.rb1068spec/lib/gitlab/ci/status/external/common_spec.rb1069spec/models/network/graph_spec.rb1070spec/services/packages/conan/search_service_spec.rb1071spec/models/concerns/spammable_spec.rb1072spec/services/clusters/agent_tokens/revoke_service_spec.rb1073spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb1074spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb1075spec/services/packages/update_package_file_service_spec.rb1076spec/services/boards/issues/create_service_spec.rb1077spec/lib/gitlab/ci/config/extendable/entry_spec.rb1078spec/graphql/mutations/issues/set_locked_spec.rb1079spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb1080spec/lib/gitlab/ci/variables/builder/group_spec.rb1081spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb1082spec/workers/gitlab/phabricator_import/base_worker_spec.rb1083spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb1084spec/serializers/container_repositories_serializer_spec.rb1085spec/lib/gitlab/kubernetes/helm/api_spec.rb1086spec/rubocop/cop/rspec/expect_gitlab_tracking_spec.rb1087spec/uploaders/lfs_object_uploader_spec.rb1088spec/lib/gitlab/ci/badge/coverage/report_spec.rb1089spec/workers/stuck_export_jobs_worker_spec.rb1090spec/models/issue_assignee_spec.rb1091spec/models/lfs_file_lock_spec.rb1092spec/models/preloaders/project_policy_preloader_spec.rb1093spec/graphql/resolvers/ci/group_runners_resolver_spec.rb1094spec/models/blob_viewer/readme_spec.rb1095spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb1096spec/finders/namespaces/projects_finder_spec.rb1097spec/models/packages/rpm/repository_file_spec.rb1098spec/lib/bulk_imports/projects/pipelines/ci_pipelines_pipeline_spec.rb1099spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb1100spec/helpers/environment_helper_spec.rb1101spec/lib/api/helpers/packages_manager_clients_helpers_spec.rb1102spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb1103spec/initializers/mail_encoding_patch_spec.rb1104spec/graphql/mutations/clusters/agents/create_spec.rb1105spec/finders/alert_management/http_integrations_finder_spec.rb1106spec/finders/fork_targets_finder_spec.rb1107spec/helpers/groups/settings_helper_spec.rb1108spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb1109spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb1110spec/helpers/users/group_callouts_helper_spec.rb1111spec/lib/api/helpers/version_spec.rb1112spec/lib/gitlab/hook_data/project_member_builder_spec.rb1113spec/models/merge_request_context_commit_spec.rb1114spec/models/operations/feature_flags_client_spec.rb1115spec/lib/gitlab/database/async_constraints/validators/check_constraint_spec.rb1116spec/lib/safe_zip/extract_params_spec.rb1117spec/services/ci/catalog/validate_resource_service_spec.rb1118spec/lib/gitlab/hook_data/group_builder_spec.rb1119spec/services/packages/cleanup/execute_policy_service_spec.rb1120spec/models/analytics/usage_trends/measurement_spec.rb1121spec/lib/gitlab/ci/config/extendable_spec.rb1122spec/services/incident_management/link_alerts/create_service_spec.rb1123spec/serializers/label_serializer_spec.rb1124spec/lib/gitlab/git/base_error_spec.rb1125spec/lib/gitlab/other_markup_spec.rb1126spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb1127spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb1128spec/lib/gitlab/database/background_migration_job_spec.rb1129spec/lib/gitlab/github_import/importer/events/closed_spec.rb1130spec/workers/email_receiver_worker_spec.rb1131spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb1132spec/tooling/rspec_flaky/flaky_example_spec.rb1133spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb1134spec/workers/integrations/irker_worker_spec.rb1135spec/lib/gitlab/kubernetes_spec.rb1136spec/workers/propagate_integration_project_worker_spec.rb1137spec/lib/gitlab/import_export/project/exported_relations_merger_spec.rb1138spec/services/import/bitbucket_server_service_spec.rb1139spec/services/bulk_imports/create_pipeline_trackers_service_spec.rb1140spec/models/concerns/optionally_search_spec.rb1141spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb1142spec/services/metrics/dashboard/default_embed_service_spec.rb1143spec/services/ci/build_cancel_service_spec.rb1144spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb1145spec/services/boards/destroy_service_spec.rb1146spec/policies/resource_label_event_policy_spec.rb1147spec/lib/gitlab/hashed_path_spec.rb1148spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb1149spec/lib/banzai/renderer_spec.rb1150spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb1151spec/lib/gitlab/database/async_indexes/index_creator_spec.rb1152spec/models/group_deploy_token_spec.rb1153spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb1154spec/serializers/merge_request_sidebar_basic_entity_spec.rb1155spec/graphql/types/work_item_id_type_spec.rb1156spec/graphql/types/release_asset_link_type_spec.rb1157spec/services/projects/enable_deploy_key_service_spec.rb1158spec/workers/hashed_storage/project_rollback_worker_spec.rb1159spec/services/metrics/users_starred_dashboards/delete_service_spec.rb1160spec/workers/import_issues_csv_worker_spec.rb1161spec/services/clusters/agents/create_activity_event_service_spec.rb1162spec/services/achievements/revoke_service_spec.rb1163spec/lib/gitlab/git/pre_receive_error_spec.rb1164spec/graphql/resolvers/crm/contact_state_counts_resolver_spec.rb1165spec/lib/gitlab/sourcegraph_spec.rb1166spec/lib/api/every_api_endpoint_spec.rb1167spec/graphql/mutations/user_callouts/create_spec.rb1168spec/serializers/rollout_status_entity_spec.rb1169spec/graphql/mutations/terraform/state/delete_spec.rb1170spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb1171spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb1172spec/lib/gitlab/exception_log_formatter_spec.rb1173spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb1174spec/models/releases/evidence_spec.rb1175spec/graphql/resolvers/project_pipelines_resolver_spec.rb1176spec/lib/gitlab/shard_health_cache_spec.rb1177spec/models/work_items/widgets/start_and_due_date_spec.rb1178spec/services/achievements/create_service_spec.rb1179spec/serializers/admin/abuse_report_serializer_spec.rb1180spec/lib/gitlab/legacy_github_import/label_formatter_spec.rb1181spec/finders/packages/composer/packages_finder_spec.rb1182spec/lib/bulk_imports/pipeline/extracted_data_spec.rb1183spec/scripts/lib/glfm/shared_spec.rb1184spec/tooling/lib/tooling/test_map_generator_spec.rb1185spec/lib/gitlab/import_export/version_checker_spec.rb1186spec/models/users/banned_user_spec.rb1187spec/models/token_with_iv_spec.rb1188spec/lib/gitlab/jwt_token_spec.rb1189spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb1190spec/services/webauthn/register_service_spec.rb1191spec/workers/ci/delete_objects_worker_spec.rb1192spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb1193spec/lib/api/entities/application_setting_spec.rb1194spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb1195spec/lib/gitlab/graphql/mount_mutation_spec.rb1196spec/graphql/types/permission_types/base_permission_type_spec.rb1197spec/lib/gitlab/kroki_spec.rb1198spec/lib/gitlab/ci/config/entry/product/variables_spec.rb1199spec/graphql/types/merge_requests/assignee_type_spec.rb1200spec/services/ci/copy_cross_database_associations_service_spec.rb1201spec/lib/gitlab/ci/config/entry/ports_spec.rb1202spec/lib/api/entities/ci/job_request/port_spec.rb1203spec/lib/gitlab/usage_data_counters/search_counter_spec.rb1204spec/graphql/types/projects/fork_details_type_spec.rb1205spec/helpers/webpack_helper_spec.rb1206spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb1207spec/lib/gitlab/ci/build/policy_spec.rb1208spec/serializers/feature_flags_client_serializer_spec.rb1209spec/serializers/runner_entity_spec.rb1210spec/workers/gitlab/github_import/import_note_worker_spec.rb1211spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb1212spec/graphql/resolvers/package_details_resolver_spec.rb1213spec/lib/gitlab/sidekiq_versioning_spec.rb1214spec/services/clusters/build_service_spec.rb1215spec/graphql/types/ci/test_case_status_enum_spec.rb1216spec/graphql/types/container_repository_status_enum_spec.rb1217spec/graphql/types/description_version_type_spec.rb1218spec/graphql/types/snippets/blob_action_input_type_spec.rb1219spec/models/concerns/presentable_spec.rb1220spec/lib/gitlab/backtrace_cleaner_spec.rb1221spec/helpers/container_registry_helper_spec.rb1222spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb1223spec/services/projects/android_target_platform_detector_service_spec.rb1224spec/lib/gitlab/fogbugz_import/client_spec.rb1225spec/graphql/types/detployment_tag_type_spec.rb1226spec/lib/gitlab/database/async_constraints/validators_spec.rb1227spec/lib/gitlab/kubernetes/tls_secret_spec.rb1228spec/lib/gitlab/utils/execution_tracker_spec.rb1229spec/services/wiki_pages/base_service_spec.rb1230spec/db/production/add_security_training_providers_spec.rb1231spec/lib/sidebars/groups/super_sidebar_menus/secure_menu_spec.rb1232spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb1233spec/rubocop/cop/gitlab/intersect_spec.rb1234spec/presenters/deploy_key_presenter_spec.rb1235spec/lib/gitlab/word_diff/segments/newline_spec.rb1236spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb1237spec/helpers/abuse_reports_helper_spec.rb1238Running all node tests without filter1239Running all node tests without filter1240Running 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/git_access_spec.rb spec/lib/gitlab/import_export/project/tree_restorer_spec.rb spec/services/merge_requests/create_service_spec.rb spec/policies/group_policy_spec.rb spec/models/integration_spec.rb spec/models/ci/build_trace_chunk_spec.rb spec/lib/gitlab/import_export/project/tree_saver_spec.rb spec/tasks/gitlab/check_rake_spec.rb spec/routing/project_routing_spec.rb spec/lib/gitlab/ci/status/build/factory_spec.rb spec/lib/gitlab/ci/trace_spec.rb spec/lib/gitlab/background_migration/backfill_project_member_namespace_id_spec.rb spec/tasks/gitlab/db_rake_spec.rb spec/services/incident_management/timeline_events/create_service_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb spec/lib/gitlab/checks/branch_check_spec.rb spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb spec/helpers/issues_helper_spec.rb spec/services/projects/move_forks_service_spec.rb spec/components/pajamas/button_component_spec.rb spec/services/ci/process_sync_events_service_spec.rb spec/models/clusters/applications/helm_spec.rb spec/models/application_record_spec.rb spec/services/work_items/parent_links/create_service_spec.rb spec/lib/gitlab/ci/trace/stream_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb spec/lib/banzai/reference_parser/commit_parser_spec.rb spec/helpers/application_settings_helper_spec.rb spec/lib/gitlab/ci/cron_parser_spec.rb spec/services/discussions/update_diff_position_service_spec.rb spec/lib/gitlab/slash_commands/deploy_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb spec/services/ci/components/fetch_service_spec.rb spec/lib/gitlab/database/migration_helpers/v2_spec.rb spec/lib/gitlab/github_import/representation/issue_event_spec.rb spec/lib/gitlab/ci/config/external/file/artifact_spec.rb spec/workers/packages/nuget/extraction_worker_spec.rb spec/models/integrations/pumble_spec.rb spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb spec/services/ci/update_build_state_service_spec.rb spec/models/ci/build_trace_metadata_spec.rb spec/lib/gitlab/database/postgres_index_spec.rb spec/lib/gitlab/import_export/merge_request_parser_spec.rb spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb spec/serializers/deployment_entity_spec.rb spec/graphql/resolvers/group_labels_resolver_spec.rb spec/lib/gitlab/sidekiq_config/worker_router_spec.rb spec/models/packages/conan/metadatum_spec.rb spec/models/clusters/providers/gcp_spec.rb spec/workers/container_registry/migration/observer_worker_spec.rb spec/lib/gitlab/repo_path_spec.rb spec/models/packages/debian/group_component_file_spec.rb spec/policies/metrics/dashboard/annotation_policy_spec.rb spec/services/jira_import/start_import_service_spec.rb spec/policies/personal_snippet_policy_spec.rb spec/lib/gitlab/suggestions/commit_message_spec.rb spec/graphql/resolvers/labels_resolver_spec.rb spec/services/personal_access_tokens/create_service_spec.rb spec/graphql/resolvers/group_milestones_resolver_spec.rb spec/lib/gitlab/checks/snippet_check_spec.rb spec/lib/gitlab/ci/status/external/common_spec.rb spec/models/network/graph_spec.rb spec/services/packages/conan/search_service_spec.rb spec/models/concerns/spammable_spec.rb spec/services/clusters/agent_tokens/revoke_service_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb spec/services/packages/update_package_file_service_spec.rb spec/services/boards/issues/create_service_spec.rb spec/lib/gitlab/ci/config/extendable/entry_spec.rb spec/graphql/mutations/issues/set_locked_spec.rb spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb spec/lib/gitlab/ci/variables/builder/group_spec.rb spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb spec/workers/gitlab/phabricator_import/base_worker_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb spec/serializers/container_repositories_serializer_spec.rb spec/lib/gitlab/kubernetes/helm/api_spec.rb spec/rubocop/cop/rspec/expect_gitlab_tracking_spec.rb spec/uploaders/lfs_object_uploader_spec.rb spec/lib/gitlab/ci/badge/coverage/report_spec.rb spec/workers/stuck_export_jobs_worker_spec.rb spec/models/issue_assignee_spec.rb spec/models/lfs_file_lock_spec.rb spec/models/preloaders/project_policy_preloader_spec.rb spec/graphql/resolvers/ci/group_runners_resolver_spec.rb spec/models/blob_viewer/readme_spec.rb spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb spec/finders/namespaces/projects_finder_spec.rb spec/models/packages/rpm/repository_file_spec.rb spec/lib/bulk_imports/projects/pipelines/ci_pipelines_pipeline_spec.rb spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb spec/helpers/environment_helper_spec.rb spec/lib/api/helpers/packages_manager_clients_helpers_spec.rb spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb spec/initializers/mail_encoding_patch_spec.rb spec/graphql/mutations/clusters/agents/create_spec.rb spec/finders/alert_management/http_integrations_finder_spec.rb spec/finders/fork_targets_finder_spec.rb spec/helpers/groups/settings_helper_spec.rb spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb spec/helpers/users/group_callouts_helper_spec.rb spec/lib/api/helpers/version_spec.rb spec/lib/gitlab/hook_data/project_member_builder_spec.rb spec/models/merge_request_context_commit_spec.rb spec/models/operations/feature_flags_client_spec.rb spec/lib/gitlab/database/async_constraints/validators/check_constraint_spec.rb spec/lib/safe_zip/extract_params_spec.rb spec/services/ci/catalog/validate_resource_service_spec.rb spec/lib/gitlab/hook_data/group_builder_spec.rb spec/services/packages/cleanup/execute_policy_service_spec.rb spec/models/analytics/usage_trends/measurement_spec.rb spec/lib/gitlab/ci/config/extendable_spec.rb spec/services/incident_management/link_alerts/create_service_spec.rb spec/serializers/label_serializer_spec.rb spec/lib/gitlab/git/base_error_spec.rb spec/lib/gitlab/other_markup_spec.rb spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb spec/lib/gitlab/database/background_migration_job_spec.rb spec/lib/gitlab/github_import/importer/events/closed_spec.rb spec/workers/email_receiver_worker_spec.rb spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb spec/tooling/rspec_flaky/flaky_example_spec.rb spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb spec/workers/integrations/irker_worker_spec.rb spec/lib/gitlab/kubernetes_spec.rb spec/workers/propagate_integration_project_worker_spec.rb spec/lib/gitlab/import_export/project/exported_relations_merger_spec.rb spec/services/import/bitbucket_server_service_spec.rb spec/services/bulk_imports/create_pipeline_trackers_service_spec.rb spec/models/concerns/optionally_search_spec.rb spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb spec/services/metrics/dashboard/default_embed_service_spec.rb spec/services/ci/build_cancel_service_spec.rb spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb spec/services/boards/destroy_service_spec.rb spec/policies/resource_label_event_policy_spec.rb spec/lib/gitlab/hashed_path_spec.rb spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb spec/lib/banzai/renderer_spec.rb spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb spec/lib/gitlab/database/async_indexes/index_creator_spec.rb spec/models/group_deploy_token_spec.rb spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb spec/serializers/merge_request_sidebar_basic_entity_spec.rb spec/graphql/types/work_item_id_type_spec.rb spec/graphql/types/release_asset_link_type_spec.rb spec/services/projects/enable_deploy_key_service_spec.rb spec/workers/hashed_storage/project_rollback_worker_spec.rb spec/services/metrics/users_starred_dashboards/delete_service_spec.rb spec/workers/import_issues_csv_worker_spec.rb spec/services/clusters/agents/create_activity_event_service_spec.rb spec/services/achievements/revoke_service_spec.rb spec/lib/gitlab/git/pre_receive_error_spec.rb spec/graphql/resolvers/crm/contact_state_counts_resolver_spec.rb spec/lib/gitlab/sourcegraph_spec.rb spec/lib/api/every_api_endpoint_spec.rb spec/graphql/mutations/user_callouts/create_spec.rb spec/serializers/rollout_status_entity_spec.rb spec/graphql/mutations/terraform/state/delete_spec.rb spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb spec/lib/gitlab/exception_log_formatter_spec.rb spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb spec/models/releases/evidence_spec.rb spec/graphql/resolvers/project_pipelines_resolver_spec.rb spec/lib/gitlab/shard_health_cache_spec.rb spec/models/work_items/widgets/start_and_due_date_spec.rb spec/services/achievements/create_service_spec.rb spec/serializers/admin/abuse_report_serializer_spec.rb spec/lib/gitlab/legacy_github_import/label_formatter_spec.rb spec/finders/packages/composer/packages_finder_spec.rb spec/lib/bulk_imports/pipeline/extracted_data_spec.rb spec/scripts/lib/glfm/shared_spec.rb spec/tooling/lib/tooling/test_map_generator_spec.rb spec/lib/gitlab/import_export/version_checker_spec.rb spec/models/users/banned_user_spec.rb spec/models/token_with_iv_spec.rb spec/lib/gitlab/jwt_token_spec.rb spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb spec/services/webauthn/register_service_spec.rb spec/workers/ci/delete_objects_worker_spec.rb spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb spec/lib/api/entities/application_setting_spec.rb spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb spec/lib/gitlab/graphql/mount_mutation_spec.rb spec/graphql/types/permission_types/base_permission_type_spec.rb spec/lib/gitlab/kroki_spec.rb spec/lib/gitlab/ci/config/entry/product/variables_spec.rb spec/graphql/types/merge_requests/assignee_type_spec.rb spec/services/ci/copy_cross_database_associations_service_spec.rb spec/lib/gitlab/ci/config/entry/ports_spec.rb spec/lib/api/entities/ci/job_request/port_spec.rb spec/lib/gitlab/usage_data_counters/search_counter_spec.rb spec/graphql/types/projects/fork_details_type_spec.rb spec/helpers/webpack_helper_spec.rb spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb spec/lib/gitlab/ci/build/policy_spec.rb spec/serializers/feature_flags_client_serializer_spec.rb spec/serializers/runner_entity_spec.rb spec/workers/gitlab/github_import/import_note_worker_spec.rb spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb spec/graphql/resolvers/package_details_resolver_spec.rb spec/lib/gitlab/sidekiq_versioning_spec.rb spec/services/clusters/build_service_spec.rb spec/graphql/types/ci/test_case_status_enum_spec.rb spec/graphql/types/container_repository_status_enum_spec.rb spec/graphql/types/description_version_type_spec.rb spec/graphql/types/snippets/blob_action_input_type_spec.rb spec/models/concerns/presentable_spec.rb spec/lib/gitlab/backtrace_cleaner_spec.rb spec/helpers/container_registry_helper_spec.rb spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb spec/services/projects/android_target_platform_detector_service_spec.rb spec/lib/gitlab/fogbugz_import/client_spec.rb spec/graphql/types/detployment_tag_type_spec.rb spec/lib/gitlab/database/async_constraints/validators_spec.rb spec/lib/gitlab/kubernetes/tls_secret_spec.rb spec/lib/gitlab/utils/execution_tracker_spec.rb spec/services/wiki_pages/base_service_spec.rb spec/db/production/add_security_training_providers_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/secure_menu_spec.rb spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb spec/rubocop/cop/gitlab/intersect_spec.rb spec/presenters/deploy_key_presenter_spec.rb spec/lib/gitlab/word_diff/segments/newline_spec.rb spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb spec/helpers/abuse_reports_helper_spec.rbKnapsack report generator started!1241warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.1243Run options: exclude {:quarantine=>true, :level=>"background_migration"}1244Test environment set up in 1.728982129 seconds1245Gitlab::GitAccess1246 #check with single protocols allowed1247 ssh disabled1248 blocks ssh git push and pull1249 http disabled1250 blocks http push and pull1251 when request is made from CI1252 doesn't block http pull1253 when legacy CI credentials are used1254 doesn't block http pull1255 #check_project_accessibility!1256 when the project exists1257 when actor exists1258 when actor is a DeployKey1259 when the DeployKey has access to the project1260 allows push and pull access1261 when the Deploykey does not have access to the project1262 blocks push and pull with "not found"1263 when the the deploy key is restricted with external_authorization1264 blocks push and pull with "not found"1265 when actor is a User1266 when the User can read the project1267 allows push and pull access1268 when the User cannot read the project1269 blocks push and pull with "not found"1270 when actor is :ci1271 disallows pull access1272 does not block pushes with "not found"1273 when actor is DeployToken1274 when DeployToken is active and belongs to project1275 allows pull access1276 blocks the push1277 when DeployToken does not belong to project1278 blocks pull access1279 blocks the push1280 when the the deploy token is restricted with external_authorization1281 blocks pull access1282 blocks the push1283 when actor is nil1284 when guests can read the project1285 allows pull access1286 does not block pushes with "not found"1287 when guests cannot read the project1288 blocks pulls with "not found"1289 blocks pushes with "not found"1290 when the project does not exist1291 blocks push and pull with "not found"1292 behaves like #check with a key that is not valid1293 key is expired1294 does not allow expired keys1295 key is too small1296 does not allow keys which are too small1297 key type is not allowed1298 does not allow keys which are too small1299 behaves like #check with a key that is not valid1300 key is expired1301 does not allow expired keys1302 key is too small1303 does not allow keys which are too small1304 key type is not allowed1305 does not allow keys which are too small1306 #add_project_moved_message!1307 when a redirect was not followed to find the project1308 allows push and pull access1309 with a redirect and ssh protocol1310 behaves like check_project_moved1311 enqueues a redirected message for pushing1312 allows push and pull access1313 with a redirect and http protocol1314 behaves like check_project_moved1315 enqueues a redirected message for pushing1316 allows push and pull access1317 #check_authentication_abilities!1318 when download1319 raises unauthorized with download error1320 when authentication abilities include download code1321 does not raise any errors1322 when authentication abilities include build download code1323 does not raise any errors1324 when upload1325 raises unauthorized with push error1326 when authentication abilities include push code1327 does not raise any errors1328 #check_command_disabled!1329 over http1330 when the git-upload-pack command is disabled in config1331 when calling git-upload-pack1332 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pulling over HTTP is not allowed."1333 when calling git-receive-pack1334 is expected not to raise Exception1335 when the git-receive-pack command is disabled in config1336 when calling git-receive-pack1337 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pushing over HTTP is not allowed."1338 when calling git-upload-pack1339 is expected not to raise Exception1340 #check_db_accessibility!1341 when in a read-only GitLab instance1342 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can't push code to a read-only GitLab instance."1343 #check_download_access!1344 allows maintainers to pull1345 disallows guests to pull1346 disallows blocked users to pull1347 disallows users that are blocked pending approval to pull1348 disallows deactivated users to pull1349 disallows users with expired password to pull1350 with an ldap user1351 allows ldap users with expired password to pull1352 when the project repository does not exist1353 returns not found1354 without access to project1355 pull code1356 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1357 when project is public1358 when repository is enabled1359 give access to download code1360 when repository is disabled1361 does not give access to download code1362 deploy key permissions1363 pull code1364 when project is public1365 when deploy key exists in the project1366 when the repository is public1367 is expected not to raise Exception1368 when the repository is private1369 is expected not to raise Exception1370 when the repository is disabled1371 is expected to raise Exception with "You are not allowed to download code from this project."1372 when deploy key does not exist in the project1373 when the repository is public1374 is expected not to raise Exception1375 when the repository is private1376 is expected to raise Exception with "You are not allowed to download code from this project."1377 when the repository is disabled1378 is expected to raise Exception with "You are not allowed to download code from this project."1379 when project is internal1380 when deploy key exists in the project1381 when the repository is public1382 is expected not to raise Exception1383 when the repository is private1384 is expected not to raise Exception1385 when the repository is disabled1386 is expected to raise Exception with "You are not allowed to download code from this project."1387 when deploy key does not exist in the project1388 when the repository is public1389 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1390 when the repository is private1391 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1392 when the repository is disabled1393 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1394 when project is private1395 when deploy key exists in the project1396 when the repository is private1397 is expected not to raise Exception1398 when the repository is disabled1399 is expected to raise Exception with "You are not allowed to download code from this project."1400 when deploy key does not exist in the project1401 when the repository is private1402 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1403 when the repository is disabled1404 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1405 deploy token permissions1406 pull code1407 when project is authorized1408 is expected not to raise Exception1409 when unauthorized1410 from public project1411 is expected not to raise Exception1412 from internal project1413 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1414 from private project1415 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1416 build authentication_abilities permissions1417 owner1418 pull code1419 is expected not to raise Exception1420 reporter user1421 pull code1422 is expected not to raise Exception1423 admin user1424 when admin mode enabled1425 when member of the project1426 pull code1427 is expected not to raise Exception1428 when is not member of the project1429 pull code1430 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to download code from this project."1431 when admin mode disabled1432 when member of the project1433 pull code1434 is expected not to raise Exception1435 when is not member of the project1436 pull code1437 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1438 generic CI (build without a user)1439 is expected to raise Gitlab::GitAccess::NotFoundError1440 check LFS integrity1441 when LFS is not enabled1442 does not run LFSIntegrity check1443 when LFS is enabled1444 checks LFS integrity only for first change1445 #check_push_access!1447 has the correct permissions for admin_with_admin_modes1448 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1449 has the correct permissions for maintainers1450 has the correct permissions for developers1451 has the correct permissions for reporters1452 has the correct permissions for guests1453 when developers are allowed to push into the exact protected branch1454 has the correct permissions for admin_with_admin_modes1455 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1456 has the correct permissions for maintainers1457 has the correct permissions for developers1458 has the correct permissions for reporters1459 has the correct permissions for guests1460 developers are allowed to merge into the exact protected branch1461 when a merge request exists for the given source/target branch1462 when the merge request is in progress1463 has the correct permissions for admin_with_admin_modes1464 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1465 has the correct permissions for maintainers1466 has the correct permissions for developers1467 has the correct permissions for reporters1468 has the correct permissions for guests1469 when the merge request is not in progress1470 has the correct permissions for admin_with_admin_modes1471 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1472 has the correct permissions for maintainers1473 has the correct permissions for developers1474 has the correct permissions for reporters1475 has the correct permissions for guests1476 when a merge request does not exist for the given source/target branch1477 has the correct permissions for admin_with_admin_modes1478 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1479 has the correct permissions for maintainers1480 has the correct permissions for developers1481 has the correct permissions for reporters1482 has the correct permissions for guests1483 when developers are allowed to push and merge into the exact protected branch1484 has the correct permissions for admin_with_admin_modes1485 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1486 has the correct permissions for maintainers1487 has the correct permissions for developers1488 has the correct permissions for reporters1489 has the correct permissions for guests1490 when no one is allowed to push to the feature protected branch1491 has the correct permissions for admin_with_admin_modes1492 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1493 has the correct permissions for maintainers1494 has the correct permissions for developers1495 has the correct permissions for reporters1496 has the correct permissions for guests1498 has the correct permissions for admin_with_admin_modes1499 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1500 has the correct permissions for maintainers1501 has the correct permissions for developers1502 has the correct permissions for reporters1503 has the correct permissions for guests1504 when developers are allowed to push into the wildcard protected branch1505 has the correct permissions for admin_with_admin_modes1506 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1507 has the correct permissions for maintainers1508 has the correct permissions for developers1509 has the correct permissions for reporters1510 has the correct permissions for guests1511 developers are allowed to merge into the wildcard protected branch1512 when a merge request exists for the given source/target branch1513 when the merge request is in progress1514 has the correct permissions for admin_with_admin_modes1515 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1516 has the correct permissions for maintainers1517 has the correct permissions for developers1518 has the correct permissions for reporters1519 has the correct permissions for guests1520 when the merge request is not in progress1521 has the correct permissions for admin_with_admin_modes1522 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1523 has the correct permissions for maintainers1524 has the correct permissions for developers1525 has the correct permissions for reporters1526 has the correct permissions for guests1527 when a merge request does not exist for the given source/target branch1528 has the correct permissions for admin_with_admin_modes1529 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1530 has the correct permissions for maintainers1531 has the correct permissions for developers1532 has the correct permissions for reporters1533 has the correct permissions for guests1534 when developers are allowed to push and merge into the wildcard protected branch1535 has the correct permissions for admin_with_admin_modes1536 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1537 has the correct permissions for maintainers1538 has the correct permissions for developers1539 has the correct permissions for reporters1540 has the correct permissions for guests1541 when no one is allowed to push to the feat* protected branch1542 has the correct permissions for admin_with_admin_modes1543 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1544 has the correct permissions for maintainers1545 has the correct permissions for developers1546 has the correct permissions for reporters1547 has the correct permissions for guests1548 when pushing to a project1549 disallows users that are blocked pending approval to push1550 does not allow deactivated users to push1551 disallows users with expired password to push1552 avoids N+1 queries1553 raises TimeoutError when #check_access! raises a timeout error1554 with an ldap user1555 allows ldap users with expired password to push1556 disallows blocked ldap users with expired password to push1557 build authentication abilities1558 when project is authorized1559 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1560 when unauthorized1561 to public project1562 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1563 to internal project1564 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1565 to private project1566 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1567 when the repository is read-only1568 denies push access1569 deploy key permissions1570 when deploy_key can push1571 when project is authorized1572 is expected not to raise Exception1573 when unauthorized1574 to public project1575 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1576 to internal project1577 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1578 to private project1579 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1580 when deploy_key cannot push1581 when project is authorized1582 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1583 when unauthorized1584 to public project1585 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1586 to internal project1587 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1588 to private project1589 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1590 terms are enforced1591 as an anonymous user to a public project1592 is expected not to raise Exception1593 as a guest to a public project1594 behaves like access after accepting terms1595 blocks access when the user did not accept terms1596 allows access when the user accepted the terms1597 as a reporter to the project1598 behaves like access after accepting terms1599 blocks access when the user did not accept terms1600 allows access when the user accepted the terms1601 as a developer of the project1602 behaves like access after accepting terms1603 blocks access when the user did not accept terms1604 allows access when the user accepted the terms1605 as a maintainer of the project1606 behaves like access after accepting terms1607 blocks access when the user did not accept terms1608 allows access when the user accepted the terms1609 as an owner of the project1610 behaves like access after accepting terms1611 blocks access when the user did not accept terms1612 allows access when the user accepted the terms1613 when a ci build clones the project1614 doesn't block http pull1615Gitlab::ImportExport::Project::TreeRestorer1616 behaves like project tree restorer work properly1617 restore project tree1618 JSON1619 restores models based on JSON1620 restore correct project features1621 has the project description1622 has the same label associated to two issues1623 has milestones associated to two separate issues1624 does not import ci config path1625 creates a valid pipeline note1626 pipeline has the correct user ID1627 restores pipelines with missing ref1628 restores pipeline for merge request1629 restores pipelines based on ascending id order1630 restores pipeline metadata1631 preserves updated_at on issues1632 has multiple issue assignees1633 restores timelogs for issues1634 contains the merge access levels on a protected branch1635 contains the push access levels on a protected branch1636 contains the create access levels on a protected tag1637 restores issue resource label events1638 restores issue resource milestone events1639 restores issue resource state events1640 restores merge requests resource label events1641 restores merge request resource milestone events1642 restores merge request resource state events1643 restores suggestion1644 has the correct data for merge request diff files1645 has the correct data for merge request diff commits1646 assigns committer and author details to all diff commits1647 assigns the correct commit users to different diff commits1648 has the correct data for merge request latest_merge_request_diff1649 has multiple merge request assignees1650 has multiple merge request reviewers1651 has labels associated to label links, associated to issues1652 has project labels1653 has merge request approvals1654 has no group labels1655 has issue boards1656 has lists associated with the issue board1657 has a project feature1658 has custom attributes1659 has badges1660 has snippets1661 has award emoji for a snippet1662 snippet has notes1663 snippet has award emojis on notes1664 restores `ci_cd_settings` : `group_runners_enabled` setting1665 restores `auto_devops`1666 restores zoom meetings1667 restores sentry issues1668 has award emoji for an issue1669 has award emoji for a note in an issue1670 restores container_expiration_policy1671 restores error_tracking_setting1672 restores external pull requests1673 restores pipeline schedules1674 restores commit notes1675 when importing a project with cached_markdown_version and note_html1676 for an Issue1677 does not import note_html1678 for a Merge Request1679 does not import note_html1680 merge request system note metadata1681 restores title action for unmark wip1682 restores commit action and commit count for pushing 3 commits1683 event at forth level of the tree1684 restores the event1685 has the action1686 event belongs to note, belongs to merge request, belongs to a project1687 restores releases1688 with links & milestones1689 with author1690 as ghost user when imported release author is empty1691 as existing member when imported release author is matched with existing user1692 as import user when imported release author cannot be matched1693 Merge requests1694 always has the new project as a target1695 has the same source project as originally if source/target are the same1696 has the new project as target if source/target differ1697 has no source if source/target differ1698 has award emoji1699 notes1700 has award emoji1701 tokens are regenerated1702 has new CI trigger tokens1703 has a new CI build token1704 has restored the correct number of records1705 has the correct number of merge requests1706 does not restore triggers1707 has the correct number of pipelines and statuses1708 when restoring hierarchy of pipeline, stages and jobs1709 restores pipelines1710 restores pipeline stages1711 correctly restores association between stage and a pipeline1712 restores builds1713 restores bridges1714 restores generic commit statuses1715 correctly restores association between a stage and a job1716 correctly restores association between a pipeline and a job1717 restores a Hash for CommitStatus options1718 restores external pull request for the restored pipeline1719 has no import failures1720 when expect tree structure is not present in the export path1721 fails to restore the project1722 Light JSON1723 with a simple project1724 issue system note metadata restored successfully1725 when there is an existing build with build token1726 behaves like restores project successfully1727 restores the project1728 has labels1729 has label priorities1730 has milestones1731 has issues1732 has ci pipelines1733 has external pull requests1734 does not set params that are excluded from import_export settings1735 records exact number of import failures1736 multiple pipelines reference the same external pull request1737 restores external pull request for the restored pipelines1738 behaves like restores project successfully1739 restores the project1740 has labels1741 has label priorities1742 has milestones1743 has issues1744 has ci pipelines1745 has external pull requests1746 does not set params that are excluded from import_export settings1747 records exact number of import failures1748 when post import action throw non-retriable exception1749 report post import error1750 when post import action throw retriable exception one time1751 records the failures in the database1752 behaves like restores project successfully1753 restores the project1754 has labels1755 has label priorities1756 has milestones1757 has issues1758 has ci pipelines1759 has external pull requests1760 does not set params that are excluded from import_export settings1761 records exact number of import failures1762 when the project has overridden params in import data1763 handles string versions of visibility_level1764 overwrites the params stored in the JSON1765 does not allow setting params that are excluded from import_export settings1766 overrides project feature access levels1767 with a project that has a group1768 restores issue states1769 behaves like restores project successfully1770 restores the project1771 has labels1772 has label priorities1773 has milestones1774 has issues1775 has ci pipelines1776 has external pull requests1777 does not set params that are excluded from import_export settings1778 records exact number of import failures1779 behaves like restores group correctly1780 has group label1781 has group milestone1782 has the correct visibility level1783 with existing group models1784 imports labels1785 imports milestones1786 with clashing milestones on IID1787 preserves the project milestone IID1788 with external authorization classification labels1789 converts empty external classification authorization labels to nil1790 preserves valid external classification authorization labels1791 Minimal JSON1792 visibility level1793 no group visibility1794 uses the project visibility1795 with restricted internal visibility1796 internal project1797 uses private visibility1798 with group visibility1799 private group visibility1800 uses the group visibility1801 public group visibility1802 uses the project visibility1803 internal group visibility1804 uses the group visibility1805 with restricted internal visibility1806 sets private visibility1807 with project members1808 restores project members1809 JSON with invalid records1810 when failures occur because a relation fails to be processed1811 records the failures in the database1812 behaves like restores project successfully1813 restores the project1814 has labels1815 has label priorities1816 has milestones1817 has issues1818 has ci pipelines1819 has external pull requests1820 does not set params that are excluded from import_export settings1821 records exact number of import failures1822 JSON with design management data1823 restores project associations correctly1824 behaves like restores project successfully1825 restores the project1826 has labels1827 has label priorities1828 has milestones1829 has issues1830 has ci pipelines1831 has external pull requests1832 does not set params that are excluded from import_export settings1833 records exact number of import failures1834 restores issue associations correctly1835 index: 0, design_filenames: ["chirrido3.jpg", "jonathan_richman.jpg", "mariavontrap.jpeg"], version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"], events: ["creation", "creation", "creation", "modification", "modification", "deletion"], author_emails: ["user_1@gitlabexample.com", "user_1@gitlabexample.com", "user_2@gitlabexample.com"]1836 is expected to contain exactly "user_1@gitlabexample.com", "user_1@gitlabexample.com", and "user_2@gitlabexample.com"1837 index: 1, design_filenames: ["1 (1).jpeg", "2099743.jpg", "a screenshot (1).jpg", "chirrido3.jpg"], version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"], events: ["creation", "creation", "creation", "creation", "modification"], author_emails: ["user_1@gitlabexample.com", "user_2@gitlabexample.com", "user_2@gitlabexample.com"]1838 is expected to contain exactly "user_1@gitlabexample.com", "user_2@gitlabexample.com", and "user_2@gitlabexample.com"1839 restores design version associations correctly1840 index: 0, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]1841 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4" and "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"1842 index: 1, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4"]1843 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4"1844 index: 2, version_shas: ["c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]1845 is expected to contain exactly "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"1846 index: 3, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]1847 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"1848 index: 4, version_shas: ["8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"]1849 is expected to contain exactly "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"1850 index: 5, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]1851 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85" and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"1852 index: 6, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85"]1853 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85"1854MergeRequests::CreateService1855 #execute1856 valid params1857 creates an MR1858 executes hooks with default action1859 refreshes the number of open merge requests1860 creates exactly 1 create MR event1861 sets the merge_status to preparing1862 when marked with /draft1863 in title and in description1864 sets MR to draft1865 in description only1866 sets MR to draft1867 when merge request is assigned to someone1868 is expected to eq [#<User id:578 @user288>]1869 when reviewer is assigned1870 is expected to eq [#<User id:581 @user290>]1871 invalidates counter cache for reviewers1872 when head pipelines already exist for merge request source branch1873 sets head pipeline1874 when the new pipeline is associated with an old sha1875 sets an old pipeline with associated with the latest sha as the head pipeline1876 when there are no pipelines with the diff head sha1877 does not set the head pipeline1878 Pipelines for merge requests1879 when .gitlab-ci.yml has merge_requests keywords1880 creates a detached merge request pipeline and sets it as a head pipeline1881 when merge request is submitted from forked project1882 create detached merge request pipeline for fork merge request1883 when there are no commits between source branch and target branch1884 does not create a detached merge request pipeline1885 when branch pipeline was created before a merge request pipline has been created1886 sets the latest detached merge request pipeline as the head pipeline1887 when .gitlab-ci.yml does not have merge_requests keywords1888 does not create a detached merge request pipeline1889 when .gitlab-ci.yml is invalid1890 persists a pipeline with config error1891 after_save callback to store_mentions1892 when mentionable attributes change1893 saves mentions1894 when mentionable attributes do not change1895 does not call store_mentions1896 when save fails1897 does not call store_mentions1898 with a milestone1899 deletes the cache key for milestone merge request counter1900 behaves like reviewer_ids filter1901 filter_reviewer1902 without reviewer_ids1903 contains no reviewer_ids1904 with reviewer_ids1905 when the current user can admin the merge_request1906 with a reviewer who can read the merge_request1907 contains reviewers who can read the merge_request1908 when the current_user cannot admin the merge_request1909 contains no reviewers1910 when called in a transaction1911 does not raise an error1912 behaves like issuable record that supports quick actions1913 with labels in command only1914 attaches labels to issuable1915 with labels in params and command1916 attaches all labels to issuable1917 with assignee and milestone in command only1918 assigns and sets milestone to issuable1919 Quick actions1920 with assignee and milestone in params and command1921 assigns and sets milestone to issuable from command1922 merge request create service1923 asssignee_id1924 removes assignee_id when user id is invalid1925 removes assignee_id when user id is 01926 saves assignee when user id is valid1927 when assignee is set1928 invalidates open merge request counter for assignees when merge request is assigned1929 when issuable feature is private1930 removes not authorized assignee when project is Internal1931 removes not authorized assignee when project is Public1932 behaves like when source and target projects are different1933 when user can not access source project1934 raises an error1935 when user can not access target project1936 raises an error1937 when the user has access to both projects1938 creates the merge request1939 does not create the merge request when the target project is archived1940 when user sets source project id1941 ignores source_project_id1942GroupPolicy1943 # order random1944 has projects1945 is expected to be allowed :read_issue_board1946 in subgroups1947 is expected to be allowed :read_issue_board1948 support bot1949 is expected not to be allowed :read_label1950 when group hierarchy has a project with service desk enabled1951 is expected to be allowed :read_label1952 is expected to be allowed :read_label1953 private nested group use the highest access level from the group and inherited permissions1954 with no user1955 is expected not to be allowed :admin_member_access_request1956 guests1957 is expected not to be allowed :admin_member_access_request1958 reporter1959 is expected not to be allowed :admin_member_access_request1960 developer1961 is expected not to be allowed :admin_member_access_request1962 maintainer1963 is expected not to be allowed :admin_member_access_request1964 owner1965 is expected to be allowed :admin_member_access_request1966 update_runners_registration_token1967 admin1968 when admin mode is enabled1969 is expected to be allowed :update_runners_registration_token1970 when admin mode is disabled1971 is expected to be disallowed :update_runners_registration_token1972 with owner1973 is expected to be allowed :update_runners_registration_token1974 with maintainer1975 is expected to be disallowed :update_runners_registration_token1976 with reporter1977 is expected to be disallowed :update_runners_registration_token1978 with guest1979 is expected to be disallowed :update_runners_registration_token1980 with non member1981 is expected to be disallowed :update_runners_registration_token1982 with anonymous1983 is expected to be disallowed :update_runners_registration_token1984 change_share_with_group_lock1985 when the current_user owns the group1986 when the group share_with_group_lock is enabled1987 when the parent group share_with_group_lock is enabled1988 when the group has a grandparent1989 when the grandparent share_with_group_lock is enabled1990 when the current_user owns the parent1991 when the current_user owns the grandparent1992 is expected to be allowed :change_share_with_group_lock1993 when the current_user does not own the grandparent1994 is expected not to be allowed :change_share_with_group_lock1995 when the current_user does not own the parent1996 is expected not to be allowed :change_share_with_group_lock1997 when the grandparent share_with_group_lock is disabled1998 when the current_user owns the parent1999 is expected to be allowed :change_share_with_group_lock2000 when the current_user does not own the parent2001 is expected not to be allowed :change_share_with_group_lock2002 when the group does not have a grandparent2003 when the current_user owns the parent2004 is expected to be allowed :change_share_with_group_lock2005 when the current_user does not own the parent2006 is expected not to be allowed :change_share_with_group_lock2007 when the parent group share_with_group_lock is disabled2008 is expected to be allowed :change_share_with_group_lock2009 when the group share_with_group_lock is disabled2010 is expected to be allowed :change_share_with_group_lock2011 when the current_user does not own the group2012 is expected not to be allowed :change_share_with_group_lock2013 private group that has been invited to a public project and with a foreign user2014 is expected not to be allowed :admin_member_access_request2015 reporter2016 is expected not to be allowed :admin_member_access_request2017 behaves like deploy token does not get confused with user2018 is expected not to be allowed :admin_member_access_request2019 dependency proxy2020 feature disabled2021 is expected to be disallowed :read_dependency_proxy2022 is expected to be disallowed :admin_dependency_proxy2023 feature enabled2024 reporter2025 is expected to be allowed :read_dependency_proxy2026 is expected to be disallowed :admin_dependency_proxy2027 developer2028 is expected to be allowed :read_dependency_proxy2029 is expected to be disallowed :admin_dependency_proxy2030 maintainer2031 is expected to be allowed :read_dependency_proxy2032 is expected to be allowed :admin_dependency_proxy2033 behaves like Self-managed Core resource access tokens2034 with owner access2035 create resource access tokens2036 is expected to be allowed :create_resource_access_tokens2037 when resource access token creation is not allowed2038 is expected not to be allowed :create_resource_access_tokens2039 when parent group has project access token creation disabled2040 is expected not to be allowed :create_resource_access_tokens2041 with a personal namespace project2042 is expected to be allowed :create_resource_access_tokens2043 read resource access tokens2044 is expected to be allowed :read_resource_access_tokens2045 destroy resource access tokens2046 is expected to be allowed :destroy_resource_access_tokens2047 with developer access2048 create resource access tokens2049 is expected not to be allowed :create_resource_access_tokens2050 read resource access tokens2051 is expected not to be allowed :read_resource_access_tokens2052 destroy resource access tokens2053 is expected not to be allowed :destroy_resource_access_tokens2054 create_projects2055 when group has no project creation level set2056 reporter2057 is expected to be disallowed :create_projects2058 developer2059 is expected to be allowed :create_projects2060 maintainer2061 is expected to be allowed :create_projects2062 owner2063 is expected to be allowed :create_projects2064 when group has project creation level set to no one2065 reporter2066 is expected to be disallowed :create_projects2067 developer2068 is expected to be disallowed :create_projects2069 maintainer2070 is expected to be disallowed :create_projects2071 owner2072 is expected to be disallowed :create_projects2073 when group has project creation level set to maintainer only2074 reporter2075 is expected to be disallowed :create_projects2076 developer2077 is expected to be disallowed :create_projects2078 maintainer2079 is expected to be allowed :create_projects2080 owner2081 is expected to be allowed :create_projects2082 when group has project creation level set to developers + maintainer2083 reporter2084 is expected to be disallowed :create_projects2085 developer2086 is expected to be allowed :create_projects2087 maintainer2088 is expected to be allowed :create_projects2089 owner2090 is expected to be allowed :create_projects2091 deploy token access2092 a deploy token with read_package_registry scope2093 is expected to be allowed :read_package2094 is expected to be allowed :read_group2095 is expected to be disallowed :create_package2096 a deploy token with write_package_registry scope2097 is expected to be allowed :create_package2098 is expected to be allowed :read_package2099 is expected to be allowed :read_group2100 is expected to be disallowed :destroy_package2101 a deploy token with dependency proxy scopes2102 is expected to be allowed :read_dependency_proxy2103 is expected to be disallowed :admin_dependency_proxy2104 maintainer2105 with subgroup_creation level set to maintainer2106 allows every maintainer permission plus creating subgroups2107 with subgroup_creation_level set to owner2108 allows every maintainer permission2109 behaves like deploy token does not get confused with user2110 is expected not to be allowed :admin_member_access_request2111 achievements2112 is expected to be allowed :read_achievement2113 is expected to be allowed :admin_achievement2114 is expected to be allowed :award_achievement2115 with feature flag disabled2116 is expected to be disallowed :read_achievement2117 is expected to be disallowed :admin_achievement2118 is expected to be disallowed :award_achievement2119 admin2120 is expected not to be allowed :admin_member_access_request2121 with admin mode2122 is expected to be allowed :read_internal_note2123 behaves like deploy token does not get confused with user2124 is expected not to be allowed :admin_member_access_request2125 with admin mode2126 is expected not to be allowed :read_internal_note2127 project bots2128 project_bot_access2129 when regular user and part of the group2130 is expected not to be allowed :project_bot_access2131 when project bot and not part of the project2132 is expected not to be allowed :project_bot_access2133 when project bot and part of the project2134 is expected to be allowed :project_bot_access2135 with resource access tokens2136 is expected not to be allowed :create_resource_access_tokens2137 guests2138 is expected not to be allowed :admin_member_access_request2139 behaves like deploy token does not get confused with user2140 is expected not to be allowed :admin_member_access_request2141 transfer_projects2142 reporter2143 behaves like not allowed to transfer projects2144 is expected to be disallowed :transfer_projects2145 behaves like not allowed to transfer projects2146 is expected to be disallowed :transfer_projects2147 behaves like not allowed to transfer projects2148 is expected to be disallowed :transfer_projects2149 developer2150 behaves like not allowed to transfer projects2151 is expected to be disallowed :transfer_projects2152 behaves like not allowed to transfer projects2153 is expected to be disallowed :transfer_projects2154 behaves like not allowed to transfer projects2155 is expected to be disallowed :transfer_projects2156 maintainer2157 behaves like not allowed to transfer projects2158 is expected to be disallowed :transfer_projects2159 behaves like allowed to transfer projects2160 is expected to be allowed :transfer_projects2161 behaves like allowed to transfer projects2162 is expected to be allowed :transfer_projects2163 owner2164 behaves like not allowed to transfer projects2165 is expected to be disallowed :transfer_projects2166 behaves like allowed to transfer projects2167 is expected to be allowed :transfer_projects2168 behaves like allowed to transfer projects2169 is expected to be allowed :transfer_projects2170 private group that has been invited to a public project and with no user2171 is expected not to be allowed :admin_member_access_request2172 update_max_artifacts_size2173 when no user2174 is expected not to be allowed :update_max_artifacts_size2175 admin2176 when admin mode is enabled2177 is expected to be allowed :update_max_artifacts_size2178 when admin mode is enabled2179 is expected not to be allowed :update_max_artifacts_size2180 guest2181 is expected not to be allowed :update_max_artifacts_size2182 reporter2183 is expected not to be allowed :update_max_artifacts_size2184 developer2185 is expected not to be allowed :update_max_artifacts_size2186 maintainer2187 is expected not to be allowed :update_max_artifacts_size2188 owner2189 is expected not to be allowed :update_max_artifacts_size2190 create_jira_connect_subscription2191 admin2192 when admin mode is enabled2193 is expected to be allowed :create_jira_connect_subscription2194 when admin mode is disabled2195 is expected to be disallowed :create_jira_connect_subscription2196 with owner2197 is expected to be allowed :create_jira_connect_subscription2198 with maintainer2199 is expected to be allowed :create_jira_connect_subscription2200 with reporter2201 is expected to be disallowed :create_jira_connect_subscription2202 with guest2203 is expected to be disallowed :create_jira_connect_subscription2204 with non member2205 is expected to be disallowed :create_jira_connect_subscription2206 with anonymous2207 is expected to be disallowed :create_jira_connect_subscription2208 when crm_enabled is false2209 is expected to be disallowed :read_crm_contact2210 is expected to be disallowed :read_crm_organization2211 is expected to be disallowed :admin_crm_contact2212 is expected to be disallowed :admin_crm_organization2213 design activity2214 when design management is not available2215 is expected not to be allowed :read_design_activity2216 even when there are projects in the group2217 is expected not to be allowed :read_design_activity2218 when design management is available globally2219 the group has no projects2220 is expected not to be allowed :read_design_activity2221 the group has a project2222 is expected to be allowed :read_design_activity2223 which does not have design management enabled2224 is expected not to be allowed :read_design_activity2225 but another project does2226 is expected to be allowed :read_design_activity2227 read_package2228 admin2229 when admin mode is enabled2230 is expected to be allowed :read_package2231 when admin mode is disabled2232 is expected to be disallowed :read_package2233 with owner2234 is expected to be allowed :read_package2235 with maintainer2236 is expected to be allowed :read_package2237 with reporter2238 is expected to be allowed :read_package2239 with guest2240 is expected to be disallowed :read_package2241 with non member2242 is expected to be disallowed :read_package2243 with anonymous2244 is expected to be disallowed :read_package2245 owner2246 is expected to be allowed :admin_member_access_request2247 behaves like deploy token does not get confused with user2248 is expected not to be allowed :admin_member_access_request2249 create_subgroup2250 when group has subgroup creation level set to owner2251 reporter2252 is expected to be disallowed :create_subgroup2253 developer2254 is expected to be disallowed :create_subgroup2255 maintainer2256 is expected to be disallowed :create_subgroup2257 owner2258 is expected to be allowed :create_subgroup2259 when group has subgroup creation level set to maintainer2260 reporter2261 is expected to be disallowed :create_subgroup2262 developer2263 is expected to be disallowed :create_subgroup2264 maintainer2265 is expected to be allowed :create_subgroup2266 owner2267 is expected to be allowed :create_subgroup2268 change_prevent_sharing_groups_outside_hierarchy2269 with owner2270 is expected to be allowed :change_prevent_sharing_groups_outside_hierarchy2271 with non-owner roles2272 role: "admin"2273 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy2274 role: "maintainer"2275 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy2276 role: "reporter"2277 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy2278 role: "developer"2279 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy2280 role: "guest"2281 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy2282 create_group_runners2283 create_runner_workflow_for_namespace flag enabled2284 admin2285 when admin mode is enabled2286 is expected to be allowed :create_group_runners2287 with specific group runner registration disabled2288 is expected to be allowed :create_group_runners2289 with group runner registration disabled2290 with specific group runner registration enabled2291 is expected to be allowed :create_group_runners2292 with specific group runner registration disabled2293 is expected to be allowed :create_group_runners2294 when admin mode is disabled2295 is expected to be disallowed :create_group_runners2296 with owner2297 is expected to be allowed :create_group_runners2298 behaves like disallowed when group runner registration disabled2299 with group runner registration disabled2300 with specific group runner registration enabled2301 is expected to be disallowed :create_group_runners2302 with specific group runner registration disabled2303 is expected to be disallowed :create_group_runners2304 with maintainer2305 is expected to be disallowed :create_group_runners2306 with reporter2307 is expected to be disallowed :create_group_runners2308 with guest2309 is expected to be disallowed :create_group_runners2310 with developer2311 is expected to be disallowed :create_group_runners2312 with anonymous2313 is expected to be disallowed :create_group_runners2314 with create_runner_workflow_for_namespace flag disabled2315 admin2316 when admin mode is enabled2317 is expected to be disallowed :create_group_runners2318 with specific group runner registration disabled2319 is expected to be disallowed :create_group_runners2320 behaves like disallowed when group runner registration disabled2321 with group runner registration disabled2322 with specific group runner registration enabled2323 is expected to be disallowed :create_group_runners2324 with specific group runner registration disabled2325 is expected to be disallowed :create_group_runners2326 when admin mode is disabled2327 is expected to be disallowed :create_group_runners2328 with owner2329 is expected to be disallowed :create_group_runners2330 behaves like disallowed when group runner registration disabled2331 with group runner registration disabled2332 with specific group runner registration enabled2333 is expected to be disallowed :create_group_runners2334 with specific group runner registration disabled2335 is expected to be disallowed :create_group_runners2336 with maintainer2337 is expected to be disallowed :create_group_runners2338 with reporter2339 is expected to be disallowed :create_group_runners2340 with guest2341 is expected to be disallowed :create_group_runners2342 with developer2343 is expected to be disallowed :create_group_runners2344 with anonymous2345 is expected to be disallowed :create_group_runners2346 read_group_all_available_runners2347 admin2348 when admin mode is enabled2349 is expected to be allowed :read_group_all_available_runners2350 when admin mode is disabled2351 is expected to be disallowed :read_group_all_available_runners2352 with owner2353 is expected to be allowed :read_group_all_available_runners2354 with maintainer2355 is expected to be allowed :read_group_all_available_runners2356 with developer2357 is expected to be allowed :read_group_all_available_runners2358 with reporter2359 is expected to be disallowed :read_group_all_available_runners2360 with guest2361 is expected to be disallowed :read_group_all_available_runners2362 with non member2363 is expected to be disallowed :read_group_all_available_runners2364 with anonymous2365 is expected to be disallowed :read_group_all_available_runners2366 read_usage_quotas policy2367 reading usage quotas2368 role: :owner, admin_mode: nil, allowed: true2369 is expected to be allowed :read_usage_quotas2370 role: :admin, admin_mode: true, allowed: true2371 is expected to be allowed :read_usage_quotas2372 role: :admin, admin_mode: false, allowed: false2373 is expected to be disallowed :read_usage_quotas2374 role: :maintainer, admin_mode: nil, allowed: false2375 is expected to be disallowed :read_usage_quotas2376 role: :developer, admin_mode: nil, allowed: false2377 is expected to be disallowed :read_usage_quotas2378 role: :reporter, admin_mode: nil, allowed: false2379 is expected to be disallowed :read_usage_quotas2380 role: :guest, admin_mode: nil, allowed: false2381 is expected to be disallowed :read_usage_quotas2382 public group with no user2383 is expected not to be allowed :read_namespace2384 observability2385 feature_enabled: false, admin_matcher: disallowed, owner_matcher: disallowed, maintainer_matcher: disallowed, developer_matcher: disallowed, reporter_matcher: disallowed, guest_matcher: disallowed, non_member_matcher: disallowed, anonymous_matcher: disallowed2386 admin2387 is expected to be disallowed :admin_observability2388 owner2389 is expected to be disallowed :admin_observability2390 maintainer2391 is expected to be disallowed :admin_observability2392 developer2393 is expected to be disallowed :admin_observability2394 reporter2395 is expected to be disallowed :admin_observability2396 with guest2397 is expected to be disallowed :admin_observability2398 with non member2399 is expected to be disallowed :admin_observability2400 with anonymous2401 is expected to be disallowed :admin_observability2402 feature_enabled: true, admin_matcher: allowed_admin, owner_matcher: allowed_admin, maintainer_matcher: allowed_admin, developer_matcher: allowed_read, reporter_matcher: disallowed, guest_matcher: disallowed, non_member_matcher: disallowed, anonymous_matcher: disallowed2403 admin2404 is expected to be allowed :admin_observability2405 owner2406 is expected to be allowed :admin_observability2407 maintainer2408 is expected to be allowed :admin_observability2409 developer2410 is expected to be disallowed :admin_observability2411 reporter2412 is expected to be disallowed :admin_observability2413 with guest2414 is expected to be disallowed :admin_observability2415 with non member2416 is expected to be disallowed :admin_observability2417 with anonymous2418 is expected to be disallowed :admin_observability2419 behaves like checks timelog categories permissions2420 with no user2421 is expected to be disallowed :read_timelog_category2422 with a regular user2423 is expected to be disallowed :read_timelog_category2424 with a reporter user2425 when timelog_categories is enabled2426 is expected to be allowed :read_timelog_category2427 when timelog_categories is disabled2428 is expected to be disallowed :read_timelog_category2429 migration bot2430 aggregate_failures2431 behaves like deploy token does not get confused with user2432 is expected not to be allowed :admin_member_access_request2433 with no user2434 aggregate_failures2435 developer2436 is expected not to be allowed :admin_member_access_request2437 behaves like deploy token does not get confused with user2438 is expected not to be allowed :admin_member_access_request2439 register_group_runners2440 admin2441 when admin mode is enabled2442 is expected to be allowed :register_group_runners2443 with specific group runner registration disabled2444 is expected to be allowed :register_group_runners2445 with group runner registration disabled2446 is expected to be allowed :register_group_runners2447 with specific group runner registration disabled2448 is expected to be allowed :register_group_runners2449 when admin mode is disabled2450 is expected to be disallowed :register_group_runners2451 with owner2452 is expected to be allowed :register_group_runners2453 with group runner registration disabled2454 is expected to be disallowed :register_group_runners2455 with specific group runner registration disabled2456 is expected to be disallowed :register_group_runners2457 with maintainer2458 is expected to be disallowed :register_group_runners2459 with reporter2460 is expected to be disallowed :register_group_runners2461 with guest2462 is expected to be disallowed :register_group_runners2463 with non member2464 is expected to be disallowed :register_group_runners2465 with anonymous2466 is expected to be disallowed :register_group_runners2467 public group with user who is not a member2468 is expected not to be allowed :read_namespace2469 behaves like clusterable policies2470 #add_cluster?2471 with a reporter2472 is expected not to be allowed :read_cluster2473 is expected not to be allowed :add_cluster2474 is expected not to be allowed :create_cluster2475 is expected not to be allowed :update_cluster2476 is expected not to be allowed :admin_cluster2477 with a developer2478 is expected to be allowed :read_cluster2479 is expected not to be allowed :add_cluster2480 is expected not to be allowed :create_cluster2481 is expected not to be allowed :update_cluster2482 is expected not to be allowed :admin_cluster2483 with a maintainer2484 with no clusters2485 is expected to be allowed :read_cluster2486 is expected to be allowed :add_cluster2487 is expected to be allowed :create_cluster2488 is expected to be allowed :update_cluster2489 is expected to be allowed :admin_cluster2490Integration2491 Associations2492 is expected to belong to project required: false inverse_of => integrations2493 is expected to belong to group required: false inverse_of => integrations2494 is expected to have one issue_tracker_data class_name => Integrations::IssueTrackerData inverse_of => integration2495 is expected to have one jira_tracker_data class_name => Integrations::JiraTrackerData inverse_of => integration2496 default values2497 is expected to be alert events2498 is expected to be commit events2499 is expected to be confidential issues events2500 is expected to be confidential note events2501 is expected to be issues events2502 is expected to be job events2503 is expected to be merge requests events2504 is expected to be note events2505 is expected to be pipeline events2506 is expected to be push events2507 is expected to be tag push events2508 is expected to be wiki page events2509 is expected not to be active2510 is expected not to be incident events2511 is expected to eq :common2512 validations2513 is expected to validate that :type cannot be empty/falsy2514 is expected to validate that :type is neither ‹"Integrations::BaseChatNotification"›, ‹"Integrations::BaseCi"›, ‹"Integrations::BaseIssueTracker"›, ‹"Integrations::BaseMonitoring"›, ‹"Integrations::BaseSlackNotification"›, ‹"Integrations::BaseSlashCommands"›, nor ‹"Integrations::BaseThirdPartyWiki"›2515 project_id: 1, group_id: nil, instance: false, valid: true2516 validates the integration2517 project_id: nil, group_id: 1, instance: false, valid: true2518 validates the integration2519 project_id: nil, group_id: nil, instance: true, valid: true2520 validates the integration2521 project_id: nil, group_id: nil, instance: false, valid: false2522 validates the integration2523 project_id: 1, group_id: 1, instance: false, valid: false2524 validates the integration2525 project_id: 1, group_id: nil, instance: false, valid: true2526 validates the integration2527 project_id: 1, group_id: nil, instance: true, valid: false2528 validates the integration2529 project_id: nil, group_id: 1, instance: false, valid: true2530 validates the integration2531 project_id: nil, group_id: 1, instance: true, valid: false2532 validates the integration2533 with existing integrations2534 allows only one instance integration per type2535 allows only one project integration per type2536 allows only one group integration per type2537 Scopes2538 .third_party_wikis2539 returns the right group integration2540 .with_default_settings2541 returns the correct integrations2542 .with_custom_settings2543 returns the correct integrations2544 .by_type2545 when type is "Integrations::JiraService"2546 is expected to contain exactly #<Integrations::Jira id: 12, project_id: 341, created_at: "2023-04-12 14:48:16.193305813 +0000", upda...crypted_properties_iv: "\x94\x81[\xE3d\x04I\x94\x8B*M\x02", incident_events: false, properties: nil> and #<Integrations::Jira id: 13, project_id: 344, created_at: "2023-04-12 14:48:16.580136515 +0000", upda...encrypted_properties_iv: "^=\x97\xEB\e\xB9f!\xB5\x82\xAEF", incident_events: false, properties: nil>2547 when type is "Integrations::Redmine"2548 is expected to contain exactly #<Integrations::Redmine id: 17, project_id: 347, created_at: "2023-04-12 14:48:18.201688326 +0000", u...pted_properties_iv: "\xAE\xC6<dzG\xF2\xBE\xBA\x14\xC8\xA0", incident_events: false, properties: nil>2549 .for_group2550 returns the right group integration2551 .confidential_note_hooks2552 includes services where confidential_note_events is true2553 excludes services where confidential_note_events is false2554 .alert_hooks2555 includes services where alert_events is true2556 excludes services where alert_events is false2557 .archive_trace_hooks2558 includes services where archive_trace_events is true2559 excludes services where archive_trace_events is false2560 .incident_hooks2561 includes services where incident_events is true2562 excludes services where incident_events is false2563 #operating?2564 is false when the integration is not active2565 is false when the integration is not persisted2566 is true when the integration is active and persisted2567 #testable?2568 when integration is project-level2569 is expected to be testable2570 when integration is not project-level2571 is expected not to be testable2572 #test2573 calls #execute2574 returns a result2575 #project_level?2576 is true when integration has a project2577 is false when integration has no project2578 #group_level?2579 is true when integration has a group2580 is false when integration has no group2581 #instance_level?2582 is true when integration has instance-level integration2583 is false when integration does not have instance-level integration2584 #chat?2585 is true when integration is chat integration2586 is false when integration is not chat integration2587 .find_or_initialize_non_project_specific_integration2588 returns the right integration2589 does not create a new integration2590 .find_or_initialize_all_non_project_specific2591 behaves like integration instances2592 returns the available integration instances2593 does not create integration instances2594 with all existing instances2595 behaves like integration instances2596 returns the available integration instances2597 does not create integration instances2598 with a previous existing integration (:mock_ci) and a new integration (:asana)2599 behaves like integration instances2600 returns the available integration instances2601 does not create integration instances2602 with a few existing instances2603 behaves like integration instances2604 returns the available integration instances2605 does not create integration instances2606 #inheritable?2607 is true for an instance integration2608 is true for a group integration2609 is false for a project integration2610 .build_from_integration2611 when integration is invalid2612 sets integration to inactive2613 when integration is an instance-level integration2614 sets inherit_from_id from integration2615 when integration is a group-level integration2616 sets inherit_from_id from integration2617 build issue tracker from an integration2618 when data is stored in properties2619 behaves like integration creation from an integration2620 creates a correct integration for a project integration2621 creates a correct integration for a group integration2622 when data are stored in separated fields2623 behaves like integration creation from an integration2624 creates a correct integration for a project integration2625 creates a correct integration for a group integration2626 when data are stored in both properties and separated fields2627 behaves like integration creation from an integration2628 creates a correct integration for a project integration2629 creates a correct integration for a group integration2630 .default_integration2631 with an instance-level integration2632 returns the instance integration2633 returns nil for nonexistent integration type2634 with a group integration2635 returns the group integration for a project2636 returns the instance integration for a group2637 with a subgroup2638 returns the closest group integration for a project2639 returns the closest group integration for a subgroup2640 having a integration with custom settings2641 returns the closest group integration for a project2642 having a integration inheriting settings2643 returns the closest group integration which does not inherit from its parent for a project2644 .create_from_active_default_integrations2645 with an active instance-level integration2646 creates an integration from the instance-level integration2647 passing a group2648 creates an integration from the instance-level integration2649 with an active group-level integration2650 creates an integration from the group-level integration2651 there are multiple inheritable integrations, and a duplicate2652 returns the number of successfully created integrations2653 passing a group2654 creates an integration from the group-level integration2655 with an active subgroup2656 creates an integration from the subgroup-level integration2657 passing a group2658 traversal queries2659 recursive2660 creates an integration from the subgroup-level integration2661 having an integration inheriting settings2662 creates an integration from the group-level integration2663 linear2664 creates an integration from the subgroup-level integration2665 having an integration inheriting settings2666 creates an integration from the group-level integration2667 .inherited_descendants_from_self_or_ancestors_from2668 returns the groups and projects inheriting from integration ancestors2669 .integration_name_to_type2670 handles a simple case2671 raises an error if the name is unknown2672 handles all available_integration_names2673 .integration_name_to_model2674 raises an error if integration name is invalid2675 {property}_changed?2676 returns false when the property has not been assigned a new value2677 returns true when the property has been assigned a different value2678 returns true when the property has been assigned a different value twice2679 returns false when the property has been re-assigned the same value2680 returns false when the property has been assigned a new value then saved2681 #properties=2682 supports indifferent access2683 #properties2684 is not mutable2685 {property}_touched?2686 returns false when the property has not been assigned a new value2687 returns true when the property has been assigned a different value2688 returns true when the property has been assigned a different value twice2689 returns true when the property has been re-assigned the same value2690 returns false when the property has been assigned a new value then saved2691 {property}_was2692 returns nil when the property has not been assigned a new value2693 returns the previous value when the property has been assigned a different value2694 returns initial value when the property has been re-assigned the same value2695 returns initial value when the property has been assigned multiple values2696 returns nil when the property has been assigned a new value then saved2697 initialize integration with no properties2698 does not raise error2699 sets data correctly2700 field definitions2701 when the class overrides #fields2702 behaves like #fields2703 does not return the same array2704 behaves like #api_field_names2705 filters out secret fields2706 behaves like #form_fields2707 filters out API only fields2708 when the class uses the field DSL2709 behaves like #fields2710 does not return the same array2711 behaves like #api_field_names2712 filters out secret fields2713 behaves like #form_fields2714 filters out API only fields2715 logging2716 logs info messages using json logger2717 logs error messages using json logger2718 when project is nil2719 logs info messages using json logger2720 logging exceptions2721 logs exceptions using json logger2722 logs exceptions using json logger with a custom message2723 .available_integration_names2724 is expected to include "foo", "bar", and "baz"2725 when `include_project_specific` is false2726 is expected to include "foo" and "baz"2727 is expected not to include "bar"2728 when `include_dev` is false2729 is expected to include "foo" and "bar"2730 is expected not to include "baz"2731 .project_specific_integration_names2732 is expected to include "apple_app_store", "google_play", "jenkins", and "shimo"2733 #secret_fields2734 returns all fields with type `password`2735 returns an empty array if no secret fields exist2736 #to_database_hash2737 does not include the properties key2738 does not include certain attributes2739 saves correctly using insert_all2740 decrypts encrypted properties correctly2741 when the properties are empty2742 is part of the to_database_hash2743 saves correctly using insert_all2744 field DSL2745 checks the value of storage2746 provides prop_accessors2747 provides boolean accessors for checkbox fields2748 provides data fields2749 registers fields in the fields list2750 fields have expected attributes2751 boolean_accessor2752 returns values when initialized without input2753 input: true, method_result: true, predicate_method_result: true2754 has the correct value2755 when using data fields2756 has the correct value2757 input: false, method_result: false, predicate_method_result: false2758 has the correct value2759 when using data fields2760 has the correct value2761 input: 1, method_result: true, predicate_method_result: true2762 has the correct value2763 when using data fields2764 has the correct value2765 input: 0, method_result: false, predicate_method_result: false2766 has the correct value2767 when using data fields2768 has the correct value2769 input: "1", method_result: true, predicate_method_result: true2770 has the correct value2771 when using data fields2772 has the correct value2773 input: "0", method_result: false, predicate_method_result: false2774 has the correct value2775 when using data fields2776 has the correct value2777 input: "true", method_result: true, predicate_method_result: true2778 has the correct value2779 when using data fields2780 has the correct value2781 input: "false", method_result: false, predicate_method_result: false2782 has the correct value2783 when using data fields2784 has the correct value2785 input: "foobar", method_result: nil, predicate_method_result: false2786 has the correct value2787 when using data fields2788 has the correct value2789 input: "", method_result: nil, predicate_method_result: false2790 has the correct value2791 when using data fields2792 has the correct value2793 input: nil, method_result: nil, predicate_method_result: false2794 has the correct value2795 when using data fields2796 has the correct value2797 input: "on", method_result: true, predicate_method_result: true2798 has the correct value2799 when using data fields2800 has the correct value2801 input: "off", method_result: false, predicate_method_result: false2802 has the correct value2803 when using data fields2804 has the correct value2805 input: "yes", method_result: true, predicate_method_result: true2806 has the correct value2807 when using data fields2808 has the correct value2809 input: "no", method_result: false, predicate_method_result: false2810 has the correct value2811 when using data fields2812 has the correct value2813 input: "n", method_result: false, predicate_method_result: false2814 has the correct value2815 when using data fields2816 has the correct value2817 input: "y", method_result: true, predicate_method_result: true2818 has the correct value2819 when using data fields2820 has the correct value2821 input: "t", method_result: true, predicate_method_result: true2822 has the correct value2823 when using data fields2824 has the correct value2825 input: "f", method_result: false, predicate_method_result: false2826 has the correct value2827 when using data fields2828 has the correct value2829 when getter is not defined2830 defines a prop_accessor2831 #attributes2832 does not include properties2833 can be used in assign_attributes without nullifying properties2834 #dup2835 results in distinct ciphertexts, but identical properties2836 when the model supports data-fields2837 creates distinct but identical data-fields2838 #async_execute2839 queues a Integrations::ExecuteWorker2840 when the event is not supported2841 does not queue a worker2842Ci::BuildTraceChunk2843 associations2844 is expected to belong to build class_name => Ci::Build required: false inverse_of => trace_chunks2845 behaves like having unique enum values2846 has unique values in "data_store"2847 default attributes2848 is expected to eq "redis_trace_chunks"2849 is expected to eq "fog"2850 chunk creation2851 increments trace operation chunked metric2852 FastDestroyAll2853 Forbid #destroy and #destroy_all2854 does not delete database rows and associted external data2855 .fast_destroy_all2856 deletes database rows and associted external data2857 .use_fast_destroy2858 performs cascading delete with fast_destroy_all2859 CHUNK_SIZE2860 chunk size can not be changed without special care2861 .all_stores2862 returns a correctly ordered array2863 #data2864 data_store: :redis2865 is expected to eq "Sample data in redis"2866 data_store: :redis_trace_chunks2867 is expected to eq "Sample data in redis"2868 when data_store is database2869 is expected to eq "Sample data in database"2870 when data_store is fog2871 is expected to eq "Sample data in fog"2872 returns a new Fog store2873 #data_store2874 default value2875 is expected to eq "redis_trace_chunks"2876 #get_store_class2877 raises an error2878 data_store: :redis, expected_store: Ci::BuildTraceChunks::Redis2879 with store2880 returns an instance of the right class2881 data_store: :database, expected_store: Ci::BuildTraceChunks::Database2882 with store2883 returns an instance of the right class2884 data_store: :fog, expected_store: Ci::BuildTraceChunks::Fog2885 with store2886 returns an instance of the right class2887 data_store: :redis_trace_chunks, expected_store: Ci::BuildTraceChunks::RedisTraceChunks2888 with store2889 returns an instance of the right class2890 #append2891 data_store: :redis2892 when there are no data2893 has no data2894 does not read data when appending2895 behaves like Appending correctly2896 when offset is negative2897 is expected to raise Exception with "Offset is out of range"2898 when offset is bigger than data size2899 is expected to raise Exception with "Offset is out of range"2900 when new data overflows chunk size2901 is expected to raise Exception with "Chunk size overflow"2902 when offset is EOF2903 appends2904 when the other process is appending2905 raise an error2906 when new_data is nil2907 raises an error2908 when new_data is empty2909 does not append2910 does not execute UPDATE2911 when offset is middle of datasize2912 appends2913 behaves like Scheduling sidekiq worker to flush data to persist store2914 when new data fulfilled chunk size2915 schedules trace chunk flush worker2916 migrates data to object storage2917 when there are some data2918 has data2919 behaves like Appending correctly2920 when offset is negative2921 is expected to raise Exception with "Offset is out of range"2922 when offset is bigger than data size2923 is expected to raise Exception with "Offset is out of range"2924 when new data overflows chunk size2925 is expected to raise Exception with "Chunk size overflow"2926 when offset is EOF2927 appends2928 when the other process is appending2929 raise an error2930 when new_data is nil2931 raises an error2932 when new_data is empty2933 does not append2934 does not execute UPDATE2935 when offset is middle of datasize2936 appends2937 behaves like Scheduling sidekiq worker to flush data to persist store2938 when new data fulfilled chunk size2939 schedules trace chunk flush worker2940 migrates data to object storage2941 data_store: :redis_trace_chunks2942 when there are no data2943 has no data2944 does not read data when appending2945 behaves like Appending correctly2946 when offset is negative2947 is expected to raise Exception with "Offset is out of range"2948 when offset is bigger than data size2949 is expected to raise Exception with "Offset is out of range"2950 when new data overflows chunk size2951 is expected to raise Exception with "Chunk size overflow"2952 when offset is EOF2953 appends2954 when the other process is appending2955 raise an error2956 when new_data is nil2957 raises an error2958 when new_data is empty2959 does not append2960 does not execute UPDATE2961 when offset is middle of datasize2962 appends2963 behaves like Scheduling sidekiq worker to flush data to persist store2964 when new data fulfilled chunk size2965 schedules trace chunk flush worker2966 migrates data to object storage2967 when there are some data2968 has data2969 behaves like Appending correctly2970 when offset is negative2971 is expected to raise Exception with "Offset is out of range"2972 when offset is bigger than data size2973 is expected to raise Exception with "Offset is out of range"2974 when new data overflows chunk size2975 is expected to raise Exception with "Chunk size overflow"2976 when offset is EOF2977 appends2978 when the other process is appending2979 raise an error2980 when new_data is nil2981 raises an error2982 when new_data is empty2983 does not append2984 does not execute UPDATE2985 when offset is middle of datasize2986 appends2987 behaves like Scheduling sidekiq worker to flush data to persist store2988 when new data fulfilled chunk size2989 schedules trace chunk flush worker2990 migrates data to object storage2991 when data_store is database2992 when there are no data2993 has no data2994 behaves like Appending correctly2995 when offset is negative2996 is expected to raise Exception with "Offset is out of range"2997 when offset is bigger than data size2998 is expected to raise Exception with "Offset is out of range"2999 when new data overflows chunk size3000 is expected to raise Exception with "Chunk size overflow"3001 when offset is EOF3002 appends3003 when the other process is appending3004 raise an error3005 when new_data is nil3006 raises an error3007 when new_data is empty3008 does not append3009 does not execute UPDATE3010 when offset is middle of datasize3011 appends3012 behaves like Scheduling no sidekiq worker3013 when new data fulfilled chunk size3014 does not schedule trace chunk flush worker3015 does not migrate data to object storage3016 when there are some data3017 has data3018 behaves like Appending correctly3019 when offset is negative3020 is expected to raise Exception with "Offset is out of range"3021 when offset is bigger than data size3022 is expected to raise Exception with "Offset is out of range"3023 when new data overflows chunk size3024 is expected to raise Exception with "Chunk size overflow"3025 when offset is EOF3026 appends3027 when the other process is appending3028 raise an error3029 when new_data is nil3030 raises an error3031 when new_data is empty3032 does not append3033 does not execute UPDATE3034 when offset is middle of datasize3035 appends3036 behaves like Scheduling no sidekiq worker3037 when new data fulfilled chunk size3038 does not schedule trace chunk flush worker3039 does not migrate data to object storage3040 when data_store is fog3041 when there are no data3042 has no data3043 behaves like Appending correctly3044 when offset is negative3045 is expected to raise Exception with "Offset is out of range"3046 when offset is bigger than data size3047 is expected to raise Exception with "Offset is out of range"3048 when new data overflows chunk size3049 is expected to raise Exception with "Chunk size overflow"3050 when offset is EOF3051 appends3052 when the other process is appending3053 raise an error3054 when new_data is nil3055 raises an error3056 when new_data is empty3057 does not append3058 does not execute UPDATE3059 when offset is middle of datasize3060 appends3061 behaves like Scheduling no sidekiq worker3062 when new data fulfilled chunk size3063 does not schedule trace chunk flush worker3064 does not migrate data to object storage3065 when there are some data3066 has data3067 behaves like Appending correctly3068 when offset is negative3069 is expected to raise Exception with "Offset is out of range"3070 when offset is bigger than data size3071 is expected to raise Exception with "Offset is out of range"3072 when new data overflows chunk size3073 is expected to raise Exception with "Chunk size overflow"3074 when offset is EOF3075 appends3076 when the other process is appending3077 raise an error3078 when new_data is nil3079 raises an error3080 when new_data is empty3081 does not append3082 does not execute UPDATE3083 when offset is middle of datasize3084 appends3085 behaves like Scheduling no sidekiq worker3086 when new data fulfilled chunk size3087 does not schedule trace chunk flush worker3088 does not migrate data to object storage3089 append metrics3090 increments trace operation appended metric3091 #truncate3092 data_store: :redis3093 behaves like truncates3094 when offset is negative3095 is expected to raise Exception with "Offset is out of range"3096 when offset is bigger than data size3097 is expected to raise Exception with "Offset is out of range"3098 when offset is 103099 truncates3100 data_store: :redis_trace_chunks3101 behaves like truncates3102 when offset is negative3103 is expected to raise Exception with "Offset is out of range"3104 when offset is bigger than data size3105 is expected to raise Exception with "Offset is out of range"3106 when offset is 103107 truncates3108 when data_store is database3109 behaves like truncates3110 when offset is negative3111 is expected to raise Exception with "Offset is out of range"3112 when offset is bigger than data size3113 is expected to raise Exception with "Offset is out of range"3114 when offset is 103115 truncates3116 when data_store is fog3117 behaves like truncates3118 when offset is negative3119 is expected to raise Exception with "Offset is out of range"3120 when offset is bigger than data size3121 is expected to raise Exception with "Offset is out of range"3122 when offset is 103123 truncates3124 #size3125 data_store: :redis3126 when data exists3127 is expected to eq 203128 when data exists3129 is expected to eq 03130 data_store: :redis_trace_chunks3131 when data exists3132 is expected to eq 203133 when data exists3134 is expected to eq 03135 when data_store is database3136 when data exists3137 is expected to eq 233138 when data does not exist3139 is expected to eq 03140 when data_store is fog3141 when data exists3142 is expected to eq 183143 when data does not exist3144 is expected to eq 03145 #persist_data!3146 data_store: :redis, redis_class: Ci::BuildTraceChunks::Redis3147 when data exists3148 when data size reached CHUNK_SIZE3149 persists the data3150 calculates CRC32 checksum3151 when data size has not reached CHUNK_SIZE3152 does not persist the data and the orignal data is intact3153 when chunk is a final one3154 persists the data3155 when the chunk has been modifed by a different worker3156 reloads the chunk before migration3157 verifies the operation using optimistic locking3158 does not allow flushing unpersisted chunk3159 when the chunk is being locked by a different worker3160 increments stalled chunk trace metric3161 when data does not exist3162 does not persist3163 data_store: :redis_trace_chunks, redis_class: Ci::BuildTraceChunks::RedisTraceChunks3164 when data exists3165 when data size reached CHUNK_SIZE3166 persists the data3167 calculates CRC32 checksum3168 when data size has not reached CHUNK_SIZE3169 does not persist the data and the orignal data is intact3170 when chunk is a final one3171 persists the data3172 when the chunk has been modifed by a different worker3173 reloads the chunk before migration3174 verifies the operation using optimistic locking3175 does not allow flushing unpersisted chunk3176 when the chunk is being locked by a different worker3177 increments stalled chunk trace metric3178 when data does not exist3179 does not persist3180 when data_store is database3181 when data exists3182 when data size reached CHUNK_SIZE3183 persists the data3184 when data size has not reached CHUNK_SIZE3185 does not persist the data and the orignal data is intact3186 when chunk is a final one3187 persists the data3188 when data does not exist3189 does not persist3190 when data_store is fog3191 when data exists3192 when data size reached CHUNK_SIZE3193 does not change data store3194 when data size has not reached CHUNK_SIZE3195 does not raise error3196 final?3197 when build pending state exists3198 when chunks is not the last one3199 is not a final chunk3200 when chunks is the last one3201 is a final chunk3202 when build pending state does not exist3203 when chunks is not the last one3204 is not a final chunk3205 when chunks is the last one3206 is not a final chunk3207 deletes data in redis after a parent record destroyed3208 when traces are archived3209 behaves like deletes all build_trace_chunk and data in redis3210 deletes all build_trace_chunk and data in redis3211 when project is destroyed3212 behaves like deletes all build_trace_chunk and data in redis3213 deletes all build_trace_chunk and data in redis3214 comparable build trace chunks3215 #<=>3216 when chunks are associated with different builds3217 returns nil3218 when there are two chunks with different indexes3219 indicates the the first one is greater than then second3220 when there are two chunks with the same index within the same build3221 indicates the these are equal3222 #==3223 when chunks have the same index3224 indicates that the chunks are equal3225 when chunks have different indexes3226 indicates that the chunks are not equal3227 when chunks are associated with different builds3228 indicates that the chunks are not equal3229 #live?3230 data_store: :redis, value: true3231 is expected to eq true3232 data_store: :redis_trace_chunks, value: true3233 is expected to eq true3234 data_store: :database, value: false3235 is expected to eq false3236 data_store: :fog, value: false3237 is expected to eq false3238 #flushed?3239 data_store: :redis, value: false3240 is expected to eq false3241 data_store: :redis_trace_chunks, value: false3242 is expected to eq false3243 data_store: :database, value: true3244 is expected to eq true3245 data_store: :fog, value: true3246 is expected to eq true3247 partitioning3248 with build3249 sets partition_id to the current partition value3250 when it is already set3251 does not change the partition_id value3252 without build3253 is expected to validate that :partition_id cannot be empty/falsy3254 does not change the partition_id value3255Gitlab::ImportExport::Project::TreeSaver3256 behaves like saves project tree successfully3257 saves project tree attributes3258 with project root3259 is expected to include {"description" => "description", "visibility_level" => 20}3260 is expected not to include {"runners_token" => "token"}3261 has approvals_before_merge set3262 with milestones3263 is expected not to be empty3264 with merge_requests3265 is expected not to be empty3266 has merge request's milestones3267 has merge request's source branch SHA3268 has merge request's target branch SHA3269 has events3270 has merge requests diffs3271 has merge request diff files3272 has merge request diff commits3273 has merge requests comments3274 has author on merge requests comments3275 has merge request approvals3276 has merge request resource label events3277 has merge request assignees3278 has merge request reviewers3279 with snippets3280 is expected not to be empty3281 has snippet notes3282 with releases3283 is expected not to be empty3284 has no author on releases3285 has the author ID on releases3286 with issues3287 is expected not to be empty3288 has issue comments3289 has issue assignees3290 has author on issue comments3291 has labels associated to records3292 has project and group labels3293 has priorities associated to labels3294 has issue resource label events3295 saves the issue designs correctly3296 saves the issue design notes correctly3297 saves the issue design versions correctly3298 with ci_pipelines3299 is expected not to be empty3300 has pipeline stages3301 has pipeline builds3302 has pipeline generic_commit_statuses3303 has pipeline bridges3304 with commit_notes3305 is expected not to be empty3306 with labels3307 is expected not to be empty3308 with project_feature3309 is expected not to be empty3310 has project feature3311 with custom_attributes3312 has custom attributes3313 with badges3314 has badges3315 with project_members3316 is expected not to be empty3317 with boards3318 is expected not to be empty3319 #saves project tree3320 saves project successfully3321 does not complain about non UTF-8 characters in MR diff files3322 overrides group members3323 when has no permission3324 does not export group members3325 when has permission as maintainer3326 does not export group members3327 when has permission as group owner3328 exports group members as group owner3329 as admin3330 when admin mode is enabled3331 exports group members as admin3332 exports group members as project members3333 when admin mode is disabled3334 does not export group members3335 with description override3336 is expected to include {"description" => "Foo Bar"}3337 when streaming has to retry3338 retries and succeeds3339 retries and does not succeed3340check.rake3341 gitlab:check rake task3342 behaves like system check rake task3343 runs the check3344 gitlab:gitlab_shell:check rake task3345 behaves like system check rake task3346 runs the check3347 gitlab:gitaly:check rake task3348 behaves like system check rake task3349 runs the check3350 gitlab:sidekiq:check rake task3351 behaves like system check rake task3352 runs the check3353 gitlab:incoming_email:check rake task3354 behaves like system check rake task3355 runs the check3356 gitlab:ldap:check rake task3357 behaves like system check rake task3358 runs the check3359 when LDAP is not enabled3360 does not attempt to bind or search for users3361 when LDAP is enabled3362 attempts to bind using credentials3363 searches for 100 LDAP users3364 sanitizes output3365project routing3366 ProjectsController routing3367 to #index3368 to #create3369 to #new3370 to #edit3371 to #update3372 to #destroy3373 to #preview_markdown3374 to #show3375 regular name3376 is expected to route {:get=>"/gitlab/gitlabhq"} to {:namespace_id=>"gitlab", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}3377 name with dot3378 is expected to route {:get=>"/gitlab/gitlabhq.keys"} to {:namespace_id=>"gitlab", :id=>"gitlabhq.keys", :controller=>"projects", :action=>"show"}3379 with nested group3380 is expected to route {:get=>"/gitlab/subgroup/gitlabhq"} to {:namespace_id=>"gitlab/subgroup", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}3381 Projects::RedirectController routing3382 to #redirect_from_id3383 Projects::AutocompleteSourcesController routing3384 to #members3385 to #issues3386 to #merge_requests3387 to #labels3388 to #milestones3389 to #commands3390 to #snippets3391 Projects::WikisController routing3392 behaves like wiki routing3393 redirects the base path to the home page3394 behaves like resource routing3395 routes resource actions3396 behaves like redirecting a legacy path3397 redirects /gitlab/gitlabhq/wikis to /gitlab/gitlabhq/-/wikis3398 behaves like redirecting a legacy path3399 redirects /gitlab/gitlabhq/wikis/home/edit to /gitlab/gitlabhq/-/wikis/home/edit3400 Projects::RepositoriesController routing3401 to #archive format:zip3402 to #archive format:tar.bz23403 to #archive with "/" in route3404 Projects::BranchesController routing3405 to #branches3406 Projects::TagsController routing3407 to #tags3408 behaves like redirecting a legacy path3409 redirects /gitlab/gitlabhq/tags to /gitlab/gitlabhq/-/tags3410 Projects::DeployKeysController routing3411 behaves like resource routing3412 routes resource actions3413 Projects::ProtectedBranchesController routing3414 behaves like resource routing3415 routes resource actions3416 Projects::RefsController routing3417 to #switch3418 to #logs_tree3419 behaves like redirecting a legacy path3420 redirects /gitlab/gitlabhq/refs/switch to /gitlab/gitlabhq/-/refs/switch3421 behaves like redirecting a legacy path3422 redirects /gitlab/gitlabhq/refs/feature%2345/logs_tree to /gitlab/gitlabhq/-/refs/feature%2345/logs_tree3423 behaves like redirecting a legacy path3424 redirects /gitlab/gitlabhq/refs/stable/logs_tree/new%0A%0Aline.txt to /gitlab/gitlabhq/-/refs/stable/logs_tree/new%0A%0Aline.txt3425 behaves like redirecting a legacy path3426 redirects /gitlab/gitlabhq/refs/feature%2345/logs_tree/../../../../../@example.com/tree/a to /gitlab/gitlabhq/-/refs/feature#45/logs_tree/../../../../../-/example.com/tree/a3427 Projects::MergeRequestsController routing3428 to #commits3429 to #pipelines3430 to #merge3431 to #show3432 to #show from scoped route3433 behaves like resource routing3434 routes resource actions3435 behaves like redirecting a legacy path3436 redirects /gitlab/gitlabhq/merge_requests to /gitlab/gitlabhq/-/merge_requests3437 behaves like redirecting a legacy path3438 redirects /gitlab/gitlabhq/merge_requests/1/diffs to /gitlab/gitlabhq/-/merge_requests/1/diffs3439 Projects::MergeRequests::CreationsController routing3440 to #new3441 to #create3442 to #branch_from3443 to #branch_to3444 to #pipelines3445 to #diffs3446 behaves like redirecting a legacy path3447 redirects /gitlab/gitlabhq/merge_requests/new to /gitlab/gitlabhq/-/merge_requests/new3448 Projects::MergeRequests::DiffsController routing3449 to #show3450 Projects::MergeRequests::ConflictsController routing3451 to #show3452 SnippetsController routing3453 to #raw3454 to #index3455 to #new3456 to #edit3457 to #show3458 to #raw from unscope routing3459 behaves like redirecting a legacy path3460 redirects /gitlab/gitlabhq/snippets/1 to /gitlab/gitlabhq/-/snippets/13461 Projects::HooksController routing3462 to #test3463 behaves like resource routing3464 routes resource actions3465 behaves like redirecting a legacy path3466 redirects /gitlab/gitlabhq/hooks to /gitlab/gitlabhq/-/hooks3467 Projects::HookLogsController routing3468 to #retry3469 to #show3470 behaves like redirecting a legacy path3471 redirects /gitlab/gitlabhq/hooks/hook_logs/1 to /gitlab/gitlabhq/-/hooks/hook_logs/13472 Projects::CommitController routing3473 to #show3474 behaves like redirecting a legacy path3475 redirects /gitlab/gitlabhq/commit/4246fbd to /gitlab/gitlabhq/-/commit/4246fbd3476 Projects::CommitsController routing3477 to #show3478 behaves like resource routing3479 routes resource actions3480 behaves like redirecting a legacy path3481 redirects /gitlab/gitlabhq/commits/master to /gitlab/gitlabhq/-/commits/master3482 Projects::ProjectMembersController routing3483 behaves like resource routing3484 routes resource actions3485 Projects::MilestonesController routing3486 to #promote3487 behaves like resource routing3488 routes resource actions3489 Projects::LabelsController routing3490 to #index3491 Projects::IssuesController routing3492 to #bulk_update3493 behaves like resource routing3494 routes resource actions3495 behaves like redirecting a legacy path3496 redirects /gitlab/gitlabhq/issues to /gitlab/gitlabhq/-/issues3497 behaves like redirecting a legacy path3498 redirects /gitlab/gitlabhq/issues/1/edit to /gitlab/gitlabhq/-/issues/1/edit3499 Projects::NotesController routing3500 to #index3501 behaves like resource routing3502 routes resource actions3503 Projects::BlameController routing3504 to #show3505 Projects::BlobController routing3506 to #show3507 to #show from unscoped routing3508 Projects::TreeController routing3509 to #show3510 to #show from unscoped routing3511 Projects::FindFileController routing3512 to #show3513 to #list3514 behaves like redirecting a legacy path3515 redirects /gitlab/gitlabhq/find_file to /gitlab/gitlabhq/-/find_file3516 behaves like redirecting a legacy path3517 redirects /gitlab/gitlabhq/files/master to /gitlab/gitlabhq/-/files/master3518 Projects::BlobController routing3519 to #edit3520 to #preview3521 behaves like redirecting a legacy path3522 redirects /gitlab/gitlabhq/new/master to /gitlab/gitlabhq/-/new/master3523 behaves like redirecting a legacy path3524 redirects /gitlab/gitlabhq/edit/master/README to /gitlab/gitlabhq/-/edit/master/README3525 Projects::RawController routing3526 to #show3527 to #show from unscoped routing3528 Projects::CompareController routing3529 to #index3530 to #compare3531 to #show3532 behaves like redirecting a legacy path3533 redirects /gitlab/gitlabhq/compare to /gitlab/gitlabhq/-/compare3534 behaves like redirecting a legacy path3535 redirects /gitlab/gitlabhq/compare/master...stable to /gitlab/gitlabhq/-/compare/master...stable3536 Projects::NetworkController routing3537 to #show3538 Projects::GraphsController routing3539 to #show3540 Projects::ForksController routing3541 to #new3542 to #create3543 Projects::AvatarsController routing3544 to #destroy3545 Projects::PagesDomainsController routing3546 to #destroy with a valid domain name3547 to #show with a valid domain3548 behaves like resource routing3549 routes resource actions3550 Projects::ReleasesController routing3551 to #latest_permalink with a valid permalink path3552 to #show for the release with tag named permalink3553 Projects::Registry::TagsController routing3554 #destroy3555 correctly routes to a destroy action3556 takes registry tag name constrains into account3557 Projects::PipelinesController routing3558 to #index3559 to #show3560 behaves like redirecting a legacy path3561 redirects /gitlab/gitlabhq/pipelines to /gitlab/gitlabhq/-/pipelines3562 Projects::PipelineSchedulesController routing3563 to #index3564 behaves like redirecting a legacy path3565 redirects /gitlab/gitlabhq/pipeline_schedules to /gitlab/gitlabhq/-/pipeline_schedules3566 Projects::Settings::OperationsController routing3567 to #reset_alerting_token3568 Projects::Settings::RepositoryController routing3569 to #show3570 to repository#create_deploy_token3571 Projects::Settings::CiCdController routing3572 to #runner_setup_scripts3573 Projects::Settings::PackagesAndRegistriesController routing3574 to #show3575 to #cleanup_tags3576 Projects::Settings::IntegrationsController routing3577 to #index3578 to #edit3579 to #update3580 to #test3581 Projects::Settings::IntegrationHookLogsController3582 to #show3583 to #retry3584 Projects::TemplatesController routing3585 #show3586 routes when :template_type is `merge_request`3587 routes when :template_type is `issue`3588 routes to application#route_not_found when :template_type is unknown3589 Projects::DeployTokensController routing3590 routes to deploy_tokens#revoke3591 Projects::ServicePingController routing3592 routes to service_ping#web_ide_pipelines_count3593 Projects::EnvironmentsController routing3594 legacy routing3595 behaves like redirecting a legacy path3596 redirects /gitlab/gitlabhq/environments to /gitlab/gitlabhq/-/environments3597 Projects::ClustersController routing3598 legacy routing3599 behaves like redirecting a legacy path3600 redirects /gitlab/gitlabhq/clusters to /gitlab/gitlabhq/-/clusters3601 Projects::ErrorTrackingController routing3602 legacy routing3603 behaves like redirecting a legacy path3604 redirects /gitlab/gitlabhq/error_tracking to /gitlab/gitlabhq/-/error_tracking3605 Projects::Serverless routing3606 legacy routing3607 behaves like redirecting a legacy path3608 redirects /gitlab/gitlabhq/serverless to /gitlab/gitlabhq/-/serverless3609 Projects::DesignManagement::Designs::RawImagesController routing3610 to #show3611 Projects::DesignManagement::Designs::ResizedImageController routing3612 to #show3613 Projects::Snippets::BlobsController routing3614 to #raw3615 Projects::MetricsDashboardController routing3616 routes to #show with no dashboard_path3617 routes to #show with only dashboard_path3618 routes to #show3619 routes to #show with dashboard_path3620 routes to 404 with invalid page3621 routes to 404 without format for invalid page3622 routes to 404 with invalid dashboard_path3623 routes to 404 with invalid dashboard_path and valid page3624 routes to 404 with valid dashboard_path and invalid page3625 with a non-existent project3626 routes to 404 with get request3627 routes to 404 with delete request3628 routes to 404 with post request3629 routes to 404 with put request3630 with route to some action3631 routes to 404 with get request to3632 routes to 404 with delete request3633 routes to 404 with post request3634 routes to 404 with put request3635Gitlab::Ci::Status::Build::Factory3636 when build is successful3637 matches correct core status3638 matches correct extended statuses3639 fabricates a retryable build status3640 fabricates status with correct details3641 when build is erased3642 matches correct core status3643 matches correct extended statuses3644 fabricates a retryable build status3645 fabricates status with correct details3646 when build is failed3647 when build is not allowed to fail3648 matches correct core status3649 matches correct extended statuses3650 fabricates a failed build status3651 fabricates status with correct details3652 when build is allowed to fail3653 matches correct core status3654 matches correct extended statuses3655 fabricates a failed but allowed build status3656 fabricates status with correct details3657 when build has unmet prerequisites3658 matches correct core status3659 matches correct extended statuses3660 fabricates a failed with unmet prerequisites build status3661 fabricates status with correct details3662 when build is a canceled3663 matches correct core status3664 matches correct extended statuses3665 fabricates a retryable build status3666 fabricates status with correct details3667 when build is running3668 matches correct core status3669 matches correct extended statuses3670 fabricates a canceable build status3671 fabricates status with correct details3672 when build is pending3673 matches correct core status3674 matches correct extended statuses3675 fabricates a cancelable build status3676 fabricates status with correct details3677 when build is skipped3678 matches correct core status3679 matches correct extended statuses3680 fabricates a skipped build status3681 fabricates status with correct details3682 when build is a manual action3683 when build is a play action3684 matches correct core status3685 matches correct extended statuses3686 fabricates action detailed status3687 fabricates status with correct details3688 when user has ability to play action3689 fabricates status that has action3690 when user does not have ability to play action3691 fabricates status that has no action3692 when build is an environment stop action3693 matches correct core status3694 matches correct extended statuses3695 fabricates action detailed status3696 when user is not allowed to execute manual action3697 fabricates status with correct details3698 when build is a delayed action3699 matches correct core status3700 matches correct extended statuses3701 fabricates action detailed status3702 fabricates status with correct details3703 when user has ability to play action3704 fabricates status that has action3705 when user does not have ability to play action3706 fabricates status that has no action3707Gitlab::Ci::Trace3708 associations3709 is expected to respond to #job3710 when trace is migrated to object storage3711 reloads the trace in case of a chunk error3712 when live trace feature is disabled3713 behaves like trace with disabled live trace feature3714 behaves like common trace features3715 #html3716 returns formatted html3717 returns last line of formatted html3718 #raw3719 returns raw output3720 returns last line of raw output3721 #read3722 gitlab_ci_archived_trace_consistent_reads feature flag enabled3723 calls ::Ci::Build.sticking.unstick_or_continue_sticking3724 gitlab_ci_archived_trace_consistent_reads feature flag disabled3725 does not call ::Ci::Build.sticking.unstick_or_continue_sticking3726 #extract_coverage3727 matching coverage3728 returns valid coverage3729 no coverage3730 returs nil3731 #extract_sections3732 no sections3733 returs []3734 multiple sections available3735 returns valid sections3736 logs contains "section_start"3737 returns only one section3738 missing section_end3739 returns no sections3740 missing section_start3741 returns no sections3742 inverted section_start section_end3743 returns no sections3744 #write3745 when arhicved trace does not exist yet3746 does not raise an error3747 when arhicved trace already exists3748 raises an error3749 #set3750 returns trace3751 overwrite trace3752 returns new trace3753 runners token3754 hides token3755 hides build token3756 hides token3757 #append3758 returns correct trace3759 tries to append trace at different offset3760 fails with append3761 runners token3762 hides token3763 build token3764 hides token3765 #archive!3766 when live trace chunks exists3767 has job trace_chunks3768 gitlab_ci_archived_trace_consistent_reads feature flag enabled3769 calls ::Ci::Build.sticking.stick3770 gitlab_ci_archived_trace_consistent_reads feature flag disabled3771 does not call ::Ci::Build.sticking.stick3772 when build status is success3773 does not have an archived trace yet3774 when archives3775 has an archived trace3776 when another process has already been archiving3777 blocks concurrent archiving3778 #read3779 when trace artifact exists3780 behaves like read successfully with IO3781 yields with source3782 when current_path (with project_id) exists3783 behaves like read successfully with IO3784 yields with source3785 when no sources exist3786 behaves like failed to read3787 yields without source3788 trace handling3789 trace does not exist3790 is expected to equal false3791 when trace artifact exists3792 is expected to be truthy3793 when the trace artifact has been erased3794 is expected to be falsy3795 removes associations3796 new trace path is used3797 trace exist3798 can be erased3799 #archive!3800 when job does not have trace artifact3801 when trace file stored in default path3802 behaves like archive trace file3803 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"3804 when failed to create clone file3805 behaves like source trace file stays intact3806 is expected to be truthy3807 when failed to create job artifact record3808 behaves like source trace file stays intact3809 is expected to be truthy3810 when job has trace artifact3811 does not archive3812 when job is not finished yet3813 does not archive3814 #erase!3815 when it is a live trace3816 when trace is stored in file storage3817 is expected not to be nil3818 removes trace3819 when it is an archived trace3820 has trace at first3821 removes trace3822 when live trace feature is enabled3823 behaves like trace with enabled live trace feature3824 behaves like common trace features3825 #html3826 returns formatted html3827 returns last line of formatted html3828 #raw3829 returns raw output3830 returns last line of raw output3831 #read3832 gitlab_ci_archived_trace_consistent_reads feature flag enabled3833 calls ::Ci::Build.sticking.unstick_or_continue_sticking3834 gitlab_ci_archived_trace_consistent_reads feature flag disabled3835 does not call ::Ci::Build.sticking.unstick_or_continue_sticking3836 #extract_coverage3837 matching coverage3838 returns valid coverage3839 no coverage3840 returs nil3841 #extract_sections3842 no sections3843 returs []3844 multiple sections available3845 returns valid sections3846 logs contains "section_start"3847 returns only one section3848 missing section_end3849 returns no sections3850 missing section_start3851 returns no sections3852 inverted section_start section_end3853 returns no sections3854 #write3855 when arhicved trace does not exist yet3856 does not raise an error3857 when arhicved trace already exists3858 raises an error3859 #set3860 returns trace3861 overwrite trace3862 returns new trace3863 runners token3864 hides token3865 hides build token3866 hides token3867 #append3868 returns correct trace3869 tries to append trace at different offset3870 fails with append3871 runners token3872 hides token3873 build token3874 hides token3875 #archive!3876 when live trace chunks exists3877 has job trace_chunks3878 gitlab_ci_archived_trace_consistent_reads feature flag enabled3879 calls ::Ci::Build.sticking.stick3880 gitlab_ci_archived_trace_consistent_reads feature flag disabled3881 does not call ::Ci::Build.sticking.stick3882 when build status is success3883 does not have an archived trace yet3884 when archives3885 has an archived trace3886 when another process has already been archiving3887 blocks concurrent archiving3888 #read3889 when trace artifact exists3890 behaves like read successfully with IO3891 yields with source3892 when live trace exists3893 behaves like read successfully with ChunkedIO3894 yields with source3895 when no sources exist3896 behaves like failed to read3897 yields without source3898 trace handling3899 trace does not exist3900 is expected to equal false3901 when trace artifact exists3902 is expected to be truthy3903 when the trace artifact has been erased3904 is expected to be falsy3905 removes associations3906 stored in live trace3907 trace exist3908 can be erased3909 returns live trace data3910 #archived?3911 when trace does not exist3912 is expected to be falsy3913 when archived trace exists3914 is truthy3915 when archived trace record exists but file is not stored3916 is falsy3917 when live trace exists3918 is expected to be falsy3919 #live?3920 when trace does not exist3921 is expected to be falsy3922 when archived trace exists3923 is expected to be falsy3924 when live trace exists3925 is expected to be truthy3926 #archive!3927 when job does not have trace artifact3928 when trace is stored in ChunkedIO3929 behaves like archive trace file in ChunkedIO3930 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"3931 when failed to create clone file3932 behaves like a pre-commit error3933 does not save the trace artifact3934 behaves like source trace in ChunkedIO stays intact3935 is expected to eq "BUILD TRACE"3936 when failed to create job artifact record3937 behaves like a pre-commit error3938 does not save the trace artifact3939 behaves like source trace in ChunkedIO stays intact3940 is expected to eq "BUILD TRACE"3941 when storing the file raises an error3942 behaves like a post-commit error3943 saves the trace artifact but not the file3944 behaves like source trace in ChunkedIO stays intact3945 is expected to eq "BUILD TRACE"3946 when job has trace artifact3947 does not archive3948 when live trace chunks still exist3949 removes the traces3950 when job is not finished yet3951 does not archive3952 #erase!3953 when it is a live trace3954 is expected not to be nil3955 removes trace3956 when it is an archived trace3957 has trace at first3958 removes trace3959 #update_interval3960 it is not being watched3961 is expected to eq 60 seconds3962 it is being watched3963 returns 3 seconds3964 #being_watched!3965 sets gitlab:ci:trace:<job.id>:watched in redis3966 updates the expiry of gitlab:ci:trace:<job.id>:watched in redis3967 #being_watched?3968 gitlab:ci:trace:<job.id>:watched in redis is set3969 returns true3970 gitlab:ci:trace:<job.id>:watched in redis is not set3971 returns false3972 #lock3973 acquires an exclusive lease on the trace3974 #can_attempt_archival_now?3975 creates the record and returns true3976 #increment_archival_attempts!3977 creates the record and increments its value3978gitlab:db namespace rake task3979 mark_migration_complete3980 with a single database3981 marks the migration complete on the given database (PENDING: Skipping because database ci exists)3982 with multiple databases3983 marks the migration complete on each database3984 when the single database task is used3985 marks the migration complete for the given database3986 with geo configured3987 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)3988 when the migration is already marked complete3989 prints a warning message3990 when an invalid version is given3991 prints an error and exits3992 configure3993 with a single database3994 when geo is not configured3995 when the schema is already loaded3996 migrates the database (PENDING: Skipping because database ci exists)3997 when the schema is not loaded3998 loads the schema and seeds the database (PENDING: Skipping because database ci exists)3999 when only a single table is present4000 loads the schema and seeds the database (PENDING: Skipping because database ci exists)4001 when loading the schema fails4002 does not seed the database (PENDING: Skipping because database ci exists)4003 SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set4004 when the schema is not loaded4005 adds the post deployment migration path before schema load (PENDING: Skipping because database ci exists)4006 when the schema is loaded4007 ignores post deployment migrations (PENDING: Skipping because database ci exists)4008 when geo is configured4009 when the main database is also configured4010 only configures the main database (PENDING: Skipping because database ci exists)4011 with multiple databases4012 when geo is not configured4013 when no database has the schema loaded4014 loads the schema and seeds all the databases4015 when both databases have the schema loaded4016 migrates the databases without seeding them4017 when only one database has the schema loaded4018 migrates and loads the schema correctly, without seeding the databases4019 when geo is configured4020 does not run tasks against geo (PENDING: Skipping because the geo database is not configured)4021 schema inconsistencies4022 prints the inconsistency message4023 dictionary generate4024 when the dictionary files do not exist4025 generate the dictionary files4026 do not generate the dictionary files for test tables4027 when a new model class is added to the codebase4028 appends new classes to the dictionary4029 when a model class is removed from the codebase4030 keeps the dictionary classes4031 unattended4032 schema_migration_table_exists: false, needs_migrations: false, rake_output: "unattended_migrations_completed"4033 outputs changed message for automation after operations happen4034 schema_migration_table_exists: false, needs_migrations: true, rake_output: "unattended_migrations_completed"4035 outputs changed message for automation after operations happen4036 schema_migration_table_exists: true, needs_migrations: false, rake_output: "unattended_migrations_static"4037 outputs changed message for automation after operations happen4038 schema_migration_table_exists: true, needs_migrations: true, rake_output: "unattended_migrations_completed"4039 outputs changed message for automation after operations happen4040 clean_structure_sql4041 can be executed multiple times within another rake task4042 drop_tables4043 with a single database4044 drops all objects for the database (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)4045 with multiple databases4046 drops all objects for all databases4047 when the single database task is used4048 drops all objects for the given database4049 with geo configured4050 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)4051 create_dynamic_partitions4052 with a single database4053 delegates syncing of partitions without limiting databases (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)4054 with multiple databases4055 when running the multi-database variant4056 delegates syncing of partitions without limiting databases4057 when running a single-database variant4058 delegates syncing of partitions for the chosen database4059 with geo configured4060 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)4061 reindex4062 with a single database4063 delegates to Gitlab::Database::Reindexing4064 when reindexing is not enabled4065 is a no-op4066 with multiple databases4067 delegates to Gitlab::Database::Reindexing without a specific database4068 when the single database task is used4069 delegates to Gitlab::Database::Reindexing with a specific database4070 when reindexing is not enabled4071 is a no-op4072 with geo configured4073 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)4074 enqueue_reindexing_action4075 creates an entry in the queue4076 defaults to main database4077 execute_async_index_operations4078 delegates ci task to Gitlab::Database::AsyncIndexes4079 delegates ci task to Gitlab::Database::AsyncIndexes with specified argument4080 delegates main task to Gitlab::Database::AsyncIndexes4081 delegates main task to Gitlab::Database::AsyncIndexes with specified argument4082 delegates all task to every database with higher default for dev4083 delegates all task to every database with lower default for prod4084 delegates all task to every database with specified argument4085 when feature is not enabled4086 is a no-op4087 with geo configured4088 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)4089 validate_async_constraints4090 delegates ci task to Gitlab::Database::AsyncConstraints4091 delegates ci task to Gitlab::Database::AsyncConstraints with specified argument4092 delegates main task to Gitlab::Database::AsyncConstraints4093 delegates main task to Gitlab::Database::AsyncConstraints with specified argument4094 delegates all task to every database with higher default for dev4095 delegates all task to every database with lower default for prod4096 delegates all task to every database with specified argument4097 when feature is not enabled4098 is a no-op4099 with geo configured4100 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)4101 active4102 needs_migration: true, self_monitoring_project: nil, project_count: nil, exit_status: 1, exit_code: false4103 exits 0 or 1 depending on user modifications to the database4104 needs_migration: false, self_monitoring_project: :self_monitoring, project_count: 1, exit_status: 1, exit_code: false4105 exits 0 or 1 depending on user modifications to the database4106 needs_migration: false, self_monitoring_project: nil, project_count: 0, exit_status: 1, exit_code: false4107 exits 0 or 1 depending on user modifications to the database4108 needs_migration: false, self_monitoring_project: :self_monitoring, project_count: 2, exit_status: 0, exit_code: true4109 exits 0 or 1 depending on user modifications to the database4110 #migrate_with_instrumentation4111 #up (legacy mode)4112 delegates to the migration runner in legacy mode4113 #sample_background_migrations4114 delegates to the migration runner with a default sample duration4115 delegates to the migration runner with a configured sample duration4116 db: :main4117 #up4118 delegates to the migration runner4119 #down4120 delegates to the migration runner4121 #sample_batched_background_migrations4122 delegates to the migration runner for a specified database with a default sample duration4123 delegates to the migration runner for a specified database and sample duration4124 db: :ci4125 #up4126 delegates to the migration runner4127 #down4128 delegates to the migration runner4129 #sample_batched_background_migrations4130 delegates to the migration runner for a specified database with a default sample duration4131 delegates to the migration runner for a specified database and sample duration4132 db: :main_clusterwide4133 #up4134 delegates to the migration runner4135 #down4136 delegates to the migration runner4137 #sample_batched_background_migrations4138 delegates to the migration runner for a specified database with a default sample duration4139 delegates to the migration runner for a specified database and sample duration4140 #execute_batched_migrations4141 executes all migrations4142 with multiple databases4143 db:schema:dump against a single database4144 invokes gitlab:db:clean_structure_sql4145 db:migrate against a single database4146 invokes gitlab:db:create_dynamic_partitions for the same database4147 db:migrate:geo4148 does not invoke gitlab:db:create_dynamic_partitions (PENDING: Skipping because the geo database is not configured)4149 gitlab:db:reset_as_non_superuser4150 migrate as nonsuperuser check with default username4151 migrate as nonsuperuser check with specified username4152IncidentManagement::TimelineEvents::CreateService4153 # order random4154 automatically created timeline events4155 .create_incident4156 behaves like successfully created timeline event4157 creates a timeline event4158 successfully creates a database record4159 does not create a system note4160 behaves like an incident management tracked event4161 .track_event4162 tracks the event using redis4163 behaves like Snowplow event tracking with RedisHLL context4164 behaves like Snowplow event tracking4165 is emitted4166 .reopen_incident4167 behaves like successfully created timeline event4168 creates a timeline event4169 successfully creates a database record4170 does not create a system note4171 behaves like an incident management tracked event4172 .track_event4173 tracks the event using redis4174 behaves like Snowplow event tracking with RedisHLL context4175 behaves like Snowplow event tracking4176 is emitted4177 .resolve_incident4178 behaves like successfully created timeline event4179 creates a timeline event4180 successfully creates a database record4181 does not create a system note4182 behaves like an incident management tracked event4183 .track_event4184 tracks the event using redis4185 behaves like Snowplow event tracking with RedisHLL context4186 behaves like Snowplow event tracking4187 is emitted4188 .change_incident_status4189 behaves like successfully created timeline event4190 creates a timeline event4191 successfully creates a database record4192 does not create a system note4193 behaves like an incident management tracked event4194 .track_event4195 tracks the event using redis4196 behaves like Snowplow event tracking with RedisHLL context4197 behaves like Snowplow event tracking4198 is emitted4199 .change_severity4200 behaves like successfully created timeline event4201 creates a timeline event4202 successfully creates a database record4203 does not create a system note4204 behaves like an incident management tracked event4205 .track_event4206 tracks the event using redis4207 behaves like Snowplow event tracking with RedisHLL context4208 behaves like Snowplow event tracking4209 is emitted4210 .change_labels4211 when there are neither added nor removed labels4212 responds with error4213 does not create timeline event4214 when there are only added labels4215 behaves like successfully created timeline event4216 creates a timeline event4217 successfully creates a database record4218 does not create a system note4219 behaves like an incident management tracked event4220 .track_event4221 tracks the event using redis4222 behaves like Snowplow event tracking with RedisHLL context4223 behaves like Snowplow event tracking4224 is emitted4225 when there are only removed labels4226 behaves like successfully created timeline event4227 creates a timeline event4228 successfully creates a database record4229 does not create a system note4230 behaves like an incident management tracked event4231 .track_event4232 tracks the event using redis4233 behaves like Snowplow event tracking with RedisHLL context4234 behaves like Snowplow event tracking4235 is emitted4236 when there are both added and removed labels4237 behaves like successfully created timeline event4238 creates a timeline event4239 successfully creates a database record4240 does not create a system note4241 behaves like an incident management tracked event4242 .track_event4243 tracks the event using redis4244 behaves like Snowplow event tracking with RedisHLL context4245 behaves like Snowplow event tracking4246 is emitted4247 when there is a single added and single removed labels4248 behaves like successfully created timeline event4249 creates a timeline event4250 successfully creates a database record4251 does not create a system note4252 behaves like an incident management tracked event4253 .track_event4254 tracks the event using redis4255 behaves like Snowplow event tracking with RedisHLL context4256 behaves like Snowplow event tracking4257 is emitted4258 when feature flag is disabled4259 does not create timeline event4260 #execute4261 successfully creates a database record4262 when current user is blank4263 behaves like error response4264 has an informative message4265 behaves like does not track incident management event4266 does not track the event4267 when user does not have permissions to create timeline events4268 behaves like error response4269 has an informative message4270 behaves like does not track incident management event4271 does not track the event4272 when error occurs during creation4273 behaves like error response4274 has an informative message4275 behaves like does not track incident management event4276 does not track the event4277 with default action4278 matches the default action4279 creates a system note4280 behaves like success response4281 has timeline event4282 behaves like an incident management tracked event4283 .track_event4284 tracks the event using redis4285 behaves like Snowplow event tracking with RedisHLL context4286 behaves like Snowplow event tracking4287 is emitted4288 with auto_created param4289 when auto_created is true4290 does not create a system note4291 when user does not have permissions4292 behaves like success response4293 has timeline event4294 behaves like an incident management tracked event4295 .track_event4296 tracks the event using redis4297 behaves like Snowplow event tracking with RedisHLL context4298 behaves like Snowplow event tracking4299 is emitted4300 when auto_created is false4301 creates a system note4302 with non_default action4303 matches the action from arguments4304 behaves like success response4305 has timeline event4306 behaves like an incident management tracked event4307 .track_event4308 tracks the event using redis4309 behaves like Snowplow event tracking with RedisHLL context4310 behaves like Snowplow event tracking4311 is emitted4312 when timeline event tag names are passed4313 matches the tag name4314 behaves like success response4315 has timeline event4316 behaves like an incident management tracked event4317 .track_event4318 tracks the event using redis4319 behaves like Snowplow event tracking with RedisHLL context4320 behaves like Snowplow event tracking4321 is emitted4322 when predefined tags are passed4323 matches the two tags on the event and creates on project4324 behaves like success response4325 has timeline event4326 behaves like an incident management tracked event4327 .track_event4328 tracks the event using redis4329 behaves like Snowplow event tracking with RedisHLL context4330 behaves like Snowplow event tracking4331 is emitted4332 when invalid tag names are passed4333 does not create timeline event4334 behaves like error response4335 has an informative message4336 behaves like does not track incident management event4337 does not track the event4338 with editable param4339 when editable is true4340 behaves like success response4341 has timeline event4342 behaves like an incident management tracked event4343 .track_event4344 tracks the event using redis4345 behaves like Snowplow event tracking with RedisHLL context4346 behaves like Snowplow event tracking4347 is emitted4348 when editable is false4349 behaves like success response4350 has timeline event4351 behaves like an incident management tracked event4352 .track_event4353 tracks the event using redis4354 behaves like Snowplow event tracking with RedisHLL context4355 behaves like Snowplow event tracking4356 is emitted4357 when note is more than 280 characters long4358 when was not promoted from note4359 when auto_created is true4360 behaves like success response4361 has timeline event4362 behaves like an incident management tracked event4363 .track_event4364 tracks the event using redis4365 behaves like Snowplow event tracking with RedisHLL context4366 behaves like Snowplow event tracking4367 is emitted4368 when auto_created is false4369 behaves like error response4370 has an informative message4371 behaves like does not track incident management event4372 does not track the event4373 when promoted from note4374 behaves like success response4375 has timeline event4376 behaves like an incident management tracked event4377 .track_event4378 tracks the event using redis4379 behaves like Snowplow event tracking with RedisHLL context4380 behaves like Snowplow event tracking4381 is emitted4382Gitlab::Database::BackgroundMigration::BatchedMigrationRunner4383 #run_migration_job4384 when the migration has no previous jobs4385 when the migration has batches to process4386 runs the job for the first batch4387 migration health4388 puts migration on hold on stop signal4389 optimizes migration on normal signal4390 optimizes migration on no signal4391 optimizes migration on unknown signal4392 when the batch maximum exceeds the migration maximum4393 clamps the batch maximum to the migration maximum4394 when the migration has no batches to process4395 behaves like it has completed the migration4396 does not create and run a migration job4397 marks the migration as finished4398 when the migration should stop4399 changes the status to failure4400 when the migration has previous jobs4401 when the migration has no batches remaining4402 behaves like it has completed the migration4403 does not create and run a migration job4404 marks the migration as finished4405 when the migration has batches to process4406 runs the migration job for the next batch4407 when the batch minimum exceeds the migration maximum4408 behaves like it has completed the migration4409 does not create and run a migration job4410 marks the migration as finished4411 when migration has failed jobs4412 retries the failed job4413 when failed job has reached the maximum number of attempts4414 marks the migration as failed4415 when migration has stuck jobs4416 retries the stuck job4417 when migration has possible stuck jobs4418 keeps the migration active4419 when the migration has batches to process and failed jobs4420 runs next batch then retries the failed job4421 #run_entire_migration4422 when not in a development or test environment4423 raises an error4424 when the given migration is not active4425 does not create and run migration jobs4426 when the given migration is active4427 runs all jobs inline until finishing the migration4428 #finalize4429 when the migration is not yet completed4430-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4431 -> 0.0015s4432-- create_table(:_test_batched_migrations_test_table, {:id=>false})4433 -> 0.0288s4434-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4435 -> 0.0020s4436-- execute("SELECT * FROM _test_batched_migrations_test_table WHERE some_id_convert_to_bigint IS NULL")4437 -> 0.0016s4438-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4439 -> 0.0032s4440 completes the migration4441 when migration fails to complete4442-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4443 -> 0.0013s4444-- create_table(:_test_batched_migrations_test_table, {:id=>false})4445 -> 0.0030s4446-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4447 -> 0.0021s4448-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4449 -> 0.0021s4450 raises an error4451 when the migration is already finished4452-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4453 -> 0.0015s4454-- create_table(:_test_batched_migrations_test_table, {:id=>false})4455 -> 0.0028s4456-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4457 -> 0.0015s4458-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4459 -> 0.0019s4460 is a no-op4461 when the migration does not exist4462-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4463 -> 0.0015s4464-- create_table(:_test_batched_migrations_test_table, {:id=>false})4465 -> 0.0035s4466-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4467 -> 0.0018s4468-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4469 -> 0.0027s4470 is a no-op4471 .finalize4472 when the connection is passed4473 initializes the object with the given connection4474Gitlab::Checks::BranchCheck4475 #validate!4476 does not raise any error4477 trying to delete the default branch4478 raises an error4479 prohibited branches check4480 prohibits 40-character hexadecimal branch names4481 doesn't prohibit a nested hexadecimal in a branch name4482 deleting a hexadecimal branch4483 doesn't prohibit the deletion of a hexadecimal branch name4484 protected branches check4485 raises an error if the user is not allowed to do forced pushes to protected branches4486 raises an error if the user is not allowed to merge to protected branches4487 raises an error if the user is not allowed to push to protected branches4488 when user has push access4489 if protected branches is allowed to force push4490 allows force push4491 if protected branches is not allowed to force push4492 prevents force push4493 when user does not have push access4494 if protected branches is allowed to force push4495 prevents force push4496 if protected branches is not allowed to force push4497 prevents force push4498 when project repository is empty4499 user is not allowed to push to protected branches4500 raises an error4501 user is allowed to push to protected branches4502 allows branch creation4503 branch creation4504 user can push to branch4505 does not raise an error4506 user cannot push to branch4507 user cannot merge to branch4508 raises an error4509 user can merge to branch4510 newrev isn't in any protected branches4511 raises an error4512 newrev is included in a protected branch4513 via web interface4514 allows branch creation4515 via SSH4516 raises an error4517 branch deletion4518 if the user is not allowed to delete protected branches4519 raises an error4520 if the user is allowed to delete protected branches4521 through the web interface4522 allows branch deletion4523 over SSH or HTTP4524 raises an error4525IssuesHelper4526 #award_user_list4527 returns a comma-separated list of the first X users4528 displays the current user's name as 'You'4529 truncates lists4530 displays the current user in front of other users4531 #award_state_class4532 returns disabled string for unauthenticated user4533 returns disabled for a user that does not have access to the awardable4534 returns selected class for author4535 is blank for a user that has access to the awardable4536 awards_sort4537 sorts a hash so thumbsup and thumbsdown are always on top4538 #link_to_discussions_to_resolve4539 passing only a merge request4540 links just the merge request4541 contains the reference to the merge request4542 when passing a discussion4543 links to the merge request with first note if a single discussion was passed4544 contains both the reference to the merge request and a mention of the discussion4545 #show_new_issue_link?4546 is false when no project there is no project4547 is true when there is a project and no logged in user4548 is true when the current user does not have access to the project4549 #issue_closed_link4550 with linked issue4551 with moved issue4552 when user has permission to see new issue4553 behaves like successfully displays link to issue and with css class4554 returns link4555 when user has no permission to see new issue4556 behaves like does not display link4557 returns nil4558 with duplicated issue4559 when user has permission to see new issue4560 behaves like successfully displays link to issue and with css class4561 returns link4562 when user has no permission to see new issue4563 behaves like does not display link4564 returns nil4565 without linked issue4566 behaves like does not display link4567 returns nil4568 #show_moved_service_desk_issue_warning?4569 is true when moved issue project has service desk disabled4570 is false when moved issue project has service desk enabled4571 #issue_header_actions_data4572 returns expected result4573 #project_issues_list_data4574 when user is signed in4575 behaves like issues list data4576 returns expected result4577 when user is anonymous4578 behaves like issues list data4579 returns expected result4580 when restricted visibility levels is nil4581 behaves like issues list data4582 returns expected result4583 #group_issues_list_data4584 returns expected result4585 #dashboard_issues_list_data4586 returns expected result4587 #issues_form_data4588 returns expected result4589 #issue_manual_ordering_class4590 when sorting by relative position4591 returns manual ordering class4592 when manual sorting disabled4593 returns nil4594 #issue_repositioning_disabled?4595 for project4596 is expected to eq false4597 when block_issue_repositioning feature flag is enabled4598 is expected to eq true4599 for group4600 is expected to eq false4601 when block_issue_repositioning feature flag is enabled4602 is expected to eq true4603 #issue_hidden?4604 when issue is hidden4605 returns `true`4606 when issue is not hidden4607 returns `false`4608 #hidden_issue_icon4609 when issue is hidden4610 returns icon with tooltip4611 when issue is not hidden4612 returns `nil`4613Projects::MoveForksService4614 #execute4615 rollbacks changes if transaction fails4616 when moving a root forked project4617 moves the descendant forks4618 updates the fork network4619 when moving a intermediate forked project4620 moves the descendant forks4621 moves the ascendant fork4622 does not update fork network4623 when moving a leaf forked project4624 moves the ascendant fork4625 does not update fork network4626Pajamas::ButtonComponent4627 button component renders a button4628 renders its content4629 adds default styling4630 button_options4631 are added to the button4632 with custom classes4633 don't conflict with internal button_classes4634 overriding base attributes4635 overrides type4636 button_text_classes4637 is added to the button text4638 disabled4639 by default (false)4640 does not have disabled styling and behavior4641 when set to true4642 has disabled styling and behavior4643 loading4644 by default (false)4645 is not disabled4646 does not render a spinner4647 when set to true4648 is disabled4649 renders a spinner4650 block4651 by default (false)4652 is inline4653 when set to true4654 is block element4655 selected4656 by default (false)4657 does not have selected styling and behavior4658 when set to true4659 has selected styling and behavior4660 category & variant4661 with category variants4662 variant: :default4663 renders the button in correct variant && category4664 variant: :confirm4665 renders the button in correct variant && category4666 variant: :danger4667 renders the button in correct variant && category4668 with non-category variants4669 variant: :dashed4670 renders the button in correct variant && category4671 variant: :link4672 renders the button in correct variant && category4673 variant: :reset4674 renders the button in correct variant && category4675 with primary category4676 variant: :default4677 renders the button in correct variant && category4678 variant: :confirm4679 renders the button in correct variant && category4680 variant: :danger4681 renders the button in correct variant && category4682 size4683 by default (medium)4684 applies medium class4685 when set to small4686 applies the small class to the button4687 icon4688 has none by default4689 with icon4690 renders an icon with custom CSS class4691 with icon only and no content4692 adds a "btn-icon" CSS class4693 with icon only and when loading4694 renders only a loading icon4695 type4696 by default4697 has type "button"4698 when set to known type4699 type: :button4700 has the correct type4701 type: :reset4702 has the correct type4703 type: :submit4704 has the correct type4705 when set to unknown type4706 has type "button"4707 button component renders a link4708 renders a link instead of the button4709 renders its content4710 adds default styling4711 button_options4712 are added to the button4713 with custom classes4714 don't conflict with internal button_classes4715 overriding base attributes4716 overrides type4717 button_text_classes4718 is added to the button text4719 disabled4720 by default (false)4721 does not have disabled styling and behavior4722 when set to true4723 has disabled styling and behavior4724 loading4725 by default (false)4726 is not disabled4727 does not render a spinner4728 when set to true4729 is disabled4730 renders a spinner4731 block4732 by default (false)4733 is inline4734 when set to true4735 is block element4736 selected4737 by default (false)4738 does not have selected styling and behavior4739 when set to true4740 has selected styling and behavior4741 category & variant4742 with category variants4743 variant: :default4744 renders the button in correct variant && category4745 variant: :confirm4746 renders the button in correct variant && category4747 variant: :danger4748 renders the button in correct variant && category4749 with non-category variants4750 variant: :dashed4751 renders the button in correct variant && category4752 variant: :link4753 renders the button in correct variant && category4754 variant: :reset4755 renders the button in correct variant && category4756 with primary category4757 variant: :default4758 renders the button in correct variant && category4759 variant: :confirm4760 renders the button in correct variant && category4761 variant: :danger4762 renders the button in correct variant && category4763 size4764 by default (medium)4765 applies medium class4766 when set to small4767 applies the small class to the button4768 icon4769 has none by default4770 with icon4771 renders an icon with custom CSS class4772 with icon only and no content4773 adds a "btn-icon" CSS class4774 with icon only and when loading4775 renders only a loading icon4776 type4777 ignores type4778 method4779 method: :get4780 has the correct data-method attribute4781 method: :post4782 has the correct data-method attribute4783 method: :put4784 has the correct data-method attribute4785 method: :delete4786 has the correct data-method attribute4787 method: :patch4788 has the correct data-method attribute4789Ci::ProcessSyncEventsService4790 #perform4791 for Projects::SyncEvent4792 is expected to eq {:consumable_events=>2, :estimated_total_events=>2, :processed_events=>2}4793 consumes events4794 when any event left after processing4795 is expected to eq {:consumable_events=>1, :estimated_total_events=>2, :processed_events=>1}4796 enqueues Projects::ProcessSyncEventsWorker4797 when no event left after processing4798 is expected to eq {:consumable_events=>2, :estimated_total_events=>2, :processed_events=>2}4799 does not enqueue Projects::ProcessSyncEventsWorker4800 when there is no event4801 is expected to eq {:consumable_events=>0, :estimated_total_events=>0}4802 does nothing4803 when there is non-executed events4804 is expected to eq {:consumable_events=>2, :estimated_total_events=>3, :processed_events=>2}4805 does not delete non-executed events4806 for Namespaces::SyncEvent4807 enqueues Namespaces::ProcessSyncEventsWorker if any left4808 does not enqueue Namespaces::ProcessSyncEventsWorker if no left4809 when the FFs use_traversal_ids and use_traversal_ids_for_ancestors are disabled4810 behaves like event consuming4811 consumes events4812 behaves like event consuming4813 consumes events4814Clusters::Applications::Helm4815 is expected to belong to cluster required: false4816 is expected to validate that :cluster cannot be empty/falsy4817 #can_uninstall?4818 calls allowed_to_uninstall?4819 #name4820 is .application_name4821 is recorded in Clusters::Cluster::APPLICATIONS4822 .association_name4823 is expected to eq :application_helm4824 #helm_command_module4825 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V24826 is expected to eq Gitlab::Kubernetes::Helm::V24827 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V34828 is expected to eq Gitlab::Kubernetes::Helm::V34829 default values4830 is expected to eq "2.17.0"4831 .available4832 is expected to contain exactly #<Clusters::Applications::Helm id: 1, cluster_id: 3, created_at: "2023-04-12 14:54:17.298005344 +0000...9IwaWy+4pW2PQg==\n", ca_cert: "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAO...", ca_key: nil> and #<Clusters::Applications::Helm id: 2, cluster_id: 6, created_at: "2023-04-12 14:54:17.818458807 +0000...kFzYJM0aOnrNag==\n", ca_cert: "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAO...", ca_key: nil>4833 #can_uninstall?4834 is expected to eq true4835 #issue_client_cert4836 returns a new cert4837 #install_command4838 is expected to be an instance of Gitlab::Kubernetes::Helm::V2::InitCommand4839 is initialized with 1 arguments4840 has cert files4841 rbac4842 rbac cluster4843 is expected to be rbac4844 non rbac cluster4845 is expected not to be rbac4846 #uninstall_command4847 is expected to be an instance of Gitlab::Kubernetes::Helm::V2::ResetCommand4848 has name4849 has cert files4850 rbac4851 rbac cluster4852 is expected to be rbac4853 non rbac cluster4854 is expected not to be rbac4855ApplicationRecord4856 #id_in4857 returns records of the ids4858 .safe_ensure_unique4859 returns false when ActiveRecord::RecordNotUnique is raised4860 retries based on retry count specified4861 safe find or create methods4862 .safe_find_or_create_by4863 creates the suggestion avoiding race conditions4864 passes a block to find_or_create_by4865 does not create a record when is not valid4866 .safe_find_or_create_by!4867 creates a record using safe_find_or_create_by4868 raises a validation error if the record was not persisted4869 passes a block to find_or_create_by4870 raises a record not found error in case of attributes mismatch4871 .underscore4872 returns the underscored value of the class as a string4873 .where_exists4874 produces a WHERE EXISTS query4875 .where_not_exists4876 produces a WHERE NOT EXISTS query4877 .transaction4878 opens a new transaction4879 does not increment a counter when a transaction is not nested4880 increments a counter when a nested transaction is created4881 increments a counter when a transaction is created in ActiveRecord4882 .with_fast_read_statement_timeout4883 when the query runs faster than configured timeout4884 executes the query without error4885 when the query runs longer than configured timeout4886 cancels the query and raises an exception4887 with database load balancing4888 yields control4889 when the query runs faster than configured timeout4890 executes the query without error4891 when the query runs longer than configured timeout4892 cancels the query and raiss an exception4893 .default_select_columns4894 without an ignored column4895 behaves like selects identically to the default4896 generates the same sql as the default4897 with an ignored column4898 behaves like selects identically to the default4899 generates the same sql as the default4900WorkItems::ParentLinks::CreateService4901 #execute4902 when the reference list is empty4903 behaves like returns not found error4904 returns error4905 no relationship is created4906 when work item not found4907 behaves like returns not found error4908 returns error4909 no relationship is created4910 when user has no permission to link work items4911 behaves like returns not found error4912 returns error4913 no relationship is created4914 child and parent are the same work item4915 no relationship is created4916 when adjacent is already in place4917 adjacent_position: -100, expected_order: lazy { [adjacent, current_item] }4918 sets relative positions4919 adjacent_position: 0, expected_order: lazy { [adjacent, current_item] }4920 sets relative positions4921 adjacent_position: 100, expected_order: lazy { [adjacent, current_item] }4922 sets relative positions4923 when there are tasks to relate4924 creates relationships4925 returns success status and created links4926 creates notes4927 when task is already assigned4928 creates links only for non related tasks4929 when there are invalid children4930 creates links only for valid children4931 returns error status4932 creates notes for valid links4933 when parent type is invalid4934 returns error status4935 when max depth is reached4936 returns error status4937 when params include invalid ids4938 creates links only for valid IDs4939 when user is a guest4940 behaves like returns not found error4941 returns error4942 no relationship is created4943 when user is a guest assigned to the work item4944 behaves like returns not found error4945 returns error4946 no relationship is created4947Gitlab::Ci::Trace::Stream4948 delegates4949 is expected to delegate #close to the #stream object4950 is expected to delegate #tell to the #stream object4951 is expected to delegate #seek to the #stream object4952 is expected to delegate #size to the #stream object4953 is expected to delegate #path to the #stream object4954 is expected to delegate #truncate to the #stream object4955 is expected to delegate #valid? to the #stream object as #present?4956 #limit4957 when stream is StringIO4958 behaves like limits4959 if size is larger we start from beginning4960 if size is smaller we start from the end4961 when the trace contains ANSI sequence and Unicode4962 forwards to the next linefeed, case 14963 forwards to the next linefeed, case 24964 reads in binary, output as Encoding.default_external4965 when stream is ChunkedIO4966 behaves like limits4967 if size is larger we start from beginning4968 if size is smaller we start from the end4969 when the trace contains ANSI sequence and Unicode4970 forwards to the next linefeed, case 14971 forwards to the next linefeed, case 24972 reads in binary, output as Encoding.default_external4973 #append4974 when stream is Tempfile4975 behaves like appends4976 truncates and appends content4977 appends in binary mode4978 when stream is ChunkedIO4979 behaves like appends4980 truncates and appends content4981 appends in binary mode4982 metrics4983 increments trace streamed operation4984 increments trace bytes counter4985 #set4986 when stream is StringIO4987 behaves like sets4988 overwrite content4989 when stream is ChunkedIO4990 behaves like sets4991 overwrite content4992 #raw4993 when stream is File4994 behaves like sets4995 returns all contents if last_lines is not specified4996 limit max lines4997 returns last few lines4998 returns everything if trying to get too many lines4999 when stream is ChunkedIO5000 behaves like sets5001 returns all contents if last_lines is not specified5002 limit max lines5003 returns last few lines5004 returns everything if trying to get too many lines5005 #html5006 when stream is StringIO5007 behaves like htmls5008 returns html5009 returns html for last line only5010 when stream is ChunkedIO5011 behaves like htmls5012 returns html5013 returns html for last line only5014 #extract_coverage5015 when stream is StringIO5016 behaves like extract_coverages5017 valid content & regex5018 is expected to eq "98.29"5019 valid content & bad regex5020 is expected to be nil5021 no coverage content & regex5022 is expected to be nil5023 multiple results in content & regex5024 returns the last matched coverage5025 when BUFFER_SIZE is smaller than stream.size5026 is expected to eq "98.29"5027 when regex is multi-byte char5028 is expected to eq "95.0"5029 when BUFFER_SIZE is equal to stream.size5030 is expected to eq "98.29"5031 using a regex capture5032 is expected to eq "65"5033 malicious regexp5034 takes under a second5035 multi-line data with rooted regexp5036 is expected to eq "65"5037 long line5038 is expected to eq "100"5039 many lines5040 is expected to eq "100"5041 empty regex5042 skips processing5043 nil regex5044 skips processing5045 when stream is ChunkedIO5046 behaves like extract_coverages5047 valid content & regex5048 is expected to eq "98.29"5049 valid content & bad regex5050 is expected to be nil5051 no coverage content & regex5052 is expected to be nil5053 multiple results in content & regex5054 returns the last matched coverage5055 when BUFFER_SIZE is smaller than stream.size5056 is expected to eq "98.29"5057 when regex is multi-byte char5058 is expected to eq "95.0"5059 when BUFFER_SIZE is equal to stream.size5060 is expected to eq "98.29"5061 using a regex capture5062 is expected to eq "65"5063 malicious regexp5064 takes under a second5065 multi-line data with rooted regexp5066 is expected to eq "65"5067 long line5068 is expected to eq "100"5069 many lines5070 is expected to eq "100"5071 empty regex5072 skips processing5073 nil regex5074 skips processing5075Banzai::ReferenceParser::CommitParser5076 #nodes_visible_to_user5077 when the link has a data-project attribute5078 includes the link if can_read_reference? returns true5079 excludes the link if can_read_reference? returns false5080 behaves like referenced feature visibility5081 when feature is disabled5082 does not create reference5083 when feature is enabled only for team members5084 does not create reference for non member5085 creates reference for member5086 when feature is enabled5087 creates reference5088 when the link does not have a data-project attribute5089 returns the nodes5090 #referenced_by5091 when the link has a data-project attribute5092 when the link has a data-commit attribute5093 returns an Array of commits5094 returns an empty Array when the commit could not be found5095 skips projects without valid repositories5096 when the link does not have a data-commit attribute5097 returns an empty Array5098 when the link does not have a data-project attribute5099 returns an empty Array5100 #commit_ids_per_project5101 returns a Hash containing commit IDs per project5102 does not add a project when the data-commit attribute is empty5103 #find_commits5104 returns an Array of commit objects5105 skips commit IDs for which no commit could be found5106 when checking commits on another projects5107 behaves like no project N+1 queries5108 avoids N+1 queries in #nodes_visible_to_user5109ApplicationSettingsHelper5110 when all protocols in use5111 is expected to be truthy5112 is expected to be truthy5113 is expected to be truthy5114 when SSH is only in use5115 is expected to be falsey5116 is expected to be falsey5117 is expected to be truthy5118 behaves like when HTTP protocol is in use5119 is expected to be falsey5120 is expected to be truthy5121 is expected to be falsey5122 behaves like when HTTP protocol is in use5123 is expected to be falsey5124 is expected to be truthy5125 is expected to be falsey5126 .visible_attributes5127 contains tracking parameters5128 contains :deactivate_dormant_users5129 contains :deactivate_dormant_users_period5130 contains rate limit parameters5131 when on SaaS5132 does not contain :deactivate_dormant_users5133 does not contain :deactivate_dormant_users_period5134 .integration_expanded?5135 is expanded5136 is not expanded5137 .self_monitoring_project_data5138 when self-monitoring project does not exist5139 returns create_self_monitoring_project_path5140 returns status_create_self_monitoring_project_path5141 returns delete_self_monitoring_project_path5142 returns status_delete_self_monitoring_project_path5143 returns self_monitoring_project_exists false5144 returns nil for project full_path5145 when self-monitoring project exists5146 returns self_monitoring_project_exists true5147 returns project full_path5148 #storage_weights5149 returns storage objects with assigned weights5150 .valid_runner_registrars5151 when only admins are permitted to register runners5152 is expected to eq []5153 when group and project users are permitted to register runners5154 is expected to eq ["project", "group"]5155 .signup_enabled?5156 when signup is enabled5157 is expected to equal true5158 when signup is disabled5159 is expected to equal false5160 when `signup_enabled` is nil5161 is expected to equal false5162 .kroki_available_formats5163 returns available formats correctly5164 .pending_user_count5165 when new_user_signups_cap is present5166 returns the number of blocked pending users5167 .registration_features_can_be_prompted?5168 when service ping is enabled5169 is expected to be falsey5170 when service ping is disabled5171 is expected to be truthy5172 .spam_check_endpoint_enabled?5173 when spam check endpoint is enabled5174 is expected to equal true5175 when spam check endpoint is disabled5176 is expected to equal false5177 .anti_spam_service_enabled?5178 when akismet is enabled and spam check endpoint is disabled5179 is expected to equal true5180 when akismet is disabled and spam check endpoint is enabled5181 is expected to equal true5182 when akismet and spam check endpoint are both enabled5183 is expected to equal true5184 when akismet and spam check endpoint are both disabled5185 is expected to equal false5186 #sidekiq_job_limiter_modes_for_select5187 is expected to eq [["Track", "track"], ["Compress", "compress"]]5188 #instance_clusters_enabled?5189 is expected to be truthy5190 :certificate_based_clusters feature flag is disabled5191 is expected to be falsey5192 #restricted_level_checkboxes5193 returns restricted level checkboxes with correct label, description, and HTML attributes5194Gitlab::Ci::CronParser5195 #next_time_from5196 behaves like when cron and cron_timezone are valid5197 when specific time5198 returns exact time5199 behaves like returns time in the future5200 is expected to be > 2023-04-12 14:55:25 +00005201 when specific day of week5202 returns exact day of week5203 behaves like returns time in the future5204 is expected to be > 2023-04-12 14:55:25 +00005205 when */ used5206 returns specific time5207 behaves like returns time in the future5208 is expected to be > 2023-04-12 14:55:25 +00005209 when range used5210 returns specific time5211 behaves like returns time in the future5212 is expected to be > 2023-04-12 14:55:25 +00005213 when range and / are used5214 returns specific time5215 behaves like returns time in the future5216 is expected to be > 2023-04-12 14:55:26 +00005217 when / is used5218 returns specific time5219 behaves like returns time in the future5220 is expected to be > 2023-04-12 14:55:26 +00005221 when cron_timezone is TZInfo format5222 when cron_timezone is US/Pacific5223 behaves like returns time in the future5224 is expected to be > 2023-04-12 14:55:26 +00005225 when PST (Pacific Standard Time)5226 converts time in server time zone5227 when PDT (Pacific Daylight Time)5228 converts time in server time zone5229 when cron_timezone is ActiveSupport::TimeZone format5230 when cron_timezone is Berlin5231 behaves like returns time in the future5232 is expected to be > 2023-04-12 14:55:26 +00005233 when CET (Central European Time)5234 converts time in server time zone5235 when CEST (Central European Summer Time)5236 converts time in server time zone5237 behaves like when cron_timezone is Eastern Time (US & Canada)5238 behaves like returns time in the future5239 is expected to be > 2023-04-12 14:55:26 +00005240 when EST (Eastern Standard Time)5241 converts time in server time zone5242 when EDT (Eastern Daylight Time)5243 converts time in server time zone5244 when time crosses a Daylight Savings boundary5245 generates day without TZInfo::AmbiguousTime error5246 behaves like when cron and cron_timezone are invalid5247 is expected to be nil5248 behaves like when cron syntax is quoted5249 is expected to be nil5250 behaves like when cron syntax is rufus-scheduler syntax5251 is expected to be nil5252 behaves like when cron is scheduled to a non existent day5253 is expected to be nil5254 #previous_time_from5255 behaves like when cron and cron_timezone are valid5256 when specific time5257 returns exact time5258 behaves like returns time in the past5259 is expected to be < 2023-04-12 14:55:26 +00005260 when specific day of week5261 returns exact day of week5262 behaves like returns time in the past5263 is expected to be < 2023-04-12 14:55:26 +00005264 when */ used5265 returns specific time5266 behaves like returns time in the past5267 is expected to be < 2023-04-12 14:55:26 +00005268 when range used5269 returns specific time5270 behaves like returns time in the past5271 is expected to be < 2023-04-12 14:55:27 +00005272 when range and / are used5273 returns specific time5274 behaves like returns time in the past5275 is expected to be < 2023-04-12 14:55:27 +00005276 when / is used5277 returns specific time5278 behaves like returns time in the past5279 is expected to be < 2023-04-12 14:55:27 +00005280 when cron_timezone is TZInfo format5281 when cron_timezone is US/Pacific5282 behaves like returns time in the past5283 is expected to be < 2023-04-12 14:55:27 +00005284 when PST (Pacific Standard Time)5285 converts time in server time zone5286 when PDT (Pacific Daylight Time)5287 converts time in server time zone5288 when cron_timezone is ActiveSupport::TimeZone format5289 when cron_timezone is Berlin5290 behaves like returns time in the past5291 is expected to be < 2023-04-12 14:55:27 +00005292 when CET (Central European Time)5293 converts time in server time zone5294 when CEST (Central European Summer Time)5295 converts time in server time zone5296 behaves like when cron_timezone is Eastern Time (US & Canada)5297 behaves like returns time in the past5298 is expected to be < 2023-04-12 14:55:27 +00005299 when EST (Eastern Standard Time)5300 converts time in server time zone5301 when EDT (Eastern Daylight Time)5302 converts time in server time zone5303 when time crosses a Daylight Savings boundary5304 generates day without TZInfo::AmbiguousTime error5305 behaves like when cron and cron_timezone are invalid5306 is expected to be nil5307 behaves like when cron syntax is quoted5308 is expected to be nil5309 behaves like when cron syntax is rufus-scheduler syntax5310 is expected to be nil5311 behaves like when cron is scheduled to a non existent day5312 is expected to be nil5313 #cron_valid?5314 when cron is valid5315 is expected to eq true5316 when cron is invalid5317 is expected to eq false5318 when cron syntax is quoted5319 is expected to eq false5320 #cron_timezone_valid?5321 when cron is valid5322 is expected to eq true5323 when cron is invalid5324 is expected to eq false5325 when cron_timezone is ActiveSupport::TimeZone format5326 is expected to eq true5327 .parse_natural5328 when repeat cycle is day5329 generates daily cron expression5330 when repeat cycle is week5331 generates weekly cron expression5332 when repeat cycle is month5333 generates monthly cron expression5334 when an unsupported duration is specified5335 raises an exception5336 when repeat cycle is year5337 generates yearly cron expression5338 when the repeat cycle is not implemented5339 raises an exception5340 #match?5341 when cron matches up5342 is expected to eq true5343 when cron does not match5344 is expected to eq false5345Discussions::UpdateDiffPositionService5346 #execute5347 when the diff line is the same5348 updates the position5349 when the resolve_outdated_diff_discussions setting is set5350 does not resolve the discussion5351 when the diff line has changed5352 doesn't update the position5353 sets the change position5354 creates a system discussion5355 when the resolve_outdated_diff_discussions setting is set5356 sets resolves the discussion and sets resolved_by_push5357 doesn't update the position5358 sets the change position5359 creates a system discussion5360Gitlab::SlashCommands::Deploy5361 #execute5362 if no environment is defined5363 does not execute an action5364 with environment5365 without actions5366 does not execute an action5367 when single action has been matched5368 returns success result5369 when more than one action has been matched5370 when there is no specific actions with a environment name5371 returns error about too many actions defined5372 when one of the actions is environement specific action5373 deploys to production5374 when one of the actions is a teardown action5375 deploys to production5376 with extra spaces in the deploy command5377 deploys to production5378 self.match5379 matches the environment5380 matches the environment with spaces in it5381 matches the environment name with surrounding spaces5382 returns nil for text that is not a deploy command5383 returns nil for a partial command5384 with ReDoS attempts5385 has smaller than linear execution time growth with a malformed "to"5386Gitlab::Ci::Build::Rules::Rule::Clause::Changes5387 #satisfied_by?5388 a glob matching rule5389 exact top-level match5390 is expected to eq true5391 exact top-level no match5392 is expected to eq false5393 pattern top-level match5394 is expected to eq true5395 pattern top-level no match5396 is expected to eq false5397 exact nested match5398 is expected to eq true5399 exact nested no match5400 is expected to eq false5401 pattern nested match5402 is expected to eq true5403 pattern nested no match5404 is expected to eq false5405 ext top-level match5406 is expected to eq true5407 ext nested no match5408 is expected to eq false5409 ext slash no match5410 is expected to eq false5411 when pipeline is nil5412 is expected to be truthy5413 when using variable expansion5414 when context is nil5415 is expected to be falsey5416 when modified paths are nil5417 is expected to be truthy5418 when context has the specified variables5419 is expected to be truthy5420 when variable expansion does not match5421 is expected to be truthy5422 when using compare_to5423 when compare_to is branch or tag5424 pipeline_ref: "feature_1", compare_to: "master", paths: ["file1.txt"], result: true5425 is expected to eq true5426 pipeline_ref: "feature_1", compare_to: "master", paths: ["README.md"], result: false5427 is expected to eq false5428 pipeline_ref: "feature_1", compare_to: "master", paths: ["xyz.md"], result: false5429 is expected to eq false5430 pipeline_ref: "feature_2", compare_to: "master", paths: ["file1.txt"], result: true5431 is expected to eq true5432 pipeline_ref: "feature_2", compare_to: "master", paths: ["file2.txt"], result: true5433 is expected to eq true5434 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file1.txt"], result: false5435 is expected to eq false5436 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file2.txt"], result: true5437 is expected to eq true5438 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file1.txt"], result: false5439 is expected to eq false5440 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file2.txt"], result: true5441 is expected to eq true5442 pipeline_ref: "feature_2", compare_to: "tag_1", paths: ["file2.txt"], result: true5443 is expected to eq true5444 when compare_to is a sha5445 is expected to be truthy5446 when compare_to is not a valid ref5447 raises ParseError5448Ci::Components::FetchService5449 # order random5450 #execute5451 when address points to an external component5452 when component path is the full path to a project5453 behaves like an external component5454 when user does not have permissions to read the code5455 returns an error5456 when version is a branch name5457 behaves like component address5458 when content exists5459 returns the content5460 when content does not exist5461 returns an error5462 when version is a tag name5463 behaves like component address5464 when content exists5465 returns the content5466 when content does not exist5467 returns an error5468 when version is a commit sha5469 behaves like component address5470 when content exists5471 returns the content5472 when content does not exist5473 returns an error5474 when version is not provided5475 returns an error5476 when project does not exist5477 returns an error5478 when host is different than the current instance host5479 returns an error5480 when component path points to a directory in a project5481 behaves like an external component5482 when user does not have permissions to read the code5483 returns an error5484 when version is a branch name5485 behaves like component address5486 when content exists5487 returns the content5488 when content does not exist5489 returns an error5490 when version is a tag name5491 behaves like component address5492 when content exists5493 returns the content5494 when content does not exist5495 returns an error5496 when version is a commit sha5497 behaves like component address5498 when content exists5499 returns the content5500 when content does not exist5501 returns an error5502 when version is not provided5503 returns an error5504 when project does not exist5505 returns an error5506 when host is different than the current instance host5507 returns an error5508 when component path points to a nested directory in a project5509 behaves like an external component5510 when user does not have permissions to read the code5511 returns an error5512 when version is a branch name5513 behaves like component address5514 when content exists5515 returns the content5516 when content does not exist5517 returns an error5518 when version is a tag name5519 behaves like component address5520 when content exists5521 returns the content5522 when content does not exist5523 returns an error5524 when version is a commit sha5525 behaves like component address5526 when content exists5527 returns the content5528 when content does not exist5529 returns an error5530 when version is not provided5531 returns an error5532 when project does not exist5533 returns an error5534 when host is different than the current instance host5535 returns an error5536Gitlab::Database::MigrationHelpers::V25537 #rename_column_concurrently5538 behaves like Setting up to rename a column5539 creates the renamed column, syncing existing data5540 installs triggers to sync new data5541 requires the helper to run in ddl mode5542 when called inside a transaction block5543 raises an error5544 when the existing column has a default function5545 raises an error5546 when passing a batch column5547 when the batch column does not exist5548 raises an error5549 when the batch column does exist5550 passes it when creating the column5551 when the existing column has a default value5552 creates the renamed column, syncing existing data5553 installs triggers to sync new data5554 when the existing column has a default value that evaluates to NULL5555 creates the renamed column, syncing existing data5556 installs triggers to sync new data5557 when the column to rename does not exist5558 raises an error5559 #undo_cleanup_concurrent_column_rename5560 behaves like Setting up to rename a column5561 creates the renamed column, syncing existing data5562 installs triggers to sync new data5563 requires the helper to run in ddl mode5564 when called inside a transaction block5565 raises an error5566 when the existing column has a default function5567 raises an error5568 when passing a batch column5569 when the batch column does not exist5570 raises an error5571 when the batch column does exist5572 passes it when creating the column5573 when the existing column has a default value5574 creates the renamed column, syncing existing data5575 installs triggers to sync new data5576 when the existing column has a default value that evaluates to NULL5577 creates the renamed column, syncing existing data5578 installs triggers to sync new data5579 when the renamed column does not exist5580 raises an error5581 #undo_rename_column_concurrently5582 behaves like Cleaning up from renaming a column5583 when the helper is called repeatedly5584 does not make repeated attempts to cleanup5585 when the renamed column exists5586 removes the sync triggers and renamed columns5587 #cleanup_concurrent_column_rename5588 behaves like Cleaning up from renaming a column5589 when the helper is called repeatedly5590 does not make repeated attempts to cleanup5591 when the renamed column exists5592 removes the sync triggers and renamed columns5593 #create_table5594 using a limit: attribute on .text5595 creates the table as expected5596 #with_lock_retries5597-- transaction_open?()5598 -> 0.0002s5599 sets the migration class name in the logs5600-- transaction_open?()5601 -> 0.0002s5602 does not raise on exhaustion by default5603-- transaction_open?()5604 -> 0.0002s5605 defaults to disallowing subtransactions5606 raise_on_exhaustion: true5607-- transaction_open?()5608 -> 0.0002s5609 sets raise_on_exhaustion as requested5610 raise_on_exhaustion: false5611-- transaction_open?()5612 -> 0.0003s5613 sets raise_on_exhaustion as requested5614 when in transaction5615 when lock retries are enabled5616 does not use Gitlab::Database::WithLockRetries and executes the provided block directly5617 when lock retries are not enabled5618 raises an error5619Gitlab::GithubImport::Representation::IssueEvent5620 .from_api_response5621 behaves like an IssueEvent5622 returns an instance of IssueEvent5623 the returned IssueEvent5624 includes the issue event id5625 includes the issue event "event"5626 includes the issue event commit_id5627 includes the issue event source5628 includes the issue data5629 includes the created timestamp5630 when actor data present5631 includes the actor details5632 when actor data is empty5633 does not return such info5634 when label data is present5635 includes the label_title5636 when label data is empty5637 does not return such info5638 when rename field is present5639 includes the old_title and new_title fields5640 when rename field is empty5641 does not return such info5642 when milestone data is present5643 includes the milestone_title5644 when milestone data is empty5645 does not return such info5646 when assignee data is present5647 includes assignee details5648 when assignee data is empty5649 does not return such info5650 when requested_reviewer and review_requester data is present5651 includes requested_reviewer and review_requester details5652 when requested_reviewer and review_requester data is empty5653 does not return such info5654 #issuable_id5655 returns issuable_id5656 #issuable_type5657 when event related to issue5658 is expected to eq "Issue"5659 when event related to pull request5660 is expected to eq "MergeRequest"5661 #github_identifiers5662 returns a hash with needed identifiers5663 .from_json_hash5664 behaves like an IssueEvent5665 returns an instance of IssueEvent5666 the returned IssueEvent5667 includes the issue event id5668 includes the issue event "event"5669 includes the issue event commit_id5670 includes the issue event source5671 includes the issue data5672 includes the created timestamp5673 when actor data present5674 includes the actor details5675 when actor data is empty5676 does not return such info5677 when label data is present5678 includes the label_title5679 when label data is empty5680 does not return such info5681 when rename field is present5682 includes the old_title and new_title fields5683 when rename field is empty5684 does not return such info5685 when milestone data is present5686 includes the milestone_title5687 when milestone data is empty5688 does not return such info5689 when assignee data is present5690 includes assignee details5691 when assignee data is empty5692 does not return such info5693 when requested_reviewer and review_requester data is present5694 includes requested_reviewer and review_requester details5695 when requested_reviewer and review_requester data is empty5696 does not return such info5697 #issuable_id5698 returns issuable_id5699 #issuable_type5700 when event related to issue5701 is expected to eq "Issue"5702 when event related to pull request5703 is expected to eq "MergeRequest"5704 #github_identifiers5705 returns a hash with needed identifiers5706Gitlab::Ci::Config::External::File::Artifact5707 #matching?5708 when params contain artifact location5709 returns true5710 when params does not contain artifact location5711 returns false5712 #valid?5713 when used in non child pipeline context5714 behaves like is invalid5715 sets the expected error5716 when used in child pipeline context5717 when job is not provided5718 behaves like is invalid5719 sets the expected error5720 when job is provided5721 when job does not exist in the parent pipeline5722 behaves like is invalid5723 sets the expected error5724 when job exists in the parent pipeline5725 when job does not have artifacts5726 behaves like is invalid5727 sets the expected error5728 when job has archive artifacts5729 behaves like is invalid5730 sets the expected error5731 when job has artifacts exceeding the max allowed size5732 behaves like is invalid5733 sets the expected error5734 when job has artifacts metadata5735 behaves like is invalid5736 sets the expected error5737 when file is found in metadata5738 when file is empty5739 behaves like is invalid5740 sets the expected error5741 when file is not empty5742 is valid5743 propagates parent_pipeline to nested includes5744 when job is provided as a variable5745 when job does not exist in the parent pipeline5746 behaves like is invalid5747 sets the expected error5748 #metadata5749 is expected to eq {:context_project=>"namespace699/project691", :context_sha=>nil, :extra=>{:job_name=>nil}, :location=>"generated.yml", :type=>:artifact}5750 when job name includes a masked variable5751 is expected to eq {:context_project=>"namespace700/project692", :context_sha=>nil, :extra=>{:job_name=>"xxxxxxxxxxxxxxxxxxxxxxx"}, :location=>"generated.yml", :type=>:artifact}5752 #to_hash5753 when interpolation is being used5754 correctly interpolates content5755Packages::Nuget::ExtractionWorker5756 #perform5757 with valid package file5758 updates package and package file5759 with exisiting package5760 reuses existing package and updates package file5761 with invalid package file id5762 doesn't update package and package file5763 with package file not containing a nuspec file5764 behaves like handling the metadata error5765 updates package status to error5766 with package with an invalid package name5767 behaves like handling the metadata error5768 updates package status to error5769 behaves like handling the metadata error5770 updates package status to error5771 behaves like handling the metadata error5772 updates package status to error5773 behaves like handling the metadata error5774 updates package status to error5775 with package with an invalid package version5776 behaves like handling the metadata error5777 updates package status to error5778 behaves like handling the metadata error5779 updates package status to error5780 behaves like handling the metadata error5781 updates package status to error5782 behaves like handling the metadata error5783 updates package status to error5784 behaves like handling the metadata error5785 updates package status to error5786 behaves like handling the metadata error5787 updates package status to error5788 handles a processing an unaccounted for error5789 behaves like handling the metadata error5790 updates package status to error5791Integrations::Pumble5792 behaves like chat integration5793 Associations5794 is expected to belong to project required: false5795 Validations5796 when integration is active5797 is expected to validate that :webhook cannot be empty/falsy5798 behaves like issue tracker integration URL attribute5799 is expected to allow :webhook to be ‹"https://example.com"›5800 is expected not to allow :webhook to be ‹"example.com"›5801 is expected not to allow :webhook to be ‹"ftp://example.com"›5802 is expected not to allow :webhook to be ‹"herp-and-derp"›5803 when integration is inactive5804 is expected not to validate that :webhook cannot be empty/falsy5805 .supported_events5806 does not support deployment_events5807 #execute5808 with push events5809 behaves like triggered Pumble integration5810 calls Pumble API5811 with default branch5812 when only default branch are to be notified5813 behaves like triggered Pumble integration5814 calls Pumble API5815 when only protected branches are to be notified5816 behaves like untriggered Pumble integration5817 does not call Pumble API5818 when default and protected branches are to be notified5819 behaves like triggered Pumble integration5820 calls Pumble API5821 when all branches are to be notified5822 behaves like triggered Pumble integration5823 calls Pumble API5824 with protected branch5825 when only default branch are to be notified5826 behaves like untriggered Pumble integration5827 does not call Pumble API5828 when only protected branches are to be notified5829 behaves like triggered Pumble integration5830 calls Pumble API5831 when default and protected branches are to be notified5832 behaves like triggered Pumble integration5833 calls Pumble API5834 when all branches are to be notified5835 behaves like triggered Pumble integration5836 calls Pumble API5837 with neither default nor protected branch5838 when only default branch are to be notified5839 behaves like untriggered Pumble integration5840 does not call Pumble API5841 when only protected branches are to be notified5842 behaves like untriggered Pumble integration5843 does not call Pumble API5844 when default and protected branches are to be notified5845 behaves like untriggered Pumble integration5846 does not call Pumble API5847 when all branches are to be notified5848 behaves like triggered Pumble integration5849 calls Pumble API5850 with issue events5851 behaves like triggered Pumble integration5852 calls Pumble API5853 with merge events5854 behaves like triggered Pumble integration5855 calls Pumble API5856 with wiki page events5857 behaves like triggered Pumble integration5858 calls Pumble API5859 with note events5860 with commit comment5861 behaves like triggered Pumble integration5862 calls Pumble API5863 with merge request comment5864 behaves like triggered Pumble integration5865 calls Pumble API5866 with issue comment5867 behaves like triggered Pumble integration5868 calls Pumble API5869 with snippet comment5870 behaves like triggered Pumble integration5871 calls Pumble API5872 with pipeline events5873 with failed pipeline5874 behaves like triggered Pumble integration5875 calls Pumble API5876 with succeeded pipeline5877 with default notify_only_broken_pipelines5878 does not call Pumble API5879 when notify_only_broken_pipelines is false5880 behaves like triggered Pumble integration5881 calls Pumble API5882 with default branch5883 when only default branch are to be notified5884 behaves like triggered Pumble integration5885 calls Pumble API5886 when only protected branches are to be notified5887 behaves like untriggered Pumble integration5888 does not call Pumble API5889 when default and protected branches are to be notified5890 behaves like triggered Pumble integration5891 calls Pumble API5892 when all branches are to be notified5893 behaves like triggered Pumble integration5894 calls Pumble API5895 with protected branch5896 when only default branch are to be notified5897 behaves like untriggered Pumble integration5898 does not call Pumble API5899 when only protected branches are to be notified5900 behaves like triggered Pumble integration5901 calls Pumble API5902 when default and protected branches are to be notified5903 behaves like triggered Pumble integration5904 calls Pumble API5905 when all branches are to be notified5906 behaves like triggered Pumble integration5907 calls Pumble API5908 with neither default nor protected branch5909 when only default branch are to be notified5910 behaves like untriggered Pumble integration5911 does not call Pumble API5912 when only protected branches are to be notified5913 behaves like untriggered Pumble integration5914 does not call Pumble API5915 when default and protected branches are to be notified5916 behaves like untriggered Pumble integration5917 does not call Pumble API5918 when all branches are to be notified5919 behaves like triggered Pumble integration5920 calls Pumble API5921 deployment events5922 behaves like untriggered Pumble integration5923 does not call Pumble API5924Ci::PipelineArtifacts::DestroyAllExpiredService5925 .execute5926 when timeout happens5927 returns 0 and does not continue destroying5928 when there are no artifacts5929 does not raise error5930 when the loop limit is reached5931 destroys one artifact5932 reports the number of destroyed artifacts5933 when there are artifacts more than batch sizes5934 destroys all expired artifacts5935 reports the number of destroyed artifacts5936 when artifacts are not expired5937 does not destroy pipeline artifacts5938 reports the number of destroyed artifacts5939 when pipeline is locked5940 does not destroy pipeline artifacts5941 reports the number of destroyed artifacts5942 with unlocked pipeline artifacts5943 destroys all expired artifacts5944 when the loop limit is reached5945 destroys one artifact5946 reports the number of destroyed artifacts5947 .destroy_artifacts_batch5948 returns a falsy value without artifacts5949Ci::UpdateBuildStateService5950 when build has unknown failure reason5951 updates a build status5952 when build has failed5953 sends a build failed event to Snowplow5954 when build does not have checksum5955 when state has changed5956 updates a state of a running build5957 returns 200 OK status5958 does not increment finalized trace metric5959 when it is a heartbeat request5960 updates a build timestamp5961 when state is unknown5962 responds with 400 bad request5963 when build has a checksum5964 when build does not have associated trace chunks5965 updates a build status5966 updates the allow_failure flag5967 does not increment invalid trace metric5968 does not increment chunks_invalid_checksum trace metric5969 when build trace has been migrated5970 updates a build state5971 updates the allow_failure flag5972 responds with 200 OK status5973 does not set a backoff value5974 increments trace finalized operation metric5975 records migration duration in a histogram5976 when trace checksum is not valid5977 increments invalid trace metric5978 increments chunks_invalid_checksum trace metric5979 when trace checksum is valid5980 does not increment invalid or corrupted trace metric5981 when using deprecated parameters5982 does not increment invalid or corrupted trace metric5983 when trace checksum is invalid and the log is corrupted5984 increments invalid and corrupted trace metrics5985 when trace checksum is invalid but the log seems fine5986 does not increment corrupted trace metric5987 when failed to acquire a build trace lock5988 accepts a state update request5989 increment locked trace metric5990 when build trace has not been migrated yet5991 does not update a build state5992 responds with 202 accepted5993 sets a request backoff value5994 schedules live chunks for migration5995 creates a pending state record5996 increments trace accepted operation metric5997 does not increment invalid trace metric5998 when build pending state is outdated5999 responds with 200 OK6000 updates build state6001 increments discarded traces metric6002 does not increment finalized trace metric6003 when build pending state has changes6004 uses stored state and responds with 200 OK6005 increments conflict trace metric6006 when live traces are disabled6007 responds with 200 OK6008Ci::BuildTraceMetadata6009 is expected to belong to build required: false6010 is expected to belong to trace_artifact required: false6011 is expected to validate that :build cannot be empty/falsy6012 is expected to validate that :archival_attempts cannot be empty/falsy6013 #can_attempt_archival_now?6014 when archival_attempts is over the limit6015 is expected to be falsey6016 when last_archival_attempt_at is not set6017 is expected to be truthy6018 when last_archival_attempt_at is set6019 is expected to be truthy6020 when last_archival_attempt_at is too close6021 is expected to be falsey6022 #archival_attempts_available?6023 when archival_attempts is over the limit6024 is expected to be falsey6025 when archival_attempts is at the limit6026 is expected to be truthy6027 #increment_archival_attempts!6028 increments the attempts6029 updates the last_archival_attempt_at timestamp6030 #track_archival!6031 stores the artifact id and timestamp6032 .find_or_upsert_for!6033 creates a new record6034 with existing records6035 returns the existing record6036 #remote_checksum_valid?6037 checksum: nil, remote_checksum: nil, result: false6038 is expected to eq false6039 checksum: nil, remote_checksum: "a", result: false6040 is expected to eq false6041 checksum: "a", remote_checksum: nil, result: false6042 is expected to eq false6043 checksum: "a", remote_checksum: "b", result: false6044 is expected to eq false6045 checksum: "b", remote_checksum: "a", result: false6046 is expected to eq false6047 checksum: "a", remote_checksum: "a", result: true6048 is expected to eq true6049 partitioning6050 assigns the same partition id as the one that build has (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6051Gitlab::Database::PostgresIndex6052 is expected to be a kind of Gitlab::Database::SharedModel(abstract)6053 behaves like a postgres model6054 .by_identifier6055 finds the Gitlab::Database::PostgresIndex6056 raises an error if not found6057 raises ArgumentError if given a non-fully qualified identifier6058 #to_s6059 returns the name6060 #schema6061 returns the schema6062 #name6063 returns the name6064 .reindexing_support6065 only non partitioned indexes6066 only indexes that dont serve an exclusion constraint6067 only non-expression indexes6068 only btree and gist indexes6069 with leftover indexes6070 excludes temporary indexes from reindexing6071 .reindexing_leftovers6072 retrieves leftover indexes matching the /_ccnew[0-9]*$/ pattern6073 .not_match6074 excludes indexes matching the given regex6075 matches indexes without this prefix regex6076 #bloat_size6077 returns the bloat size from the estimate6078 without a bloat estimate available6079 returns 06080 #relative_bloat_level6081 calculates the relative bloat level6082 #reset6083 calls #reload6084 resets the bloat estimation6085 #unique?6086 returns true for a unique index6087 returns false for a regular, non-unique index6088 returns true for a primary key index6089 #valid_index?6090 returns true if the index is invalid6091 returns false if the index is marked as invalid6092 #definition6093 returns the index definition6094Gitlab::ImportExport::MergeRequestParser6095 has a source branch6096 has a target branch6097 fork merge request6098 parses a MR that has no source branch6099 parses a MR that is closed6100 parses a MR that is merged6101 when the merge request has diffs6102 when the diff is invalid6103 sets the diff to empty diff6104Gitlab::GithubImport::Importer::PullRequestsImporter6105 #parallel?6106 returns true when running in parallel mode6107 returns false when running in sequential mode6108 #execute6109 when running in parallel mode6110 imports pull requests in parallel6111 when running in sequential mode6112 imports pull requests in sequence6113 #sequential_import6114 imports each pull request in sequence6115 #parallel_import6116 imports each note in parallel6117 #each_object_to_import6118 yields every pull request to the supplied block6119 updates the repository if a pull request was updated after the last clone6120 #update_repository6121 updates the repository6122 #update_repository?6123 when the pull request was updated after the last update6124 returns true when the head SHA is not present6125 returns true when the base SHA is not present6126 returns false if both the head and base SHAs are present6127 when the pull request was updated before the last update6128 returns false6129 #commit_exists?6130 returns true when a commit exists6131 returns false when a commit does not exist6132 #id_for_already_imported_cache6133 returns the PR number of the given PR6134Gitlab::ImportExport::SnippetRepoRestorer6135 when the snippet does not have a bundle file path6136 behaves like no bundle file present6137 creates the repository from the database content6138 does not call snippet update statistics service6139 when the repository creation fails6140 returns false6141 when the snippet bundle path is not present6142 behaves like no bundle file present6143 creates the repository from the database content6144 does not call snippet update statistics service6145 when the repository creation fails6146 returns false6147 when the snippet repository bundle exists6148 refreshes snippet statistics6149 when it is valid6150 creates the repository from the bundle6151 sets same shard in snippet repository as in the repository storage6152 when it is invalid6153 returns false and deletes the repository from disk and the database6154DeploymentEntity6155 # order random6156 exposes fields6157 when deployable is nil6158 does not expose deployable entry6159 when the pipeline has another manual action6160 returns another manual action6161 when user is a reporter6162 returns another manual action6163 when deployment details serialization was disabled6164 does not serialize manual actions details6165 playable_build6166 when the deployment has a playable deployable6167 when this build is ready to be played6168 exposes only the play_path6169 when this build has failed6170 exposes the play_path and the retry_path6171 when the deployment does not have a playable deployable6172 is not exposed6173 scheduled_actions6174 when the same pipeline has a scheduled action6175 returns other scheduled actions6176 when the same pipeline does not have a scheduled action6177 does not return other actions6178 when deployment details serialization was disabled6179 does not serialize scheduled actions details6180 when deployment details serialization was disabled6181 does not serialize deployment details6182 only exposes deployable name and path6183Resolvers::GroupLabelsResolver6184 is expected to have nullable GraphQL type LabelConnection6185 #resolve6186 with unauthorized user6187 generates an error6188 with authorized user6189 does not raise error6190 without parent6191 returns no labels6192 association preloading6193 when the preload_max_access_levels_for_labels_finder FF is on6194 prevents N+1 queries6195 when the preload_max_access_levels_for_labels_finder FF is off6196 creates N+1 queries6197 at group level6198 include_ancestor_groups: nil, include_descendant_groups: nil, only_group_labels: nil, search_term: nil, test: -> { expect(subject).to contain_exactly(subgroup_label1, subgroup_label2) }6199 is expected to contain exactly #<GroupLabel id:137 ~137> and #<GroupLabel id:138 ~138>6200 include_ancestor_groups: nil, include_descendant_groups: nil, only_group_labels: true, search_term: nil, test: -> { expect(subject).to contain_exactly(subgroup_label1, subgroup_label2) }6201 is expected to contain exactly #<GroupLabel id:137 ~137> and #<GroupLabel id:138 ~138>6202 include_ancestor_groups: nil, include_descendant_groups: true, only_group_labels: nil, search_term: nil, test: -> { expect(subject).to contain_exactly(subgroup_label1, subgroup_label2, sub_subgroup_label1, sub_subgroup_label2, label1, label2) }6203 is expected to contain exactly #<GroupLabel id:137 ~137>, #<GroupLabel id:138 ~138>, #<GroupLabel id:139 ~139>, #<GroupLabel id:140 ~140>, #<ProjectLabel id:133 group189/group190/group191/project781~133>, and #<ProjectLabel id:134 group189/group190/group191/project781~134>6204 include_ancestor_groups: nil, include_descendant_groups: true, only_group_labels: true, search_term: nil, test: -> { expect(subject).to contain_exactly(subgroup_label1, subgroup_label2, sub_subgroup_label1, sub_subgroup_label2) }6205 is expected to contain exactly #<GroupLabel id:137 ~137>, #<GroupLabel id:138 ~138>, #<GroupLabel id:139 ~139>, and #<GroupLabel id:140 ~140>6206 include_ancestor_groups: true, include_descendant_groups: nil, only_group_labels: nil, search_term: nil, test: -> { expect(subject).to contain_exactly(group_label1, group_label2, subgroup_label1, subgroup_label2) }6207 is expected to contain exactly #<GroupLabel id:135 ~135>, #<GroupLabel id:136 ~136>, #<GroupLabel id:137 ~137>, and #<GroupLabel id:138 ~138>6208 include_ancestor_groups: true, include_descendant_groups: nil, only_group_labels: true, search_term: nil, test: -> { expect(subject).to contain_exactly(group_label1, group_label2, subgroup_label1, subgroup_label2) }6209 is expected to contain exactly #<GroupLabel id:135 ~135>, #<GroupLabel id:136 ~136>, #<GroupLabel id:137 ~137>, and #<GroupLabel id:138 ~138>6210 include_ancestor_groups: true, include_descendant_groups: true, only_group_labels: nil, search_term: nil, test: -> { expect(subject).to contain_exactly(group_label1, group_label2, subgroup_label1, subgroup_label2, sub_subgroup_label1, sub_subgroup_label2, label1, label2) }6211 is expected to contain exactly #<GroupLabel id:135 ~135>, #<GroupLabel id:136 ~136>, #<GroupLabel id:137 ~137>, #<GroupLabel id:138 ~138>, #<GroupLabel id:139 ~139>, #<GroupLabel id:140 ~140>, #<ProjectLabel id:133 group189/group190/group191/project781~133>, and #<ProjectLabel id:134 group189/group190/group191/project781~134>6212 include_ancestor_groups: true, include_descendant_groups: true, only_group_labels: true, search_term: nil, test: -> { expect(subject).to contain_exactly(group_label1, group_label2, subgroup_label1, subgroup_label2, sub_subgroup_label1, sub_subgroup_label2) }6213 is expected to contain exactly #<GroupLabel id:135 ~135>, #<GroupLabel id:136 ~136>, #<GroupLabel id:137 ~137>, #<GroupLabel id:138 ~138>, #<GroupLabel id:139 ~139>, and #<GroupLabel id:140 ~140>6214 include_ancestor_groups: nil, include_descendant_groups: nil, only_group_labels: nil, search_term: "new", test: -> { expect(subject).to contain_exactly(subgroup_label2) }6215 is expected to contain exactly #<GroupLabel id:138 ~138>6216 include_ancestor_groups: nil, include_descendant_groups: nil, only_group_labels: true, search_term: "new", test: -> { expect(subject).to contain_exactly(subgroup_label2) }6217 is expected to contain exactly #<GroupLabel id:138 ~138>6218 include_ancestor_groups: nil, include_descendant_groups: true, only_group_labels: nil, search_term: "new", test: -> { expect(subject).to contain_exactly(subgroup_label2, sub_subgroup_label2, label2) }6219 is expected to contain exactly #<GroupLabel id:138 ~138>, #<GroupLabel id:140 ~140>, and #<ProjectLabel id:134 group189/group190/group191/project781~134>6220 include_ancestor_groups: nil, include_descendant_groups: true, only_group_labels: true, search_term: "new", test: -> { expect(subject).to contain_exactly(subgroup_label2, sub_subgroup_label2) }6221 is expected to contain exactly #<GroupLabel id:138 ~138> and #<GroupLabel id:140 ~140>6222 include_ancestor_groups: true, include_descendant_groups: nil, only_group_labels: nil, search_term: "new", test: -> { expect(subject).to contain_exactly(group_label2, subgroup_label2) }6223 is expected to contain exactly #<GroupLabel id:136 ~136> and #<GroupLabel id:138 ~138>6224 include_ancestor_groups: true, include_descendant_groups: nil, only_group_labels: true, search_term: "new", test: -> { expect(subject).to contain_exactly(group_label2, subgroup_label2) }6225 is expected to contain exactly #<GroupLabel id:136 ~136> and #<GroupLabel id:138 ~138>6226 include_ancestor_groups: true, include_descendant_groups: true, only_group_labels: nil, search_term: "new", test: -> { expect(subject).to contain_exactly(group_label2, subgroup_label2, sub_subgroup_label2, label2) }6227 is expected to contain exactly #<GroupLabel id:136 ~136>, #<GroupLabel id:138 ~138>, #<GroupLabel id:140 ~140>, and #<ProjectLabel id:134 group189/group190/group191/project781~134>6228 include_ancestor_groups: true, include_descendant_groups: true, only_group_labels: true, search_term: "new", test: -> { expect(subject).to contain_exactly(group_label2, subgroup_label2, sub_subgroup_label2) }6229 is expected to contain exactly #<GroupLabel id:136 ~136>, #<GroupLabel id:138 ~138>, and #<GroupLabel id:140 ~140>6230Gitlab::SidekiqConfig::WorkerRouter6231 .queue_name_from_worker_name6232 worker: #<Class:0x00007f754d933ef0>, expected_name: "pages"6233 generates a valid queue name from worker name6234 worker: #<Class:0x00007f754d91bdc8>, expected_name: "pipeline_notification"6235 generates a valid queue name from worker name6236 worker: #<Class:0x00007f754d919d98>, expected_name: "post_receive"6237 generates a valid queue name from worker name6238 worker: #<Class:0x00007f754d90b630>, expected_name: "git:post_receive"6239 generates a valid queue name from worker name6240 worker: #<Class:0x00007f754d9093d0>, expected_name: "pipeline_hooks:pipeline_hooks"6241 generates a valid queue name from worker name6242 worker: #<Class:0x00007f754d9035e8>, expected_name: "jira_import_advance_stage"6243 generates a valid queue name from worker name6244 worker: #<Class:0x00007f754d901770>, expected_name: "importer:phabricator_import_import_tasks"6245 generates a valid queue name from worker name6246 .global6247 valid routing rules6248 routing_rules: [], expected_queue: "foo_bar"6249 routes the worker to the correct queue6250 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"6251 routes the worker to the correct queue6252 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", nil], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"6253 routes the worker to the correct queue6254 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", ""], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"6255 routes the worker to the correct queue6256 routing_rules: [["feature_category=feature_a|urgency=high", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"6257 routes the worker to the correct queue6258 routing_rules: [["feature_category=feature_b|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"6259 routes the worker to the correct queue6260 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_c"6261 routes the worker to the correct queue6262 routing_rules: [["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_a"6263 routes the worker to the correct queue6264 routing_rules: [["feature_category=feature_a", "queue_a"], ["feature_category=feature_a", "queue_b"], ["feature_category=feature_a", "queue_c"]], expected_queue: "queue_a"6265 routes the worker to the correct queue6266 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"], ["*", "default"]], expected_queue: "default"6267 routes the worker to the correct queue6268 routing_rules: [["*", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"6269 routes the worker to the correct queue6270 routing_rules: [["name=foo_bar", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"6271 routes the worker to the correct queue6272 invalid routing rules6273 invalid routing rules format6274 captures the error and falls back to an empty route6275 invalid predicate6276 captures the error and falls back to an empty route6277 #route6278 valid routing rules6279 routing_rules: [], expected_queue: "foo_bar"6280 routes the worker to the correct queue6281 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"6282 routes the worker to the correct queue6283 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", nil], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"6284 routes the worker to the correct queue6285 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", ""], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"6286 routes the worker to the correct queue6287 routing_rules: [["feature_category=feature_a|urgency=high", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"6288 routes the worker to the correct queue6289 routing_rules: [["feature_category=feature_b|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"6290 routes the worker to the correct queue6291 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_c"6292 routes the worker to the correct queue6293 routing_rules: [["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_a"6294 routes the worker to the correct queue6295 routing_rules: [["feature_category=feature_a", "queue_a"], ["feature_category=feature_a", "queue_b"], ["feature_category=feature_a", "queue_c"]], expected_queue: "queue_a"6296 routes the worker to the correct queue6297 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"], ["*", "default"]], expected_queue: "default"6298 routes the worker to the correct queue6299 routing_rules: [["*", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"6300 routes the worker to the correct queue6301 routing_rules: [["name=foo_bar", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"6302 routes the worker to the correct queue6303 invalid routing rules6304 raises an exception6305Packages::Conan::Metadatum6306 relationships6307 is expected to belong to package required: false6308 validations6309 is expected to validate that :package cannot be empty/falsy6310 is expected to validate that :package_username cannot be empty/falsy6311 is expected to validate that :package_channel cannot be empty/falsy6312 #package_username6313 is expected to allow :package_username to be ‹"my-package+username"›6314 is expected to allow :package_username to be ‹"my_package.username"›6315 is expected to allow :package_username to be ‹"_my-package.username123"›6316 is expected to allow :package_username to be ‹"my"›6317 is expected not to allow :package_username to be ‹"+my_package"›6318 is expected not to allow :package_username to be ‹".my_package"›6319 is expected not to allow :package_username to be ‹"-my_package"›6320 is expected not to allow :package_username to be ‹"m"›6321 is expected not to allow :package_username to be ‹"f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"›6322 is expected not to allow :package_username to be ‹"my/package"›6323 is expected not to allow :package_username to be ‹"my(package)"›6324 is expected not to allow :package_username to be ‹"my@package"›6325 #package_channel6326 is expected to allow :package_channel to be ‹"beta"›6327 is expected to allow :package_channel to be ‹"stable+1.0"›6328 is expected to allow :package_channel to be ‹"my"›6329 is expected to allow :package_channel to be ‹"my_channel.beta"›6330 is expected to allow :package_channel to be ‹"_my-channel.beta123"›6331 is expected not to allow :package_channel to be ‹"+my_channel"›6332 is expected not to allow :package_channel to be ‹".my_channel"›6333 is expected not to allow :package_channel to be ‹"-my_channel"›6334 is expected not to allow :package_channel to be ‹"m"›6335 is expected not to allow :package_channel to be ‹"f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"›6336 is expected not to allow :package_channel to be ‹"my/channel"›6337 is expected not to allow :package_channel to be ‹"my(channel)"›6338 is expected not to allow :package_channel to be ‹"my@channel"›6339 #username_channel_none_values6340 username: "username", channel: "channel", valid: true6341 is expected to eq true6342 username: "username", channel: "_", valid: false6343 is expected to eq false6344 username: "_", channel: "channel", valid: false6345 is expected to eq false6346 username: "_", channel: "_", valid: true6347 is expected to eq true6348 #conan_package_type6349 will not allow a package with a different package_type6350 #recipe6351 returns the recipe6352 #recipe_url6353 returns the recipe url6354 .package_username_from6355 returns the username formatted package path6356 .full_path_from6357 returns the username formatted package path6358 .validate_username_and_channel6359 username: "username", channel: "channel", error_field: nil6360 does not yield the block when there is no error6361 username: "username", channel: "_", error_field: :channel6362 yields the block when there is an error6363 username: "_", channel: "channel", error_field: :username6364 yields the block when there is an error6365 username: "_", channel: "_", error_field: nil6366 does not yield the block when there is no error6367Clusters::Providers::Gcp6368 is expected to belong to cluster required: false6369 is expected to validate that :zone cannot be empty/falsy6370 state_machine6371 when any => [:created]6372 nullifies API credentials6373 when any => [:creating]6374 calls #assign_operation_id on the provider6375 when any => [:errored]6376 calls #nullify_credentials on the provider6377 sets a status reason6378 when status_reason is nil6379 does not set status_reason6380 #on_creation?6381 status: :scheduled, result: true6382 is expected to eq true6383 status: :creating, result: true6384 is expected to eq true6385 status: :created, result: false6386 is expected to eq false6387 status: :errored, result: false6388 is expected to eq false6389 default values6390 has default value6391 validation6392 when validates gcp_project_id6393 when gcp_project_id is shorter than 16394 is expected to be falsey6395 when gcp_project_id is longer than 636396 is expected to be falsey6397 when gcp_project_id includes invalid character6398 is expected to be falsey6399 when gcp_project_id is valid6400 is expected to be truthy6401 when validates num_nodes6402 when num_nodes is string6403 is expected to be falsey6404 when num_nodes is nil6405 is expected to be falsey6406 when num_nodes is smaller than 16407 is expected to be falsey6408 when num_nodes is valid6409 is expected to be truthy6410 #has_rbac_enabled?6411 when cluster is legacy_abac6412 is expected to be falsey6413 when cluster is not legacy_abac6414 is expected to be truthy6415 #knative_pre_installed?6416 when cluster is cloud_run6417 is expected to be falsey6418 when cluster is not cloud_run6419 is expected to be truthy6420 #nullify_credentials6421 removes access_token and operation_id6422 #assign_operation_id6423 sets operation_id6424ContainerRegistry::Migration::ObserverWorker6425 #perform6426 when the migration feature flag is disabled6427 does nothing6428 when the migration is enabled6429 logs all the counts6430 with load balancing enabled6431 uses the replica6432Gitlab::RepoPath6433 .parse6434 returns the default type for non existent paths6435 a repository storage path6436 parses a full project repository path6437 parses a full project wiki repository path6438 parses a personal snippet repository path6439 parses a project snippet repository path6440 a relative path6441 parses a relative repository path6442 parses a relative wiki path6443 parses a relative path starting with /6444 of a redirected project6445 parses a relative repository path6446 parses a relative wiki path6447 parses a relative path starting with /6448 parses a redirected project snippet repository path6449 .find_project6450 when finding a project by its canonical path6451 when the cases match6452 returns the project6453 when the cases do not match6454 returns the project6455 when finding a project via a redirect6456 returns the project6457 .find_snippet6458 extracts path and id from personal snippet route6459 extracts path and id from project snippet route6460 returns nil for invalid snippet paths6461 returns nil for snippets not associated with the project6462 when finding a project snippet via a redirect6463 returns the project snippet6464Packages::Debian::GroupComponentFile6465 behaves like Debian Component File6466 relationships6467 with stubbed uploader6468 is expected to belong to component class_name => Packages::Debian::GroupComponent required: false inverse_of => files6469 with packages file_type6470 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture required: false inverse_of => files6471 with :sources file_type6472 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture inverse_of => files optional: true6473 validations6474 #component6475 is expected to validate that :component cannot be empty/falsy6476 #architecture6477 with packages file_type6478 is expected to validate that :architecture cannot be empty/falsy6479 with :sources file_type6480 is expected to validate that :architecture is empty/falsy6481 #file_type6482 is expected to validate that :file_type cannot be empty/falsy6483 is expected to allow :file_type to be ‹:packages›6484 #compression_type6485 is expected not to validate that :compression_type cannot be empty/falsy6486 is expected to allow :compression_type to be ‹nil›6487 is expected to allow :compression_type to be ‹:gz›6488 #file6489 the uploader api6490 is expected to respond to #store_dir6491 is expected to respond to #cache_dir6492 is expected to respond to #work_dir6493 #file_store6494 is expected to validate that :file_store cannot be empty/falsy6495 #file_md56496 is expected to validate that :file_md5 cannot be empty/falsy6497 #file_sha2566498 is expected to validate that :file_sha256 cannot be empty/falsy6499 scopes6500 .with_container6501 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2023-04-12 14:58:06.857138578 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6502 .with_codename_or_suite6503 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2023-04-12 14:58:06.857138578 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6504 .with_component_name6505 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 3, created_at: "2023-04-12 14:58:06.819588702 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6506 .with_file_type6507 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 8, created_at: "2023-04-12 14:58:06.867347000 +0000", upda...1, file: "Sources", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6508 .with_architecture6509 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-04-12 14:58:06.809930613 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6510 .with_architecture_name6511 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-04-12 14:58:06.809930613 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6512 .with_compression_type6513 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 4, created_at: "2023-04-12 14:58:06.828981531 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6514 .with_file_sha2566515 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-04-12 14:58:06.848004689 +0000", upda...ion_type: nil, file_store: 1, file: "Packages", file_md5: "12345abcde", file_sha256: "other_sha256">6516 .updated_before6517 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 10, created_at: "2023-04-12 14:58:08.132586329 +0000", upd..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::GroupComponentFile id: 11, created_at: "2023-04-12 14:58:08.141923138 +0000", upd..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6518 callbacks6519 updates metadata columns6520 #relative_path6521 with a Packages file_type6522 is expected to eq "sit1/binary-adipisci1/Packages"6523 with a Source file_type6524 is expected to eq "sit1/source/Sources"6525 with a DI Packages file_type6526 is expected to eq "sit1/debian-installer/binary-adipisci1/Packages"6527 with an xz compression_type6528 is expected to eq "sit1/binary-adipisci1/Packages.xz"6529 #empty?6530 with a non-empty component6531 is expected to be falsey6532 with an empty component6533 is expected to be truthy6534Metrics::Dashboard::AnnotationPolicy6535 rules6536 environments annotation6537 behaves like metrics dashboard annotation policy6538 when guest6539 is expected to be disallowed :read_metrics_dashboard_annotation6540 is expected to be disallowed :admin_metrics_dashboard_annotation6541 when reporter6542 is expected to be allowed :read_metrics_dashboard_annotation6543 is expected to be disallowed :admin_metrics_dashboard_annotation6544 when developer6545 is expected to be allowed :read_metrics_dashboard_annotation6546 is expected to be allowed :admin_metrics_dashboard_annotation6547 when maintainer6548 is expected to be allowed :read_metrics_dashboard_annotation6549 is expected to be allowed :admin_metrics_dashboard_annotation6550 cluster annotation6551 behaves like metrics dashboard annotation policy6552 when guest6553 is expected to be disallowed :read_metrics_dashboard_annotation6554 is expected to be disallowed :admin_metrics_dashboard_annotation6555 when reporter6556 is expected to be allowed :read_metrics_dashboard_annotation6557 is expected to be disallowed :admin_metrics_dashboard_annotation6558 when developer6559 is expected to be allowed :read_metrics_dashboard_annotation6560 is expected to be allowed :admin_metrics_dashboard_annotation6561 when maintainer6562 is expected to be allowed :read_metrics_dashboard_annotation6563 is expected to be allowed :admin_metrics_dashboard_annotation6564JiraImport::StartImportService6565 when an error is returned from the project validation6566 behaves like responds with error6567 returns error6568 when project validation is ok6569 when Jira project key is not provided6570 behaves like responds with error6571 returns error6572 when correct data provided6573 when import is already running6574 behaves like responds with error6575 returns error6576 when an error is raised while scheduling import6577 saves the error message6578 behaves like responds with error6579 returns error6580 when everything is ok6581 with complete mapping6582 returns success response6583 schedules Jira import6584 creates Jira import data6585 creates Jira import label6586 creates Jira label title with correct number6587 when mapping is nil6588 returns success response6589 when no mapping value is complete6590 returns success response6591 when multiple Jira imports for same Jira project6592 creates Jira label title with correct number6593PersonalSnippetPolicy6594 public snippet6595 no user6596 is expected to be disallowed :update_snippet and :admin_snippet6597 regular user6598 is expected to be disallowed :update_snippet and :admin_snippet6599 author6600 is expected to be allowed :update_snippet and :admin_snippet6601 behaves like admin access with admin mode6602 admin user6603 is expected to be allowed :update_snippet and :admin_snippet6604 internal snippet6605 no user6606 is expected to be disallowed :update_snippet and :admin_snippet6607 regular user6608 is expected to be disallowed :update_snippet and :admin_snippet6609 external user6610 is expected to be disallowed :update_snippet and :admin_snippet6611 snippet author6612 is expected to be allowed :update_snippet and :admin_snippet6613 behaves like admin access with admin mode6614 admin user6615 is expected to be allowed :update_snippet and :admin_snippet6616 private snippet6617 no user6618 is expected to be disallowed :update_snippet and :admin_snippet6619 regular user6620 is expected to be disallowed :update_snippet and :admin_snippet6621 external user6622 is expected to be disallowed :update_snippet and :admin_snippet6623 snippet author6624 is expected to be allowed :update_snippet and :admin_snippet6625 behaves like admin access with admin mode6626 admin user6627 is expected to be allowed :update_snippet and :admin_snippet6628Gitlab::Suggestions::CommitMessage6629 #message6630 suggestion_set: suggestion_set_same_project6631 when a custom commit message is not specified6632 and is nil6633 uses the default commit message6634 and is an empty string6635 uses the default commit message6636 when a custom commit message is specified for forked project6637 uses the default commit message6638 when a custom commit message is specified6639 shows the custom commit message6640 is specified and includes all placeholders6641 generates a custom commit message6642 when a custom commit message is specified for forked project6643 uses the target project commit message6644 suggestion_set: suggestion_set_forked_project6645 when a custom commit message is not specified6646 and is nil6647 uses the default commit message6648 and is an empty string6649 uses the default commit message6650 when a custom commit message is specified for forked project6651 uses the default commit message6652 when a custom commit message is specified6653 shows the custom commit message6654 is specified and includes all placeholders6655 generates a custom commit message6656 when a custom commit message is specified for forked project6657 uses the target project commit message6658Resolvers::LabelsResolver6659 is expected to have nullable GraphQL type LabelConnection6660 #resolve6661 with unauthorized user6662 returns no labels6663 with authorized user6664 returns no labels6665 without parent6666 returns no labels6667 association preloading6668 when the preload_max_access_levels_for_labels_finder FF is on6669 prevents N+1 queries6670 when the preload_max_access_levels_for_labels_finder FF is off6671 creates N+1 queries6672 with a parent project6673 include_ancestor_groups: nil, search_term: nil, expected_labels: -> { [label1, label2, subgroup_label1, subgroup_label2] }6674 is expected to contain exactly #<ProjectLabel id:159 group197/group198/project822~159>, #<ProjectLabel id:160 group197/group198/project822~160>, #<GroupLabel id:163 ~163>, and #<GroupLabel id:164 ~164>6675 include_ancestor_groups: false, search_term: nil, expected_labels: -> { [label1, label2, subgroup_label1, subgroup_label2] }6676 is expected to contain exactly #<ProjectLabel id:159 group197/group198/project822~159>, #<ProjectLabel id:160 group197/group198/project822~160>, #<GroupLabel id:163 ~163>, and #<GroupLabel id:164 ~164>6677 include_ancestor_groups: true, search_term: nil, expected_labels: -> { [label1, label2, group_label1, group_label2, subgroup_label1, subgroup_label2] }6678 is expected to contain exactly #<ProjectLabel id:159 group197/group198/project822~159>, #<ProjectLabel id:160 group197/group198/project822~160>, #<GroupLabel id:161 ~161>, #<GroupLabel id:162 ~162>, #<GroupLabel id:163 ~163>, and #<GroupLabel id:164 ~164>6679 include_ancestor_groups: nil, search_term: "new", expected_labels: -> { [label2, subgroup_label2] }6680 is expected to contain exactly #<ProjectLabel id:160 group197/group198/project822~160> and #<GroupLabel id:164 ~164>6681 include_ancestor_groups: false, search_term: "new", expected_labels: -> { [label2, subgroup_label2] }6682 is expected to contain exactly #<ProjectLabel id:160 group197/group198/project822~160> and #<GroupLabel id:164 ~164>6683 include_ancestor_groups: true, search_term: "new", expected_labels: -> { [label2, group_label2, subgroup_label2] }6684 is expected to contain exactly #<ProjectLabel id:160 group197/group198/project822~160>, #<GroupLabel id:162 ~162>, and #<GroupLabel id:164 ~164>6685PersonalAccessTokens::CreateService6686 #execute6687 when current_user is an administrator6688 when admin mode is enabled6689 behaves like a successfully created token6690 creates personal access token record6691 logs the event6692 notifies the user6693 when admin mode is disabled6694 behaves like an unsuccessfully created token6695 is expected to equal false6696 is expected to eq "Not permitted to create"6697 is expected to be nil6698 when current_user is not an administrator6699 target_user is not the same as current_user6700 behaves like an unsuccessfully created token6701 is expected to equal false6702 is expected to eq "Not permitted to create"6703 is expected to be nil6704 target_user is same as current_user6705 behaves like a successfully created token6706 creates personal access token record6707 logs the event6708 notifies the user6709 when invalid scope6710 when concatenate_errors: true6711 is expected to be an instance of String6712 when concatenate_errors: false6713 is expected to be an instance of Array6714Resolvers::GroupMilestonesResolver6715 #resolve6716 calls MilestonesFinder#execute6717 without parameters6718 calls MilestonesFinder to retrieve all milestones6719 with parameters6720 calls MilestonesFinder with correct parameters6721 understands the timeframe argument6722 by ids6723 calls MilestonesFinder with correct parameters6724 by sort6725 calls MilestonesFinder with correct parameters6726 uses offset-pagination when sorting by expired_last_due_date_asc6727 uses offset-pagination when sorting by expired_last_due_date_desc6728 by timeframe6729 when start_date and end_date are present6730 when start date is after end_date6731 generates an error6732 when only start_date is present6733 generates an error6734 when only end_date is present6735 generates an error6736 when including descendant milestones in a public group6737 finds milestones only in accessible projects and groups6738 include_descendants and include_ancestors6739 when including neither ancestor or descendant milestones in a public group6740 finds milestones only in accessible projects and groups6741 when including descendant milestones in a public group6742 finds milestones only in accessible projects and groups6743 when including ancestor milestones in a public group6744 finds milestones only in accessible projects and groups6745 when including both ancestor or descendant milestones in a public group6746 finds milestones only in accessible projects and groups6747Gitlab::Checks::SnippetCheck6748 #validate!6749 does not raise any error6750 trying to delete the branch6751 behaves like raises and logs error6752 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."6753 trying to create the branch6754 behaves like raises and logs error6755 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."6756 when branch is the same as the default branch6757 allows the operation6758 when snippet has an empty repo6759 allows the operation6760 when default_branch is nil6761 behaves like raises and logs error6762 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."6763Gitlab::Ci::Status::External::Common6764 #label6765 returns description6766 when description is nil6767 uses core status label6768 when description is empty string6769 uses core status label6770 #has_action?6771 is expected not to have action6772 #has_details?6773 when user has access to read commit status6774 is expected to have details6775 when user does not have access to read commit status6776 is expected not to have details6777 #details_path6778 links to the external target URL6779Network::Graph6780 #initialize6781 has initialized6782 when disable_network_graph_note_counts is disabled6783 initializes the notes hash6784 #commits6785 returns a list of commits6786 sorts commits by commit date (descending)6787 sorts children before parents for commits with the same timestamp6788Packages::Conan::SearchService6789 #execute6790 with wildcard6791 makes a wildcard query6792 with only wildcard6793 returns empty6794 with no wildcard6795 makes a search using the beginning of the recipe6796 with full recipe match6797 makes an exact search6798 with malicious query6799 returns empty6800Spammable6801 Associations6802 is expected to have one user_agent_detail dependent => destroy6803 ClassMethods6804 returns correct attr_spammable6805 InstanceMethods6806 is invalid if spam6807 #check_for_spam?6808 returns true for public project6809 returns false for other visibility levels6810 #invalidate_if_spam6811 when the model is spam6812 has an error related to spam on the model6813 when the model needs recaptcha6814 has an error related to spam on the model6815 if the model is spam and also needs recaptcha6816 has an error related to spam on the model6817 when the model is not spam nor needs recaptcha6818 returns no error6819 if recaptcha is not enabled and the model needs recaptcha6820 has no errors6821 spam flags6822 #spam!6823 adds only `spam` flag6824 #needs_recaptcha!6825 adds `needs_recaptcha` flag6826 #render_recaptcha?6827 when recaptcha is not enabled6828 returns false6829 when recaptcha is enabled6830 when there are two or more errors6831 returns false6832 when there are less than two errors6833 when spammable does not need recaptcha6834 returns false6835 when spammable needs recaptcha6836 returns false6837 #clear_spam_flags!6838 clears spam and recaptcha flags6839 #submittable_as_spam_by?6840 tests if the user can submit spam6841 #allow_possible_spam?6842 when the `allow_possible_spam` application setting is turned off6843 is expected to eq false6844 when the `allow_possible_spam` application setting is turned on6845 is expected to eq true6846Clusters::AgentTokens::RevokeService6847 # order random6848 #execute6849 when user is authorized6850 when user revokes agent token6851 succeeds6852 creates an activity event6853 when there is a validation failure6854 fails without raising an error6855 does not create an activity event6856 when user is not authorized6857 when user attempts to revoke agent token6858 fails6859Gitlab::Usage::Metrics::Instrumentations::InProductMarketingEmailCtaClickedMetric6860 # order random6861 options_key: :series, valid_value: 1, invalid_value: 56862 raises an exception if option is not present6863 raises an exception if option has invalid value6864 doesn't raise exceptions if option has valid value6865 options_key: :track, valid_value: "admin_verify", invalid_value: "invite_team"6866 raises an exception if option is not present6867 raises an exception if option has invalid value6868 doesn't raise exceptions if option has valid value6869 behaves like a correct instrumented metric value and query6870 behaves like a correct instrumented metric value6871 has correct value6872 behaves like a correct instrumented metric query6873 has correct generate query6874Banzai::Pipeline::PlainMarkdownPipeline6875 backslash escapes6876 converts all escapable punctuation to literals6877 ensure we handle all the GitLab reference characters6878 does not convert non-reference/latex punctuation to spans6879 does not convert other characters to literals6880 backslash escapes are untouched in code blocks, code spans, autolinks, or raw HTML6881 markdown: "`` \\@\\! ``", expected: "<code>\\@\\!</code>"6882 is expected to include "<code>\\@\\!</code>"6883 markdown: " \\@\\!", expected: "<code>\\@\\!\n</code>"6884 is expected to include "<code>\\@\\!\n</code>"6885 markdown: "~~~\n\\@\\!\n~~~", expected: "<code>\\@\\!\n</code>"6886 is expected to include "<code>\\@\\!\n</code>"6887 markdown: "$1+\\$2$", expected: "<code data-math-style=\"inline\">1+\\$2</code>"6888 is expected to include "<code data-math-style=\"inline\">1+\\$2</code>"6889 markdown: "<http://example.com?find=\\@>", expected: "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6890 is expected to include "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6891 markdown: "<a href=\"/bar\\@)\">", expected: "<a href=\"/bar%5C@)\">"6892 is expected to include "<a href=\"/bar%5C@)\">"6893 work in all other contexts, including URLs and link titles, link references, and info strings in fenced code blocks6894 renders correct html6895 markdown: "[foo](/bar\\@ \"\\@title\")", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6896 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6897 markdown: "[foo]\n\n[foo]: /bar\\@ \"\\@title\"", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6898 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6899Packages::UpdatePackageFileService6900 #execute6901 with object storage disabled6902 behaves like updating package file with valid parameters6903 with both parameters set6904 updates the package file accordingly6905 with only file_name set6906 updates the package file accordingly6907 with only package_id set6908 updates the package file accordingly6909 behaves like not updating package with invalid parameters6910 with blank parameters6911 raise an argument error6912 with non persisted package file6913 raise an argument error6914 with object storage enabled6915 behaves like updating package file with valid parameters6916 with both parameters set6917 updates the package file accordingly6918 with only file_name set6919 updates the package file accordingly6920 with only package_id set6921 updates the package file accordingly6922 behaves like not updating package with invalid parameters6923 with blank parameters6924 raise an argument error6925 with non persisted package file6926 raise an argument error6927Boards::Issues::CreateService6928 #execute6929 delegates the create proceedings to Issues::CreateService6930 creates a new issue6931 adds the label of the list to the issue6932Gitlab::Ci::Config::Extendable::Entry6933 .new6934 when entry key is not included in the context hash6935 raises error6936 #value6937 reads a hash value from the context6938 #extensible?6939 when entry has inheritance defined6940 is extensible6941 when entry does not have inheritance specified6942 is not extensible6943 when entry value is not a hash6944 is not extensible6945 #extends_keys6946 when entry is extensible6947 returns symbolized extends key value6948 when entry is not extensible6949 returns nil6950 #ancestors6951 returns ancestors keys6952 #base_hashes!6953 when base hash is not extensible6954 returns unchanged base hashes6955 when base hash is extensible too6956 extends the base hashes first6957 mutates original context6958 #extend!6959 when extending a non-hash value6960 raises an error6961 when extending unknown key6962 raises an error6963 when extending a hash correctly6964 returns extended part of the hash6965 mutates original context6966 when extending multiple hashes correctly6967 returns extended part of the hash6968 mutates original context6969 when hash is not extensible6970 returns original key value6971 does not mutate orignal context6972 when circular depenency gets detected6973 raises an error6974 when nesting level is too deep6975 raises an error6976Mutations::Issues::SetLocked6977 is expected to require graphql authorizations :update_issue6978 #resolve6979 behaves like permission level for issue mutation is correctly verified6980 when the user is not a project member6981 behaves like when the user does not have access to the resource6982 raises an error6983 even if assigned to the issue6984 does not modify issue6985 even if author of the issue6986 does not modify issue6987 when the user is a project member6988 with guest role6989 behaves like when the user does not have access to the resource6990 raises an error6991 even if assigned to the issue6992 does not modify issue6993 even if author of the issue6994 does not modify issue6995 when the user can update the issue6996 returns the issue as discussion locked6997 when passing locked as false6998 unlocks the discussion6999Ci::JobArtifacts::ExpireProjectBuildArtifactsService7000 #execute7001 with job containing erasable artifacts7002 unlocks erasable job artifacts7003 expires erasable job artifacts7004 with job containing trace artifacts7005 does not unlock trace artifacts7006 does not expire trace artifacts7007 with job from artifact locked pipeline7008 does not unlock locked artifacts7009 does not expire locked artifacts7010 with job containing both erasable and trace artifacts7011 unlocks erasable artifacts7012 expires erasable artifacts7013 does not unlock trace artifacts7014 does not expire trace artifacts7015 with multiple pipelines7016 unlocks artifacts across pipelines7017 expires artifacts across pipelines7018 with artifacts belonging to another project7019 does not unlock erasable artifacts in other projects7020 does not expire erasable artifacts in other projects7021Gitlab::Ci::Variables::Builder::Group7022 #secret_variables7023 when the ref is not protected7024 contains only the CI variables7025 when the ref is protected7026 contains all the variables7027 when environment name is specified7028 when environment scope is exactly matched7029 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f75587bfd98 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>7030 when environment scope is matched by wildcard7031 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f754ea83e30 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>7032 when environment scope does not match7033 is expected not to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7567a741d8 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>7034 when environment scope has _7035 does not treat it as wildcard7036 when environment name contains underscore7037 matches literally for _7038 when environment scope has %7039 does not treat it as wildcard7040 when environment name contains a percent7041 matches literally for _7042 when variables with the same name have different environment scopes7043 orders the variables from least to most matched7044 when group has children7045 traversal queries7046 recursive7047 returns all variables belonging to the group and parent groups7048 linear7049 returns all variables belonging to the group and parent groups7050Gitlab::Metrics::Samplers::ActionCableSampler7051 behaves like metrics sampler7052 when sampling interval is passed explicitly7053 is expected to eq 427054 when sampling interval is passed through the environment7055 is expected to eq 427056 when no sampling interval is passed anywhere7057 uses the hardcoded default7058 #start7059 calls the sample method on the sampler thread7060 with warmup set to true7061 calls the sample method first on the caller thread7062 #safe_sample7063 calls #sample once7064 when sampling fails with error7065 recovers from errors7066 with logger7067 logs errors7068 #sample7069 includes active connections7070 includes minimum worker pool size7071 includes maximum worker pool size7072 includes current worker pool size7073 includes largest worker pool size7074 includes worker pool completed task count7075 includes worker pool pending task count7076Gitlab::PhabricatorImport::BaseWorker7077 .schedule7078 schedules the job7079 counts the scheduled job7080 #perform7081 does not break for a non-existing project7082 does not do anything when the import is not in progress7083 calls import for the project7084 marks the project as imported if there was only one job running7085 does not mark the job as finished when there are more scheduled jobs7086 decrements the job counter7087Gitlab::Ci::Pipeline::Expression::Lexer7088 #tokens7089 returns single value7090 does ignore whitespace characters7091 returns multiple values of the same token7092 returns multiple values with different tokens7093 returns tokens and operators7094 limits statement to specified amount of tokens7095 raises syntax error in case of finding unknown tokens7096 with complex expressions7097 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]7098 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]7099 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]7100 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]7101 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]7102 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]7103 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]7104 is expected to eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]7105 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]7106 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]7107 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]7108 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]7109 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]7110 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]7111 expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]7112 is expected to eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]7113 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]7114 is expected to eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]7115 with parentheses are used7116 expression: "($PRESENT_VARIABLE =~ /my var/) && $EMPTY_VARIABLE =~ /nope/", tokens: ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]7117 is expected to eq ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]7118 expression: "$PRESENT_VARIABLE =~ /my var/ || ($EMPTY_VARIABLE =~ /nope/)", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]7119 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]7120 expression: "($PRESENT_VARIABLE && (null || $EMPTY_VARIABLE == \"\"))", tokens: ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]7121 is expected to eq ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]7122 #lexemes7123 returns an array of syntax lexemes7124ContainerRepositoriesSerializer7125 #represent7126 has basic attributes7127 #represent_read_only7128 does not include destroy_path7129 #with_pagination7130 creates a paginated serializer7131 when multiple ContainerRepository objects are serialized7132 serializes appropriate number of objects7133 appends relevant headers7134Gitlab::Kubernetes::Helm::API7135 #initialize7136 creates a namespace object7137 #uninstall7138 ensures the namespace exists before creating the POD7139 removes an existing pod before installing7140 with a ConfigMap7141 creates a ConfigMap on kubeclient7142 config map already exists7143 updates the config map7144 #install7145 ensures the namespace exists before creating the POD7146 removes an existing pod before installing7147 with a ConfigMap7148 creates a ConfigMap on kubeclient7149 config map already exists7150 updates the config map7151 without a service account7152 does not create a service account on kubeclient7153 with a service account7154 rbac-enabled cluster7155 service account does not exist7156 creates a service account, followed the cluster role binding on kubeclient7157 service account already exists7158 updates the service account, followed by creating the cluster role binding7159 a non-404 error is thrown7160 raises an error7161 legacy abac cluster7162 does not create a service account on kubeclient7163 #status7164 fetches POD phase from kubernetes cluster7165 #log7166 fetches POD phase from kubernetes cluster7167 #delete_pod!7168 deletes the POD from kubernetes cluster7169 when the resource being deleted does not exist7170 catches the error7171 #get_config_map7172 ensures the namespace exists before retrieving the config map7173 gets the config map on kubeclient7174RuboCop::Cop::RSpec::ExpectGitlabTracking7175 # order random7176 bad: expect(Gitlab::Tracking).not_to have_received(:event).with("EventCategory", "event_action")7177 registers an offense7178 good: expect_no_snowplow_event7179 does not register an offense7180 bad: expect(Gitlab::Tracking).not_to receive(:event).with("EventCategory", "event_action")7181 registers an offense7182 good: expect_snowplow_event(category: "EventCategory", action: "event_action")7183 does not register an offense7184 bad: expect(Gitlab::Tracking).to receive(:event).with("EventCategory", "event_action", label: "label", property: "property")7185 registers an offense7186 bad: expect(Gitlab::Tracking).to have_received(:event).with("EventCategory", "event_action")7187 registers an offense7188 bad: expect(Gitlab::Tracking).to receive(:event)7189 registers an offense7190 good: expect_snowplow_event(category: nil, action: nil)7191 does not register an offense7192 bad: expect(Gitlab::Tracking).to_not have_received(:event).with("EventCategory", "event_action")7193 registers an offense7194 bad: allow(Gitlab::Tracking).to receive(:event).and_call_original7195 registers an offense7196 good: expect_snowplow_event(category: "EventCategory", action: "event_action", label: "label", property: "property")7197 does not register an offense7198 bad: expect(Gitlab::Tracking).to_not receive(:event).with("EventCategory", "event_action")7199 registers an offense7200 bad: expect(Gitlab::Tracking).to_not receive(:event)7201 registers an offense7202 bad: expect(Gitlab::Tracking).not_to receive(:event)7203 registers an offense7204LfsObjectUploader7205 behaves like builds correct paths7206 #store_dir7207 behaves like matches the method pattern7208 is expected to match /\h{2}\/\h{2}/7209 #cache_dir7210 behaves like matches the method pattern7211 is expected to match /\/lfs-objects\/tmp\/cache/7212 #work_dir7213 behaves like matches the method pattern7214 is expected to match /\/lfs-objects\/tmp\/work/7215 #upload_path7216 behaves like matches the method pattern7217 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7218 #relative_path7219 is relative (PENDING: Path not set, skipping.)7220 .absolute_path7221 behaves like matches the method pattern7222 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7223 .base_dir7224 behaves like matches the method pattern7225 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7226 path traversal exploits7227 throws an exception7228 object store is REMOTE7229 behaves like builds correct paths7230 #store_dir7231 behaves like matches the method pattern7232 is expected to match /\h{2}\/\h{2}/7233 #cache_dir7234 behaves like matches the method pattern7235 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7236 #work_dir7237 behaves like matches the method pattern7238 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7239 #upload_path7240 behaves like matches the method pattern7241 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7242 #relative_path7243 is relative (PENDING: Path not set, skipping.)7244 .absolute_path7245 behaves like matches the method pattern7246 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7247 .base_dir7248 behaves like matches the method pattern7249 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7250 path traversal exploits7251 throws an exception7252 remote file7253 with object storage enabled7254 can store file remotely7255Gitlab::Ci::Badge::Coverage::Report7256 #entity7257 describes a coverage7258 #metadata7259 returns correct metadata7260 #template7261 returns correct template7262 #status7263 with no job specified7264 returns the most recent successful pipeline coverage value7265 and no successful pipelines7266 returns nil7267 with a blank job name7268 returns the latest successful pipeline coverage value7269 with an unmatching job name specified7270 returns nil7271 with a matching job name specified7272 returns the pipeline coverage value7273 with a more recent running pipeline7274 returns the running pipeline coverage value7275 with a more recent failed pipeline7276 returns the failed pipeline coverage value7277StuckExportJobsWorker7278 with started export status7279 behaves like project export job detection7280 when the job has completed7281 when the export status was already updated7282 does not mark the export as failed7283 when the export status was not updated7284 marks the project as failed7285 when the job is not in queue and db record in queued state7286 marks the project as failed7287 when the job is running in Sidekiq7288 does not mark the project export as failed7289IssueAssignee7290 associations7291 is expected to belong to issue class_name => Issue required: false7292 is expected to belong to assignee class_name => User required: false7293 validations7294 is expected to validate that :assignee is case-sensitively unique within the scope of :issue_id7295 scopes7296 in_projects7297 returns issue assignees for given project7298 on_issues7299 returns issue assignees for given issues7300LfsFileLock7301 is expected to belong to project required: false7302 is expected to belong to user required: false7303 is expected to validate that :project_id cannot be empty/falsy7304 is expected to validate that :user_id cannot be empty/falsy7305 is expected to validate that :path cannot be empty/falsy7306 #can_be_unlocked_by?7307 when it's forced7308 can be unlocked by the author7309 can be unlocked by a maintainer7310 can't be unlocked by other user7311 when it isn't forced7312 can be unlocked by the author7313 can't be unlocked by a maintainer7314 can't be unlocked by other user7315Preloaders::ProjectPolicyPreloader7316 # order random7317 avoids N+1 queries when authorizing a list of projects7318Resolvers::Ci::GroupRunnersResolver7319 #resolve7320 when user cannot see runners7321 returns no runners7322 with user as group owner7323 returns all the runners7324 with membership direct7325 returns only direct runners7326 with obj set to nil7327 raises an error7328 with obj not set to group7329 raises an error7330 Allowed query arguments7331 calls RunnersFinder with expected arguments7332BlobViewer::Readme7333 #render_error7334 when there is no wiki7335 returns :no_wiki7336 when there is an external wiki7337 returns nil7338 when there is a local wiki7339 when the wiki is empty7340 returns :no_wiki7341 when the wiki is not empty7342 returns nil7343Gitlab::Metrics::Samplers::RubySampler7344 behaves like metrics sampler7345 when sampling interval is passed explicitly7346 is expected to eq 427347 when sampling interval is passed through the environment7348 is expected to eq 427349 when no sampling interval is passed anywhere7350 uses the hardcoded default7351 #start7352 calls the sample method on the sampler thread7353 with warmup set to true7354 calls the sample method first on the caller thread7355 #safe_sample7356 calls #sample once7357 when sampling fails with error7358 recovers from errors7359 with logger7360 logs errors7361 #initialize7362 sets process_start_time_seconds7363 when not setting a prefix7364 does not prepend metrics with that prefix7365 when using custom prefix7366 prepends metrics with that prefix7367 #sample7368 adds a metric containing the process total resident memory bytes7369 adds a metric containing the process anonymous resident memory bytes7370 adds a metric containing the process file backed resident memory bytes7371 adds a metric containing the process unique and proportional memory bytes7372 adds a metric containing the amount of open file descriptors7373 adds a metric containing the process total cpu time7374 adds a metric containing the process max file descriptors7375 clears any GC profiles7376 when USS+PSS sampling is disabled via environment7377 does not sample USS or PSS7378 #sample_gc7379 re-enables GC::Profiler if needed7380 observes GC cycles time7381 adds a metric containing garbage collection statistics7382 adds a heap fragmentation metric7383Namespaces::ProjectsFinder7384 #execute7385 without a namespace7386 returns an empty array7387 with a namespace7388 returns the project for the namespace7389 when include_subgroups is provided7390 returns all projects for the namespace7391 when ids are provided7392 returns all projects for the ids7393 when ids are provided7394 returns all projects for the ids7395 when with_issues_enabled is true7396 returns the projects that have issues enabled7397 when with_merge_requests_enabled is true7398 returns the projects that have merge requests enabled7399 when sort is similarity7400 returns projects by similarity7401 when search parameter is missing7402 returns all projects7403 when sort parameter is missing7404 returns matching projects7405 when sort parameter is ACTIVITY_DESC7406 returns projects sorted by latest activity7407Packages::Rpm::RepositoryFile7408 # order random7409 behaves like having unique enum values7410 has unique values in "status"7411 .has_oversized_filelists?7412 when has oversized filelists7413 is expected to equal true7414 when filelists.xml is not oversized7415 is expected to be falsey7416 when there is no filelists.xml7417 is expected to be falsey7418 with status scopes7419 .with_status7420 is expected to contain exactly #<Packages::Rpm::RepositoryFile id: 3, created_at: "2023-04-12 15:00:24.289651423 +0000", updated_at:...d0b3306c4fd0696dcad506f5273...", file_name: "364c77dd49e8f814d56e621d0b3306c4fd0696dcad506f5273...">7421 when updating project statistics7422 when the package file has an explicit size7423 behaves like UpdateProjectStatistics7424 is expected to be a new record7425 when the package file does not have a size7426 behaves like UpdateProjectStatistics7427 is expected to be a new record7428 relationships7429 is expected to belong to project required: false7430 validations7431 is expected to validate that :project cannot be empty/falsy7432BulkImports::Projects::Pipelines::CiPipelinesPipeline7433 #run7434 imports Ci::Pipeline into destination project7435 notes7436 imports pipeline with notes7437 stages7438 imports pipeline with notes7439 external pull request7440 imports pipeline with external pull request7441 merge request7442 imports pipeline with external pull request7443Gitlab::Ci::Status::Processable::WaitingForResource7444 fabricates status with correct details7445 when resource is retained by a build7446 fabricates status with correct details7447 #illustration7448 is expected to include :image, :size, and :title7449 .matches?7450 when processable is waiting for resource7451 is a correct match7452 when processable is not waiting for resource7453 does not match7454EnvironmentHelper7455 #render_deployment_status7456 when using a manual deployment7457 renders a span tag7458 when using a deployment from a build7459 renders a link tag7460 for a blocked deployment7461 indicates the status7462 #environments_detail_data_json7463 returns the correct data7464API::Helpers::PackagesManagerClientsHelpers7465 #find_job_from_http_basic_auth7466 behaves like valid auth header7467 with a valid Authorization header7468 is expected to eq #<Ci::Build status: "running", finished_at: nil, created_at: "2023-04-12 08:50:29.000000000 +0000", u...rocessed: false, scheduling_type: "stage", id: 291, stage_id: 225, partition_id: 100, tag_list: nil>7469 with an unknown password7470 is expected to equal nil7471 behaves like invalid auth header7472 with an invalid Authorization header7473 is expected to equal nil7474 when the job is not running7475 behaves like valid auth header7476 with a valid Authorization header7477 is expected to eq nil7478 with an unknown password7479 is expected to equal nil7480 #find_deploy_token_from_http_basic_auth7481 behaves like valid auth header7482 with a valid Authorization header7483 is expected to eq #<DeployToken id: 28, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>7484 with an unknown password7485 is expected to equal nil7486 behaves like invalid auth header7487 with an invalid Authorization header7488 is expected to equal nil7489Banzai::ReferenceParser::FeatureFlagParser7490 #nodes_visible_to_user7491 when the link has a data-issue attribute7492 behaves like referenced feature visibility7493 when feature is disabled7494 does not create reference7495 when feature is enabled only for team members7496 does not create reference for non member7497 creates reference for member7498 when feature is enabled7499 creates reference7500 #referenced_by7501 when the link has a data-feature-flag attribute7502 using an existing feature flag ID7503 returns an Array of feature flags7504 using a non-existing feature flag ID7505 returns an empty Array7506Mail quoted-printable transfer encoding patch and Unicode characters7507 with a text email7508 with a body that encodes to exactly 74 characters (final newline)7509 behaves like email encoding7510 enclosing in a new object does not change the encoded original7511 with a body that encodes to exactly 74 characters (no final newline)7512 behaves like email encoding7513 enclosing in a new object does not change the encoded original7514 with a body that encodes to exactly 75 characters7515 behaves like email encoding7516 enclosing in a new object does not change the encoded original7517 with an html email7518 with a body that encodes to exactly 74 characters (final newline)7519 behaves like email encoding7520 enclosing in a new object does not change the encoded original7521 with a body that encodes to exactly 74 characters (no final newline)7522 behaves like email encoding7523 enclosing in a new object does not change the encoded original7524 with a body that encodes to exactly 75 characters7525 behaves like email encoding7526 enclosing in a new object does not change the encoded original7527 a multipart email7528 behaves like email encoding7529 enclosing in a new object does not change the encoded original7530 with non UTF-8 charset7531 can be decoded back7532 behaves like email encoding7533 enclosing in a new object does not change the encoded original7534 with binary content7535 can be encoded with 'base64' content-transfer-encoding7536 binary contents are not modified7537 behaves like email encoding7538 enclosing in a new object does not change the encoded original7539 encoding fails with 'quoted-printable' content-transfer-encoding7540 content cannot be decoded back7541 empty text mail with unsual body encoding7542 decodes email successfully7543 frozen email boy content with unsual body encoding7544 decodes email successfully7545Mutations::Clusters::Agents::Create7546 is expected to require graphql authorizations :create_cluster7547 #resolve7548 without project permissions7549 raises an error if the resource is not accessible to the user7550 with user permissions7551 creates a new clusters_agent7552 invalid params7553 generates an error message when name is invalid7554AlertManagement::HttpIntegrationsFinder7555 #execute7556 empty params7557 is expected to contain exactly #<AlertManagement::HttpIntegration id: 1, created_at: "2023-04-12 15:00:47.273857000 +0000", updated_...tifier: "434dd29c", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, token: nil>7558 endpoint_identifier param given7559 is expected to contain exactly #<AlertManagement::HttpIntegration id: 1, created_at: "2023-04-12 15:00:47.273857000 +0000", updated_...tifier: "434dd29c", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, token: nil>7560 matches an unavailable integration7561 is expected to be empty7562 but unknown7563 is expected to be empty7564 but blank7565 is expected to contain exactly #<AlertManagement::HttpIntegration id: 1, created_at: "2023-04-12 15:00:47.273857000 +0000", updated_...tifier: "434dd29c", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, token: nil>7566 active param given7567 is expected to contain exactly #<AlertManagement::HttpIntegration id: 1, created_at: "2023-04-12 15:00:47.273857000 +0000", updated_...tifier: "434dd29c", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, token: nil>7568 when integration is disabled7569 is expected to be empty7570 but blank7571 is expected to contain exactly #<AlertManagement::HttpIntegration id: 1, created_at: "2023-04-12 15:00:47.273857000 +0000", updated_...tifier: "434dd29c", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, token: nil>7572 project has no integrations7573 is expected to be empty7574ForkTargetsFinder7575 #execute7576 behaves like returns namespaces and groups7577 returns all user manageable namespaces7578 returns only groups when only_groups option is passed7579 returns groups relation when only_groups option is passed7580 when search is provided7581 filters the targets by the param7582Groups::SettingsHelper7583 #group_settings_confirm_modal_data7584 prevent_delete_response: true, is_button_disabled: "true", form_value_id: nil7585 returns expected parameters7586 prevent_delete_response: true, is_button_disabled: "true", form_value_id: "fake_form_id"7587 returns expected parameters7588 prevent_delete_response: false, is_button_disabled: "false", form_value_id: nil7589 returns expected parameters7590 prevent_delete_response: false, is_button_disabled: "false", form_value_id: "fake_form_id"7591 returns expected parameters7592BulkImports::Common::Transformers::UserReferenceTransformer7593 #transform7594 when user can be found by email7595 sets found user_id and removes user key7596 when user cannot be found by email7597 sets found user_id and removes user key7598 when there is no data to transform7599 returns7600 when custom reference is provided7601 updates provided reference7602 updates provided reference7603Mutations::Ci::JobTokenScope::AddProject7604 #resolve7605 when user is not logged in7606 raises error7607 when user is logged in7608 when user does not have permissions to admin project7609 raises error7610 when user has permissions to admin project and read target project7611 adds target project to the outbound job token scope by default7612 when mutation uses the direction argument7613 when targeting the outbound allowlist7614 adds the target project7615 when targeting the inbound allowlist7616 adds the target project7617 when the service returns an error7618 returns an error response7619Users::GroupCalloutsHelper7620 .show_invite_banner?7621 when user has the admin ability for the group7622 when the invite_members_banner has not been dismissed7623 is expected to eq true7624 when the group was just created7625 is expected to eq false7626 with concerning multiple members7627 on current group7628 is expected to eq false7629 on current group that is a subgroup7630 with only one user on parent and this group7631 is expected to eq true7632 when another user is on this group7633 is expected to eq false7634 when another user is on the parent group7635 is expected to eq false7636 when the invite_members_banner has been dismissed7637 is expected to eq false7638 when user does not have admin ability for the group7639 is expected to eq false7640API::Helpers::Version7641 .new7642 is possible to initialize it with existing API version7643 raises an error when unsupported API version is provided7644 #root_path7645 returns a root path of the API version7646 #root_url7647 returns an URL for a root path for the API version7648Gitlab::HookData::ProjectMemberBuilder7649 #build7650 data7651 on create7652 is expected to eq "user_add_to_team"7653 behaves like includes the required attributes7654 includes the required attributes7655 on update7656 is expected to eq "user_update_for_team"7657 behaves like includes the required attributes7658 includes the required attributes7659 on destroy7660 is expected to eq "user_remove_from_team"7661 behaves like includes the required attributes7662 includes the required attributes7663MergeRequestContextCommit7664 associations7665 is expected to belong to merge_request required: false7666 is expected to have many diff_files class_name => MergeRequestContextCommitDiffFile7667 .delete_bulk7668 deletes context commits for given commit sha's and returns the commit7669 doesn't delete context commits when commit sha's are not passed7670Operations::FeatureFlagsClient7671 associations7672 is expected to belong to project required: false7673 validations7674 is expected to validate that :project cannot be empty/falsy7675 #token7676 ensures that token is always set7677 .update_last_feature_flag_updated_at!7678 updates the last_feature_flag_updated_at of the project client7679 #unleash_api_version7680 is expected to eq 17681 #unleash_api_features7682 fetches7683 when unleash app name is not set7684 does not fetch7685 #unleash_api_cache_key7686 constructs the cache key7687 when unleash app name is not set7688 constructs the cache key without unleash app name7689Gitlab::Database::AsyncConstraints::Validators::CheckConstraint7690 # order random7691 behaves like async constraints validation7692 validates the constraint while controlling statement timeout7693 removes the constraint validation record from table7694 skips logic if not able to acquire exclusive lease7695 logs messages around execution7696 when the constraint does not exist7697 skips validation and removes the record7698 logs an appropriate message7699 with error handling7700 on production7701 increases execution attempts7702 logs an error message including the constraint_name7703 on development7704 also raises errors7705SafeZip::ExtractParams7706 #extract_path7707 is expected to eq "/tmp/safe-zip20230412-353-a7fevu"7708 #matching_target_directory7709 path: "/public/index.html", result: "/public/"7710 is expected to eq "/tmp/safe-zip20230412-353-i7mkpq/public/"7711 path: "/non/existing/path", result: nil7712 is expected to eq nil7713 path: "/public", result: nil7714 is expected to eq nil7715 path: "/folder/with/index.html", result: nil7716 is expected to eq nil7717 #target_directories7718 starts with target_path7719 ends with / for all paths7720 #directories_wildcard7721 adds * for all paths7722 #matching_target_file7723 path: "/public/index.html", result: true7724 is expected to eq true7725 path: "/non/existing/path", result: false7726 is expected to eq false7727 path: "/public/", result: false7728 is expected to eq false7729 path: "/folder/with/index.html", result: false7730 is expected to eq false7731 when directories and files are empty7732 is invalid7733Ci::Catalog::ValidateResourceService7734 # order random7735 #execute7736 with a project that has a README and a description7737 is valid7738 with a project that has neither a description nor a README7739 is not valid7740 with a project that has a description but not a README7741 is not valid7742 with a project that has a README and not a description7743 is not valid7744Gitlab::HookData::GroupBuilder7745 #build7746 data7747 on create7748 is expected to eq "group_create"7749 behaves like includes the required attributes7750 includes the required attributes7751 behaves like does not include old path attributes7752 does not include old path attributes7753 on destroy7754 is expected to eq "group_destroy"7755 behaves like includes the required attributes7756 includes the required attributes7757 behaves like does not include old path attributes7758 does not include old path attributes7759 on rename7760 is expected to eq "group_rename"7761 includes old path details7762 behaves like includes the required attributes7763 includes the required attributes7764Packages::Cleanup::ExecutePolicyService7765 #execute7766 with the keep_n_duplicated_files parameter7767 set to less than the total number of duplicated files7768 behaves like keeping the most recent package files7769 only keeps the most recent package files7770 when the service needs to loop7771 behaves like keeping the most recent package files7772 only keeps the most recent package files7773 when a timeout is hit7774 keeps part of the most recent package files7775 set to more than the total number of duplicated files7776 keeps all package files7777 set to all7778 skips the policy7779Analytics::UsageTrends::Measurement7780 validation7781 is expected to validate that :recorded_at cannot be empty/falsy7782 is expected to validate that :identifier cannot be empty/falsy7783 is expected to validate that :count cannot be empty/falsy7784 is expected to validate that :recorded_at is case-sensitively unique within the scope of :identifier7785 identifiers enum7786 maps to the correct values7787 scopes7788 .order_by_latest7789 is expected to eq [#<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-04-10 15:01:13.65704994...ent id: 5, count: 1000, recorded_at: "2023-04-02 15:01:13.648852726 +0000", identifier: "projects">]7790 .with_identifier7791 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-04-02 15:01:13.648852726 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-04-10 15:01:13.657049945 +0000", identifier: "projects">7792 .recorded_after7793 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-04-10 15:01:13.657049945 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-04-07 15:01:13.662479924 +0000", identifier: "groups">7794 when nil is given7795 does not apply filtering7796 .recorded_before7797 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-04-02 15:01:13.648852726 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-04-07 15:01:13.662479924 +0000", identifier: "groups">7798 when nil is given7799 does not apply filtering7800 .identifier_query_mapping7801 is expected to be a kind of Hash7802 .identifier_min_max_queries7803 is expected to be a kind of Hash7804 .measurement_identifier_values7805 is expected to eq 117806 .find_latest_or_fallback7807 with usage statistics7808 returns the latest stored measurement7809 without usage statistics7810 returns the realtime query of the measurement7811Gitlab::Ci::Config::Extendable7812 #each7813 when there is extendable entry in the hash7814 yields control7815 #to_hash7816 when hash does not contain extensions7817 does not modify the hash7818 when hash has a single simple extension7819 extends a hash with a deep reverse merge7820 when the job tries to delete an extension key7821 deletes the key if assigned to null7822 when a hash uses recursive extensions7823 extends a hash with a deep reverse merge7824 when nested circular dependecy has been detected7825 raises an error about circular dependency7826 when circular dependecy to self has been detected7827 raises an error about circular dependency7828 when invalid extends value is specified7829 raises an error about invalid extension7830 when extensible entry has non-hash inheritance defined7831 raises an error about invalid base7832IncidentManagement::LinkAlerts::CreateService7833 # order random7834 #execute7835 when current user is a guest7836 responds with error7837 does not link alerts to the incident7838 when current user is a developer7839 responds with success7840 links alerts to the incident7841 when linking an already linked alert7842 does not change incident alerts list7843 when linking an alert from another project7844 links an external alert to the incident7845 when current user does not have permission to read alerts on external project7846 when linking alerts from current and external projects7847 links only alerts the current user can read7848LabelSerializer7849 #represent7850 when a single object is being serialized7851 serializes the label object7852 when multiple objects are being serialized7853 serializes the array of labels7854 #represent_appearance7855 when represents only appearance7856 serializes only attributes used for appearance7857Gitlab::Git::BaseError7858 message: "GRPC::DeadlineExceeded: 4:DeadlineExceeded. debug_error_string:{\"hello\":1}", result: "GRPC::DeadlineExceeded: 4:DeadlineExceeded."7859 is expected to eq "GRPC::DeadlineExceeded: 4:DeadlineExceeded."7860 message: "GRPC::DeadlineExceeded: 4:DeadlineExceeded.", result: "GRPC::DeadlineExceeded: 4:DeadlineExceeded."7861 is expected to eq "GRPC::DeadlineExceeded: 4:DeadlineExceeded."7862 message: "GRPC::DeadlineExceeded: 4:DeadlineExceeded. debug_error_string:{\"created\":\"@1598978902.544524530\",\"description\":\"Error received from peer ipv4: debug_error_string:test\"}", result: "GRPC::DeadlineExceeded: 4:DeadlineExceeded."7863 is expected to eq "GRPC::DeadlineExceeded: 4:DeadlineExceeded."7864 message: "9:Multiple lines\nTest line. debug_error_string:{\"created\":\"@1599074877.106467000\"}", result: "9:Multiple lines\nTest line."7865 is expected to eq "9:Multiple lines\nTest line."7866 message: "other message", result: "other message"7867 is expected to eq "other message"7868 message: nil, result: "Gitlab::Git::BaseError"7869 is expected to eq "Gitlab::Git::BaseError"7870 When initialized with GRPC errors7871 has status and code fields7872Gitlab::OtherMarkup7873 XSS Checks7874 does not convert dangerous links into HTML7875 when rendering takes too long7876 times out7877Security::CiConfiguration::ContainerScanningBuildAction7878 with existing .gitlab-ci.yml7879 container_scanning has not been included7880 template includes are an array7881 generates the correct YML7882 template include is not an array7883 generates the correct YML7884 container_scanning has been included7885 container_scanning template include are an array7886 generates the correct YML7887 container_scanning template include is not an array7888 generates the correct YML7889 with no .gitlab-ci.yml7890 autodevops disabled7891 generates the correct YML7892 with autodevops enabled7893 generates the correct YML7894Gitlab::Usage::Metrics::Instrumentations::CountImportedProjectsMetric7895 with import_type gitea7896 with all time frame7897 behaves like a correct instrumented metric value and query7898 behaves like a correct instrumented metric value7899 has correct value7900 behaves like a correct instrumented metric query7901 has correct generate query7902 for 28d time frame7903 behaves like a correct instrumented metric value and query7904 behaves like a correct instrumented metric value7905 has correct value7906 behaves like a correct instrumented metric query7907 has correct generate query7908 with import_type bitbucket7909 with all time frame7910 behaves like a correct instrumented metric value and query7911 behaves like a correct instrumented metric value7912 has correct value7913 behaves like a correct instrumented metric query7914 has correct generate query7915 for 28d time frame7916 behaves like a correct instrumented metric value and query7917 behaves like a correct instrumented metric value7918 has correct value7919 behaves like a correct instrumented metric query7920 has correct generate query7921Gitlab::Database::BackgroundMigrationJob7922 is expected to be a kind of Gitlab::Database::SharedModel(abstract)7923 behaves like having unique enum values7924 has unique values in "status"7925 .for_migration_execution7926 returns jobs matching class_name and arguments7927 normalizes class names by removing leading ::7928 .for_partitioning_migration7929 returns jobs matching class_name and the table_name job argument7930 normalizes class names by removing leading ::7931 .mark_all_as_succeeded7932 marks all matching jobs as succeeded7933 normalizes class_names by removing leading ::7934 returns the number of jobs updated7935 when previous matching jobs have already succeeded7936 does not update non-pending jobs7937 #class_name=7938 when the class_name is given without the leading ::7939 sets the class_name to the given value7940 when the class_name is given with the leading ::7941 removes the leading :: when setting the class_name7942 when the value is nil7943 sets the class_name to nil7944 when the values is blank7945 sets the class_name to the given value7946Gitlab::GithubImport::Importer::Events::Closed7947 with Issue7948 behaves like new event7949 creates expected event and state event7950 when closed by commit7951 creates expected event and state event7952 with MergeRequest7953 behaves like new event7954 creates expected event and state event7955 when closed by commit7956 creates expected event and state event7957EmailReceiverWorker7958 when reply by email is enabled7959 calls the email receiver7960 when an error occurs7961 when error is a processing error7962 triggers email failure handler7963 logs the error7964 when error is not a processing error7965 triggers email failure handler7966 reports the error7967 when reply by email is disabled7968 doesn't call the email receiver7969Ci::CreatePipelineService7970 .pre/.post stages7971 when pipeline contains a build except .pre/.post7972 creates a pipeline7973 when pipeline does not contain any other build except .pre/.post7974 does not create a pipeline7975RspecFlaky::FlakyExample7976 #initialize7977 when given an Example.to_h7978 behaves like a valid FlakyExample instance7979 returns valid attributes7980 #update!7981 when given an Example hash7982 behaves like an up-to-date FlakyExample instance7983 sets the first_flaky_at if none exists7984 maintains the first_flaky_at if exists7985 updates the last_flaky_at7986 updates the flaky_reports7987 updates the last_attempts_count7988 when run on the CI7989 updates the last_flaky_job7990 #to_h7991 when given an Example hash7992 behaves like a valid FlakyExample hash7993 returns a valid hash7994Groups::UpdateTwoFactorRequirementForMembersWorker7995 # order random7996 #perform7997 calls #update_two_factor_requirement_for_members7998 is labeled as idempotent7999 performs multiple times sequentially without raising an exception8000 requires 2fa for group members correctly8001 when group not found8002 returns nil8003Integrations::IrkerWorker#perform8004 when local requests are not allowed8005 is expected to be falsey8006 when connection fails8007 is expected to be falsey8008 when connection successful8009 is expected to be truthy8010 with new branch8011 sends a correct message with branches url8012 with deleted branch8013 sends a correct message8014 with new commits to existing branch8015 sends a correct message with a compare url8016Gitlab::Kubernetes8017 #container_exec_url8018 is expected to eq "wss"8019 is expected to eq "example.com"8020 is expected to eq "/api/v1/namespaces/default/pods/pod1/exec"8021 is expected to eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"8022 with a HTTP API URL8023 is expected to eq "ws"8024 with a path prefix in the API URL8025 is expected to eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"8026 with arguments that need urlencoding8027 is expected to eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"8028 is expected to match /\Acontainer=container\+1&/8029 #filter_by_label8030 returns matching labels8031 #filter_by_annotation8032 returns matching labels8033 #filter_by_project_environment8034 returns matching env label8035 #filter_by_legacy_label8036 returns matching labels8037 #to_kubeconfig8038 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}8039 when CA PEM is not provided8040 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}8041 when token is not provided8042 is expected to be nil8043 #add_terminal_auth8044 adds authentication parameters to a hash8045PropagateIntegrationProjectWorker8046 #perform8047 behaves like an idempotent worker8048 is labeled as idempotent8049 performs multiple times sequentially without raising an exception8050 calls to BulkCreateIntegrationService8051 with a group integration8052 calls to BulkCreateIntegrationService8053 with an invalid integration id8054 returns without failure8055Gitlab::ImportExport::Project::ExportedRelationsMerger8056 # order random8057 #save8058 downloads, extracts, and merges all files into export_path8059 when exception occurs8060 registers the exception messages and returns false8061Import::BitbucketServerService8062 raises an exception for unknown error causes8063 execute8064 tracks an access level event8065 when no repo is found8066 returns an error8067 when import source is disabled8068 returns forbidden8069 when user is unauthorized8070 returns an error8071 verify url8072 when host is localhost8073 does not allow requests8074 when host is on local network8075 does not allow requests8076 when host is ftp protocol8077 does not allow requests8078BulkImports::CreatePipelineTrackersService8079 #execute!8080 when entity is group8081 creates trackers for group entity8082 when entity is project8083 creates trackers for project entity8084 when tracker configuration has a minimum version defined8085 when the source instance version is older than the tracker mininum version8086 creates trackers as skipped if version requirement does not meet8087 logs an info message for the skipped pipelines8088 when the source instance version is undefined8089 creates trackers as created8090 when tracker configuration has a maximum version defined8091 when the source instance version is older than the tracker maximum version8092 creates trackers as skipped if version requirement does not meet8093 when the source instance version is a patch version8094 creates trackers with the same status as the non-patch source version8095OptionallySearch8096 .search8097 raises NotImplementedError8098 .optionally_search8099 when a query is given8100 delegates to the search method8101 when an option is provided8102 delegates to the search method8103 when no query is given8104 returns the current relation8105 when an empty query is given8106 returns the current relation8107Gitlab::Ci::Config::Yaml::Tags::Reference8108 .tag8109 implements the tag method8110 #resolve8111 with circular references8112 raises CircularReferenceError8113 with nested circular references8114 raises CircularReferenceError8115 with missing references8116 raises MissingReferenceError8117 with invalid references8118 yaml: "a: !reference", error_message: "!reference [] is not valid"8119 raises an error8120 yaml: "a: !reference str", error_message: "!reference \"str\" is not valid"8121 raises an error8122 yaml: "a: !reference 1", error_message: "!reference \"1\" is not valid"8123 raises an error8124 yaml: "a: !reference [1]", error_message: "!reference [1] is not valid"8125 raises an error8126 yaml: "a: !reference { b: c }", error_message: "!reference {\"b\"=>\"c\"} is not valid"8127 raises an error8128 when the references are valid but do not match the config8129 raises a MissingReferenceError8130 with arrays8131 is expected to match (a hash including {:f => {:g => [[1, 2], 5, [3, 4]]}})8132 with hashes8133 when referencing an entire hash8134 is expected to match (a hash including {:e => {:f => {:c => "c", :d => "d"}}})8135 when referencing only a hash value8136 is expected to match (a hash including {:i => {:g => "c", :h => "h"}})8137 when referencing a value before its definition8138 is expected to match (a hash including {:a => {:b => {:e => 1, :f => "f"}}})8139Metrics::Dashboard::DefaultEmbedService8140 .valid_params?8141 is expected to be truthy8142 missing embedded8143 is expected to be falsey8144 not embedded8145 is expected to be falsey8146 #get_dashboard8147 caches the unprocessed dashboard for subsequent calls8148 behaves like valid embedded dashboard service response8149 behaves like valid dashboard service response for schema8150 returns a json representation of the dashboard8151 behaves like raises error for users with insufficient permissions8152 when the user does not have sufficient access8153 behaves like misconfigured dashboard service response8154 returns an appropriate message and status code8155 when the user is anonymous8156 behaves like misconfigured dashboard service response8157 returns an appropriate message and status code8158 when called with a non-system dashboard8159 behaves like valid embedded dashboard service response8160 behaves like valid dashboard service response for schema8161 returns a json representation of the dashboard8162Ci::BuildCancelService8163 #execute8164 when user is authorized to cancel the build8165 when build is cancelable8166 transits build to canceled8167 when build is not cancelable8168 responds with unprocessable entity8169 when user is not authorized to cancel the build8170 responds with forbidden8171Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker8172 #import8173 imports all the pull request reviews8174Boards::DestroyService8175 with project board8176 behaves like board destroy service8177 #execute8178 when there is more than one board8179 destroys the board8180 when there is only one board8181 does remove board8182 with group board8183 behaves like board destroy service8184 #execute8185 when there is more than one board8186 destroys the board8187 when there is only one board8188 does remove board8189ResourceLabelEventPolicy8190 #read_resource_label_event8191 with non-member user8192 does not allow to read event8193 with member user8194 allows to read event for accessible label8195 does not allow to read event for not accessible label8196 #read_label8197 allows to read deleted label8198 allows to read accessible label8199 does not allow to read not accessible label8200Gitlab::HashedPath8201 #to_s8202 when path contains a single value8203 returns the disk path8204 when path contains multiple values8205 returns the disk path8206BulkImports::Projects::Pipelines::ProjectAttributesPipeline8207 #run8208 imports project attributes8209 when project is archived8210 sets project as archived8211 #transform8212 removes prohibited attributes from hash8213 #load8214 assigns attributes, drops visibility and reconciles shared runner setting8215 #after_run8216 calls extractor#remove_tmpdir8217 .relation8218 is expected to eq "self"8219Banzai::Renderer8220 #cache_collection_render8221 when an item has a rendered field8222 does not touch redis if the field is in the cache8223 #render_field8224 without cache8225 returns cacheless render field8226 with cache8227 with a stale cache8228 caches and returns the result8229 skips database caching on a GitLab read-only instance8230 with an up-to-date cache8231 uses the cache8232 #cacheless_render8233 without cache8234 returns cacheless render field8235 #post_process8236 when xhtml8237 without :post_process_pipeline key8238 uses PostProcessPipeline8239 with :post_process_pipeline key8240 uses passed post process pipeline8241 when not xhtml8242 without :post_process_pipeline key8243 uses PostProcessPipeline8244 with :post_process_pipeline key8245 uses passed post process pipeline8246Gitlab::Metrics::Dashboard::Transformers::Yml::V1::PrometheusMetrics8247 #execute8248 valid dashboard8249 returns collection of metrics with correct attributes8250 invalid dashboard8251 raises missing attribute error8252Gitlab::Database::AsyncIndexes::IndexCreator8253 #perform8254 creates the index while controlling statement timeout8255 removes the index preparation record from postgres_async_indexes8256 skips logic if not able to acquire exclusive lease8257 logs messages around execution8258 when the index already exists8259 skips index creation8260 removes the index preparation record from postgres_async_indexes8261 logs an appropriate message8262GroupDeployToken8263 relationships8264 is expected to belong to group required: false8265 is expected to belong to deploy_token required: false8266 validation8267 is expected to validate that :deploy_token cannot be empty/falsy8268 is expected to validate that :group cannot be empty/falsy8269 is expected to validate that :deploy_token_id is case-sensitively unique within the scope of :group_id8270 #has_access_to_group?8271 for itself8272 is expected to eq true8273 for a subgroup8274 is expected to eq true8275 for other group8276 is expected to eq false8277BulkImports::Groups::Pipelines::SubgroupEntitiesPipeline8278 #run8279 creates entities for the subgroups8280 #load8281 creates entities for the given data8282 pipeline parts8283 is expected to includes the BulkImports::Pipeline module8284 is expected to includes the BulkImports::Pipeline::Runner module8285 has extractors8286 has transformers8287MergeRequestSidebarBasicEntity8288 #current_user8289 contains attributes related to the current user8290Types::WorkItemIdType8291 .coerce_input8292 can coerce valid issue input8293 can coerce valid work item input8294 fails for other input types8295 .coerce_result8296 can coerce issue results and return a WorkItem global ID8297 can coerce work item results8298 fails for other input types8299Types::ReleaseAssetLinkType8300 is expected to require graphql authorizations :read_release8301 has the expected fields8302Projects::EnableDeployKeyService8303 enables the key8304 trying to add an unaccessable key8305 returns nil if the key cannot be added8306 add the same key twice8307 returns existing key8308HashedStorage::ProjectRollbackWorker8309 #perform8310 skips when project no longer exists8311 skips when project is pending delete8312 delegates rollback to service class when have exclusive lease8313 skips when it cant acquire the exclusive lease8314Metrics::UsersStarredDashboards::DeleteService8315 #execute8316 without dashboard_path8317 does not scope user starred dashboards by dashboard path8318 with dashboard_path8319 does scope user starred dashboards by dashboard path8320ImportIssuesCsvWorker8321 #perform8322 calls #execute on Issues::ImportCsvService and destroys upload8323 behaves like an idempotent worker8324 is labeled as idempotent8325 performs multiple times sequentially without raising an exception8326Clusters::Agents::CreateActivityEventService8327 #execute8328 creates an activity event record8329 schedules the cleanup worker8330 when activity event creation fails8331 tracks the exception without raising8332Achievements::RevokeService8333 # order random8334 #execute8335 when user does not have permission8336 returns an error8337 when user has permission8338 revokes an achievement8339 when the achievement has already been revoked8340 returns the correct error8341 when the user achievement fails to save8342 returns the correct error8343Gitlab::Git::PreReceiveError8344 uses the fallback message8345 uses the fallback message8346 error messages prefixed with GitLab:8347 accepts only errors lines with the prefix8348 makes its message HTML-friendly8349 prefers the original message over the fallback8350 error messages prefixed with GL-HOOK-ERR:8351 accepts only errors lines with the prefix8352 makes its message HTML-friendly8353 prefers the original message over the fallback8354Resolvers::Crm::ContactStateCountsResolver8355 #resolve8356 with unauthorized user8357 does not raise an error and returns no counts8358 with authorized user8359 without parent8360 returns no counts8361 with a group8362 when no filter is provided8363 returns the count of all contacts8364 when search term is provided8365 returns the correct counts8366Gitlab::Sourcegraph8367 .feature_conditional?8368 when feature is enabled globally8369 is expected to be falsey8370 when feature is enabled only to a resource8371 is expected to be truthy8372 .feature_available?8373 when feature is enabled globally8374 is expected to be truthy8375 when feature is enabled only to a resource8376 is expected to be truthy8377 when feature is disabled8378 is expected to be falsey8379 .feature_enabled?8380 when feature is enabled globally8381 is expected to be truthy8382 when feature is enabled only to a resource8383 for the same resource8384 is expected to be truthy8385 for a different resource8386 is expected to be falsey8387Every API endpoint8388 feature categories8389 has feature categories8390 recognizes the feature categories8391 has no routes with multiple paths8392 doesn't define or exclude categories on removed actions8393Mutations::UserCallouts::Create8394 #resolve8395 when feature name is not supported8396 does not create a user callout8397 returns error about feature name not being supported8398 when feature name is supported8399 creates a user callout8400 sets dismissed_at for the user callout8401 has no errors8402RolloutStatusEntity8403 exposes status8404 exposes has_legacy_app_label8405 when kube deployment is valid8406 exposes deployment data8407 does not expose canary ingress if it does not exist8408 when canary ingress exists8409 expose canary ingress8410 when kube deployment is empty8411 exposes status8412 does not expose deployment data8413Mutations::Terraform::State::Delete8414 is expected to eq "TerraformStateDelete"8415 is expected to require graphql authorizations :admin_terraform_state8416 #resolve8417 user does not have permission8418 raises an error8419 user has permission8420 schedules the state for deletion8421 with invalid params8422 raises an error8423Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog8424 is expected to be a kind of Gitlab::Database::SharedModel(abstract)8425 associations8426 is expected to belong to batched_job required: false8427 validations8428 is expected to validate that :previous_status cannot be empty/falsy8429 is expected to validate that :next_status cannot be empty/falsy8430 is expected to validate that :batched_job cannot be empty/falsy8431 is expected to validate that the length of :exception_class is at most 1008432 is expected to validate that the length of :exception_message is at most 10008433 is expected to define :previous_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true8434 is expected to define :next_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true8435Analytics::UsageTrends::CountJobTriggerWorker8436 behaves like an idempotent worker8437 is labeled as idempotent8438 performs multiple times sequentially without raising an exception8439 triggers a job for each measurement identifiers8440 triggers CounterJobWorker jobs8441Gitlab::ExceptionLogFormatter8442 .format!8443 adds exception data to log8444 cleans the exception message8445 when exception is ActiveRecord::StatementInvalid8446 adds the normalized SQL query to payload8447 when the ActiveRecord::StatementInvalid is wrapped in another exception8448 adds the cause_class to payload8449 adds the normalized SQL query to payload8450 when the ActiveRecord::StatementInvalid is a bad query8451 adds the query as-is to payload8452Resolvers::GroupMembers::NotificationEmailResolver8453 #resolve8454 is expected to have nullable GraphQL type String8455 when current_user is admin8456 returns email8457 when current_user is not admin8458 raises ResourceNotAvailable error8459Releases::Evidence8460 filters out issues from summary json8461 associations8462 is expected to belong to release required: false8463Resolvers::ProjectPipelinesResolver8464 when the user does have access8465 resolves only MRs for the passed merge request8466 when the user does not have access8467 does not return pipeline data8468Gitlab::ShardHealthCache8469 .clear8470 leaves no shards around8471 .update8472 returns the healthy shards8473 replaces the existing set8474 .healthy_shard_count8475 returns the healthy shard count8476 returns 0 if no shards are available8477 .healthy_shard?8478 returns true for a healthy shard8479 returns false for an unknown shard8480WorkItems::Widgets::StartAndDueDate8481 .type8482 is expected to eq :start_and_due_date8483 .quick_action_params8484 is expected to include :due_date8485 #type8486 is expected to eq :start_and_due_date8487 #start_date8488 is expected to eq Wed, 12 Apr 20238489 #due_date8490 is expected to eq Wed, 19 Apr 20238491Achievements::CreateService8492 # order random8493 #execute8494 when user does not have permission8495 returns an error8496 when user has permission8497 creates an achievement8498 returns an error when the achievement is not persisted8499Admin::AbuseReportSerializer8500 # order random8501 #represent8502 serializes an abuse report85041st Try error in ./spec/serializers/admin/abuse_report_serializer_spec.rb:11:8505stubbed models are not allowed to access the database - AbuseReport#update_columns({"message_html"=>"User sends spam", "cached_markdown_version"=>2097152})8507RSpec::Retry: 2nd try ./spec/serializers/admin/abuse_report_serializer_spec.rb:118508 when multiple objects are being serialized8509 serializers the array of abuse reports8510Gitlab::LegacyGithubImport::LabelFormatter8511 #attributes8512 returns formatted attributes8513 #create!8514 when label does not exist8515 creates a new label8516 when label exists8517 does not create a new label8518Packages::Composer::PackagesFinder8519 #execute8520 is expected to contain exactly #<Packages::Package id: 56, project_id: 1060, created_at: "2023-04-12 15:02:34.005664142 +0000", upda...on: "1.0.1", package_type: "composer", creator_id: 1992, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 57, project_id: 1060, created_at: "2023-04-12 15:02:34.017077011 +0000", upda...on: "1.0.2", package_type: "composer", creator_id: 1992, status: "default", last_downloaded_at: nil>8521BulkImports::Pipeline::ExtractedData8522 #has_next_page?8523 when next page is present8524 returns true8525 when next page is not present8526 returns false8527 #next_page8528 returns next page cursor information8529 #each8530 when block is present8531 yields each data item8532 when block is not present8533 returns enumerator8534Glfm::Shared8535 # order random8536 #run_external_cmd8537 runs the external command8538 when command fails8539 raises error8540 #write_file8541 creates the file8542 #output8543 has code coverage8544 #dump_yaml_with_formatting8545 returns formatted yaml8546Tooling::TestMapGenerator8547 #parse8548 with single yaml8549 parses crystalball data into test mapping8550 stores test files without example uid8551 displays a warning when report has no examples8552 with multiple yamls8553 parses crystalball data into test mapping8554 stores test files without example uid8555Gitlab::ImportExport::VersionChecker8556 bundle a project Git repo8557 returns true if Import/Export have the same version8558 newer version8559 returns false if export version is newer8560 shows the correct error message8561 version file access check8562 does not read a symlink8563Users::BannedUser8564 relationships8565 is expected to belong to user required: false8566 validations8567 is expected to validate that :user cannot be empty/falsy8568 validates uniqueness of banned user id8569TokenWithIv8570 validations8571 is expected to validate that :hashed_token cannot be empty/falsy8572 is expected to validate that :iv cannot be empty/falsy8573 is expected to validate that :hashed_plaintext_token cannot be empty/falsy8574 .find_by_hashed_token8575 only includes matching record8576 .find_by_plaintext_token8577 only includes matching record8578Gitlab::JWTToken8579 behaves like a gitlab jwt token8580 #secret8581 is expected to eq "e9fd1e06b34a189d6d5c7552fb34690f370f35a8c44e42525045ebe1d7626952"8582 #decode8583 with a custom payload8584 returns the correct token8585 returns nil and logs the exception after expiration8586Integrations::HarborSerializers::ArtifactEntity8587 returns the Harbor artifact8588Webauthn::RegisterService8589 #execute8590 returns a registration if challenge matches8591 returns an error if challenge does not match8592Ci::DeleteObjectsWorker8593 is expected to be truthy8594 is expected to respond to #max_running_jobs8595 is expected to respond to #remaining_work_count8596 is expected to respond to #perform_work8597 #perform8598 executes a service8599RuboCop::Cop::Migration::ComplexIndexesRequireName8600 # order random8601 when outside migration8602 registers no offenses8603 when in migration8604 when creating complex indexes as part of create_table8605 when indexes are configured with an options hash, but no name8606 registers an offense8607 when indexes are configured with an options hash and name8608 registers no offense8609 when indexes are added to an existing table8610 when indexes are configured with an options hash, but no name8611 registers an offense8612 when indexes are configured with an options hash and a name8613 registers no offenses8614API::Entities::ApplicationSetting8615 housekeeping_bitmaps_enabled usage is deprecated and always enabled8616 when housekeeping_bitmaps_enabled db column is false8617 returns true8618 when housekeeping_bitmaps_enabled db column is true8619 returns true8620Ci::JobArtifacts::ExpireProjectBuildArtifactsWorker8621 #perform8622 executes ExpireProjectArtifactsService service with the project8623 when project does not exist8624 does nothing8625Gitlab::Graphql::MountMutation8626 .mount_mutation8627 mounts a mutation8628 .mount_aliased_mutation8629 mounts a mutation8630 has a correct `graphql_name`8631 has a correct type8632 has a correct input argument8633Types::PermissionTypes::BasePermissionType8634 .permission_field8635 adds a field for the required permission8636 .ability_field8637 adds a field for the required permission8638 does not add a resolver block if another resolving param is passed8639 .abilities8640 adds a field for the passed permissions8641 extensions8642 has the extension8643Gitlab::Kroki8644 .formats8645 enabled_formats: "", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom"]8646 returns the expected formats8647 enabled_formats: "blockdiag", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom", "actdiag", "blockdiag", "nwdiag", "packetdiag", "rackdiag", "seqdiag"]8648 returns the expected formats8649 enabled_formats: "bpmn", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom", "bpmn"]8650 returns the expected formats8651 enabled_formats: "excalidraw", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom", "excalidraw"]8652 returns the expected formats8653Gitlab::Ci::Config::Entry::Product::Variables8654 validations8655 when entry config value is correct8656 #value8657 returns hash with key value strings8658 #errors8659 does not append errors8660 #valid?8661 is valid8662 with only one variable8663 #valid?8664 is valid8665 #errors8666 does not append errors8667Types::MergeRequests::AssigneeType8668 behaves like a user type with merge request interaction type8669 is expected to require graphql authorizations :read_user8670 has the expected fields8671 #merge_request_interaction8672 returns the correct type8673 has the correct arguments8674Ci::CopyCrossDatabaseAssociationsService8675 #execute8676 returns a success response8677Gitlab::Ci::Config::Entry::Ports8678 when configuration is valid8679 #valid?8680 is valid8681 #value8682 returns valid array8683 when configuration is invalid8684 #valid?8685 is invalid8686 when any of the ports8687 have the same name8688 #valid?8689 is invalid8690 have the same port8691 #valid?8692 is invalid8693API::Entities::Ci::JobRequest::Port8694 returns the port number8695 returns if the port protocol8696 returns the port name8697Gitlab::UsageDataCounters::SearchCounter8698 all_searches counter8699 behaves like usage counter with totals8700 increments counter and returns total count8701 navbar_searches counter8702 behaves like usage counter with totals8703 increments counter and returns total count8704 .fetch_supported_event8705 is expected to eq "all_searches"8706Types::Projects::ForkDetailsType8707 # order random8708 has specific fields8709 is expected to eq "ForkDetails"8710WebpackHelper8711 #prefetch_link_tag8712DEPRECATION WARNING: The asset "foo.js" is not present in the asset pipeline.8713Falling back to an asset that may be in the public folder.8714This behavior is deprecated and will be removed.8715To bypass the asset pipeline and preserve this behavior,8716use the `skip_pipeline: true` option.8717 (called from prefetch_link_tag at /builds/gitlab-org/gitlab/app/helpers/webpack_helper.rb:5)8718 returns prefetch link tag8719 #webpack_preload_asset_tag8720 preloads the resource by default8721 prefetches the resource if explicitly asked8722Gitlab::Email::Hook::AdditionalHeadersInterceptor8723 adds Auto-Submitted header8724 when the same mail object is sent twice8725 does not add the Auto-Submitted header twice8726Gitlab::Ci::Build::Policy8727 .fabricate8728 when policy exists8729 fabricates and initializes relevant policy8730 when some policies are not defined8731 gracefully skips unknown policies8732 when passing a nil value as specs8733 returns an empty array8734FeatureFlagsClientSerializer8735 #represent_token8736 includes feature flags client token8737RunnerEntity8738 #as_json8739 contains required fields8740Gitlab::GithubImport::ImportNoteWorker8741 #import8742 imports a note8743Gitlab::Metrics::Dashboard::Stages::MetricEndpointInserter8744 #transform!8745 generates prometheus_endpoint_path without newlines8746 includes a path for the prometheus endpoint with each metric8747 works when query/query_range is a number8748Resolvers::PackageDetailsResolver8749 #resolve8750 is expected to eq #<Packages::Package id: 60, project_id: 1068, created_at: "2023-04-12 15:02:55.152395431 +0000", upda...on: "1.0.5", package_type: "composer", creator_id: 2006, status: "default", last_downloaded_at: nil>8751Gitlab::SidekiqVersioning8752 .install!8753 registers all versionless and versioned queues with Redis8754Clusters::BuildService8755 #execute8756 when cluster subject is a project8757 sets the cluster_type to project_type8758 when cluster subject is a group8759 sets the cluster_type to group_type8760 when cluster subject is an instance8761 sets the cluster_type to instance_type8762Types::Ci::TestCaseStatusEnum8763 is expected to eq "TestCaseStatus"8764 exposes all test case status types8765Types::ContainerRepositoryStatusEnum8766 exposes all statuses8767Types::DescriptionVersionType8768 # order random8769 is expected to have graphql field :id8770 is expected to require graphql authorizations :read_issuable8771 is expected to have graphql field :description8772Types::Snippets::BlobActionInputType8773 is expected to eq "SnippetBlobActionInputType"8774 has the correct arguments8775 sets the type of action argument to BlobActionEnum8776Presentable8777 #present8778 returns a presenter8779 takes optional attributes8780Gitlab::BacktraceCleaner8781 .clean_backtrace8782 uses the Rails backtrace cleaner8783 removes lines from IGNORE_BACKTRACES8784ContainerRegistryHelper8785 #container_repository_gid_prefix8786 is expected to eq "gid://gitlab/ContainerRepository/"8787Gitlab::Middleware::HandleIpSpoofAttackError8788 passes through the response from a valid upstream8789 translates an ActionDispatch::IpSpoofAttackError to a 400 response8790 passes through the exception raised by an invalid upstream8791Projects::AndroidTargetPlatformDetectorService8792 when project is not an Android project8793 is expected to be nil8794 when project is an Android project8795 is expected to eq :android8796Gitlab::FogbugzImport::Client8797 retrieves user_map with one user8798 retrieves user_map with two users8799Types::DeploymentTagType8800 # order random8801 is expected to eq "DeploymentTag"8802 has the expected fields8803Gitlab::Database::AsyncConstraints::Validators8804 # order random8805 .for8806 with foreign keys validations8807 is expected to be a kind of Gitlab::Database::AsyncConstraints::Validators::ForeignKey8808 with check constraint validations8809 is expected to be a kind of Gitlab::Database::AsyncConstraints::Validators::CheckConstraint8810Gitlab::Kubernetes::TlsSecret8811 #generate8812 is expected to eq #<Kubeclient::Resource type="kubernetes.io/tls", metadata={:name=>"example-name", :namespace=>"example-namespace"}, data={:"tls.crt"=>"ZXhhbXBsZS1jZXJ0", :"tls.key"=>"ZXhhbXBsZS1rZXk="}>8813Gitlab::Utils::ExecutionTracker8814 # order random8815 #over_limit?8816 is true when max runtime is exceeded8817 is false when max runtime is not exceeded8818WikiPages::BaseService8819 #increment_usage8820 the class implements usage_counter_action incorrectly8821 raises an error on unknown events8822Create security training providers in production8823 # order random8824 behaves like security training providers importer8825OK8826 upserts security training providers8827Sidebars::Groups::SuperSidebarMenus::SecureMenu8828 # order random8829 has title and sprite_icon8830 defines list of NilMenuItem placeholders8831Gitlab::GrapeLogging::Loggers::QueueDurationLogger8832 .parameters8833 when no proxy duration is available8834 returns an empty hash8835 when a proxy duration is available8836 adds the duration to log parameters8837RuboCop::Cop::Gitlab::Intersect8838 # order random8839 flags the use of Gitlab::SQL::Intersect.new8840DeployKeyPresenter8841 # order random8842 #humanized_error_message8843 when public key is unsupported8844 returns the custom error message8845Gitlab::WordDiff::Segments::Newline8846 #to_s8847 is expected to eq ""8848TodosDestroyer::DestroyedDesignsWorker8849 calls the Todos::Destroy::DesignService with design_ids parameter8850AbuseReportsHelper8851 # order random8852 #valid_image_mimetypes8853 is expected to eq "image/png, image/jpg, image/jpeg, image/gif, image/bmp, image/tiff, image/ico or image/webp"8854Knapsack report was generated. Preview:8855{8856 "spec/lib/gitlab/git_access_spec.rb": 308.22836668200034,8857 "spec/lib/gitlab/import_export/project/tree_restorer_spec.rb": 155.9177353089999,8858 "spec/services/merge_requests/create_service_spec.rb": 96.42687286899945,8859 "spec/policies/group_policy_spec.rb": 38.701333915999385,8860 "spec/models/integration_spec.rb": 28.372808774000077,8861 "spec/models/ci/build_trace_chunk_spec.rb": 33.11600039200039,8862 "spec/lib/gitlab/import_export/project/tree_saver_spec.rb": 51.61769136000021,8863 "spec/tasks/gitlab/check_rake_spec.rb": 33.39900076600043,8864 "spec/routing/project_routing_spec.rb": 12.183694354999716,8865 "spec/lib/gitlab/ci/status/build/factory_spec.rb": 41.854005338000206,8866 "spec/lib/gitlab/ci/trace_spec.rb": 10.966849057999752,8867 "spec/tasks/gitlab/db_rake_spec.rb": 13.52146797899968,8868 "spec/services/incident_management/timeline_events/create_service_spec.rb": 12.54664107499957,8869 "spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb": 30.53711783899962,8870 "spec/lib/gitlab/checks/branch_check_spec.rb": 27.4251946280001,8871 "spec/helpers/issues_helper_spec.rb": 16.753699167999912,8872 "spec/services/projects/move_forks_service_spec.rb": 22.47332331600046,8873 "spec/components/pajamas/button_component_spec.rb": 3.8981823260000965,8874 "spec/services/ci/process_sync_events_service_spec.rb": 24.460822428999563,8875 "spec/models/clusters/applications/helm_spec.rb": 15.122475135999593,8876 "spec/models/application_record_spec.rb": 14.450242537999657,8877 "spec/services/work_items/parent_links/create_service_spec.rb": 18.353269782999632,8878 "spec/lib/gitlab/ci/trace/stream_spec.rb": 4.295061462999911,8879 "spec/lib/banzai/reference_parser/commit_parser_spec.rb": 13.77363496199996,8880 "spec/helpers/application_settings_helper_spec.rb": 3.3631814440004746,8881 "spec/lib/gitlab/ci/cron_parser_spec.rb": 3.2952528420000817,8882 "spec/services/discussions/update_diff_position_service_spec.rb": 13.534409777999826,8883 "spec/lib/gitlab/slash_commands/deploy_spec.rb": 11.079103205000138,8884 "spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb": 7.064197962000435,8885 "spec/services/ci/components/fetch_service_spec.rb": 7.435525562000294,8886 "spec/lib/gitlab/database/migration_helpers/v2_spec.rb": 4.4303647680008,8887 "spec/lib/gitlab/github_import/representation/issue_event_spec.rb": 2.1416818269999567,8888 "spec/lib/gitlab/ci/config/external/file/artifact_spec.rb": 8.160293613000249,8889 "spec/workers/packages/nuget/extraction_worker_spec.rb": 8.094895458999417,8890 "spec/models/integrations/pumble_spec.rb": 8.181869330000154,8891 "spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb": 9.5357371529999,8892 "spec/services/ci/update_build_state_service_spec.rb": 5.239597620000495,8893 "spec/models/ci/build_trace_metadata_spec.rb": 6.770476964000409,8894 "spec/lib/gitlab/database/postgres_index_spec.rb": 2.8227950729997247,8895 "spec/lib/gitlab/import_export/merge_request_parser_spec.rb": 11.157549856000514,8896 "spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb": 9.695565445999819,8897 "spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb": 8.854092227000365,8898 "spec/serializers/deployment_entity_spec.rb": 5.910563476999414,8899 "spec/graphql/resolvers/group_labels_resolver_spec.rb": 7.768242514999656,8900 "spec/lib/gitlab/sidekiq_config/worker_router_spec.rb": 1.5848782379998738,8901 "spec/models/packages/conan/metadatum_spec.rb": 4.359886156000357,8902 "spec/models/clusters/providers/gcp_spec.rb": 3.2132067899992762,8903 "spec/workers/container_registry/migration/observer_worker_spec.rb": 7.6388384490001044,8904 "spec/lib/gitlab/repo_path_spec.rb": 2.9503848090007523,8905 "spec/models/packages/debian/group_component_file_spec.rb": 2.36364535300072,8906 "spec/policies/metrics/dashboard/annotation_policy_spec.rb": 4.603841789999933,8907 "spec/services/jira_import/start_import_service_spec.rb": 5.066374439000356,8908 "spec/policies/personal_snippet_policy_spec.rb": 5.610775030999321,8909 "spec/lib/gitlab/suggestions/commit_message_spec.rb": 5.0797148710007605,8910 "spec/graphql/resolvers/labels_resolver_spec.rb": 5.481456210000033,8911 "spec/services/personal_access_tokens/create_service_spec.rb": 3.963756486999955,8912 "spec/graphql/resolvers/group_milestones_resolver_spec.rb": 5.3641120819993375,8913 "spec/lib/gitlab/checks/snippet_check_spec.rb": 7.921944241000347,8914 "spec/lib/gitlab/ci/status/external/common_spec.rb": 5.43156373399961,8915 "spec/models/network/graph_spec.rb": 6.698603489999186,8916 "spec/services/packages/conan/search_service_spec.rb": 7.616629373000251,8917 "spec/models/concerns/spammable_spec.rb": 2.4660579430001235,8918 "spec/services/clusters/agent_tokens/revoke_service_spec.rb": 4.993987159999961,8919 "spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb": 5.7991808569995555,8920 "spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb": 1.9415848890002962,8921 "spec/services/packages/update_package_file_service_spec.rb": 4.86978473399995,8922 "spec/services/boards/issues/create_service_spec.rb": 3.2829571379998015,8923 "spec/lib/gitlab/ci/config/extendable/entry_spec.rb": 1.401021593999758,8924 "spec/graphql/mutations/issues/set_locked_spec.rb": 3.5316485820003436,8925 "spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb": 2.8550464329991883,8926 "spec/lib/gitlab/ci/variables/builder/group_spec.rb": 1.5951173339999514,8927 "spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb": 1.4088716630003546,8928 "spec/workers/gitlab/phabricator_import/base_worker_spec.rb": 3.173696779999773,8929 "spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 1.383110905999274,8930 "spec/serializers/container_repositories_serializer_spec.rb": 3.899988824000502,8931 "spec/lib/gitlab/kubernetes/helm/api_spec.rb": 0.9896562270005234,8932 "spec/rubocop/cop/rspec/expect_gitlab_tracking_spec.rb": 0.9409510420000515,8933 "spec/uploaders/lfs_object_uploader_spec.rb": 1.340386521000255,8934 "spec/lib/gitlab/ci/badge/coverage/report_spec.rb": 1.71901101200001,8935 "spec/workers/stuck_export_jobs_worker_spec.rb": 2.1235937689998536,8936 "spec/models/issue_assignee_spec.rb": 3.939603299999362,8937 "spec/models/lfs_file_lock_spec.rb": 3.9276151620006203,8938 "spec/models/preloaders/project_policy_preloader_spec.rb": 3.5222948329992505,8939 "spec/graphql/resolvers/ci/group_runners_resolver_spec.rb": 1.8380426190005892,8940 "spec/models/blob_viewer/readme_spec.rb": 4.390943183999298,8941 "spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb": 1.500234883000303,8942 "spec/finders/namespaces/projects_finder_spec.rb": 2.82676466599969,8943 "spec/models/packages/rpm/repository_file_spec.rb": 1.7813100049997956,8944 "spec/lib/bulk_imports/projects/pipelines/ci_pipelines_pipeline_spec.rb": 2.7274948770000265,8945 "spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb": 3.9886396150004657,8946 "spec/helpers/environment_helper_spec.rb": 2.320234517999779,8947 "spec/lib/api/helpers/packages_manager_clients_helpers_spec.rb": 2.3228052979993663,8948 "spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb": 3.6597573789995295,8949 "spec/initializers/mail_encoding_patch_spec.rb": 1.3628743680001207,8950 "spec/graphql/mutations/clusters/agents/create_spec.rb": 5.433011334999719,8951 "spec/finders/alert_management/http_integrations_finder_spec.rb": 1.8230302299998584,8952 "spec/finders/fork_targets_finder_spec.rb": 2.6522043439999834,8953 "spec/helpers/groups/settings_helper_spec.rb": 0.8857491180006036,8954 "spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb": 1.6230878510004914,8955 "spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb": 3.0629503410000325,8956 "spec/helpers/users/group_callouts_helper_spec.rb": 2.8687841410001056,8957 "spec/lib/api/helpers/version_spec.rb": 0.5136532959995748,8958 "spec/lib/gitlab/hook_data/project_member_builder_spec.rb": 1.4633863079998264,8959 "spec/models/merge_request_context_commit_spec.rb": 2.991572399000688,8960 "spec/models/operations/feature_flags_client_spec.rb": 1.2438772909999898,8961 "spec/lib/gitlab/database/async_constraints/validators/check_constraint_spec.rb": 0.9952311160004683,8962 "spec/lib/safe_zip/extract_params_spec.rb": 0.7733295690004525,8963 "spec/services/ci/catalog/validate_resource_service_spec.rb": 3.2756761990003724,8964 "spec/lib/gitlab/hook_data/group_builder_spec.rb": 0.7559693809998862,8965 "spec/services/packages/cleanup/execute_policy_service_spec.rb": 1.4698870269994586,8966 "spec/models/analytics/usage_trends/measurement_spec.rb": 1.1589020290002736,8967 "spec/lib/gitlab/ci/config/extendable_spec.rb": 0.6455608120004399,8968 "spec/services/incident_management/link_alerts/create_service_spec.rb": 2.9139368469996043,8969 "spec/serializers/label_serializer_spec.rb": 2.103978460999315,8970 "spec/lib/gitlab/git/base_error_spec.rb": 0.729124853999565,8971 "spec/lib/gitlab/other_markup_spec.rb": 1.542157529999713,8972 "spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb": 1.0321366120006132,8973 "spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb": 2.4065984789995127,8974 "spec/lib/gitlab/database/background_migration_job_spec.rb": 1.1931741660000625,8975 "spec/lib/gitlab/github_import/importer/events/closed_spec.rb": 2.1328259880001497,8976 "spec/workers/email_receiver_worker_spec.rb": 0.7828369389999352,8977 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 2.1176301389996297,8978 "spec/tooling/rspec_flaky/flaky_example_spec.rb": 0.747928851999859,8979 "spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb": 1.0291270829993664,8980 "spec/workers/integrations/irker_worker_spec.rb": 1.825694189999922,8981 "spec/lib/gitlab/kubernetes_spec.rb": 1.3432611909993284,8982 "spec/workers/propagate_integration_project_worker_spec.rb": 3.0499629930000083,8983 "spec/lib/gitlab/import_export/project/exported_relations_merger_spec.rb": 2.2773540130001493,8984 "spec/services/import/bitbucket_server_service_spec.rb": 1.4863571949999823,8985 "spec/services/bulk_imports/create_pipeline_trackers_service_spec.rb": 2.151148306000323,8986 "spec/models/concerns/optionally_search_spec.rb": 0.7700022700000773,8987 "spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb": 0.9829230870000174,8988 "spec/services/metrics/dashboard/default_embed_service_spec.rb": 1.7821080439998696,8989 "spec/services/ci/build_cancel_service_spec.rb": 1.4011449740000899,8990 "spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb": 0.7173420749995785,8991 "spec/services/boards/destroy_service_spec.rb": 1.0288423330002843,8992 "spec/policies/resource_label_event_policy_spec.rb": 2.3550878050000392,8993 "spec/lib/gitlab/hashed_path_spec.rb": 0.47658478999983345,8994 "spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb": 1.2467069910007922,8995 "spec/lib/banzai/renderer_spec.rb": 0.949420162000024,8996 "spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb": 0.6169032950001565,8997 "spec/lib/gitlab/database/async_indexes/index_creator_spec.rb": 0.9326811929995529,8998 "spec/models/group_deploy_token_spec.rb": 1.1271376130007411,8999 "spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb": 1.7524550870002713,9000 "spec/serializers/merge_request_sidebar_basic_entity_spec.rb": 1.8963666729996476,9001 "spec/graphql/types/work_item_id_type_spec.rb": 0.9388697520007554,9002 "spec/graphql/types/release_asset_link_type_spec.rb": 0.4229330359994492,9003 "spec/services/projects/enable_deploy_key_service_spec.rb": 1.911868121000225,9004 "spec/workers/hashed_storage/project_rollback_worker_spec.rb": 1.6544289680005022,9005 "spec/services/metrics/users_starred_dashboards/delete_service_spec.rb": 1.2241372020007475,9006 "spec/workers/import_issues_csv_worker_spec.rb": 1.7796948949999205,9007 "spec/services/clusters/agents/create_activity_event_service_spec.rb": 1.5325739109994174,9008 "spec/services/achievements/revoke_service_spec.rb": 1.7348298390006676,9009 "spec/lib/gitlab/git/pre_receive_error_spec.rb": 0.5536283319997892,9010 "spec/graphql/resolvers/crm/contact_state_counts_resolver_spec.rb": 1.1476175609996062,9011 "spec/lib/gitlab/sourcegraph_spec.rb": 0.7458691419997194,9012 "spec/lib/api/every_api_endpoint_spec.rb": 1.0319786029995157,9013 "spec/graphql/mutations/user_callouts/create_spec.rb": 1.259345528999802,9014 "spec/serializers/rollout_status_entity_spec.rb": 0.7005959569996776,9015 "spec/graphql/mutations/terraform/state/delete_spec.rb": 1.1276548320001893,9016 "spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb": 0.6782899199997701,9017 "spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb": 1.0080722550001155,9018 "spec/lib/gitlab/exception_log_formatter_spec.rb": 0.677781338999921,9019 "spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb": 1.3952071949997844,9020 "spec/models/releases/evidence_spec.rb": 1.331016740999985,9021 "spec/graphql/resolvers/project_pipelines_resolver_spec.rb": 1.5423971899999742,9022 "spec/lib/gitlab/shard_health_cache_spec.rb": 0.9878932479996365,9023 "spec/models/work_items/widgets/start_and_due_date_spec.rb": 0.9904126069995982,9024 "spec/services/achievements/create_service_spec.rb": 0.9539453710003727,9025 "spec/serializers/admin/abuse_report_serializer_spec.rb": 1.2039956749995326,9026 "spec/lib/gitlab/legacy_github_import/label_formatter_spec.rb": 0.9051287160000356,9027 "spec/finders/packages/composer/packages_finder_spec.rb": 1.2913472260006529,9028 "spec/lib/bulk_imports/pipeline/extracted_data_spec.rb": 0.503741087999515,9029 "spec/scripts/lib/glfm/shared_spec.rb": 0.711312946000362,9030 "spec/tooling/lib/tooling/test_map_generator_spec.rb": 0.8068029659998501,9031 "spec/lib/gitlab/import_export/version_checker_spec.rb": 0.5027362269993318,9032 "spec/models/users/banned_user_spec.rb": 0.8907150969998838,9033 "spec/models/token_with_iv_spec.rb": 0.6247931549996792,9034 "spec/lib/gitlab/jwt_token_spec.rb": 0.7359105939995061,9035 "spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb": 1.0095888850000847,9036 "spec/services/webauthn/register_service_spec.rb": 0.8242966140005592,9037 "spec/workers/ci/delete_objects_worker_spec.rb": 0.5056143270003304,9038 "spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb": 0.5754347000001871,9039 "spec/lib/api/entities/application_setting_spec.rb": 0.9448487919999025,9040 "spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb": 0.8116349050005738,9041 "spec/lib/gitlab/graphql/mount_mutation_spec.rb": 0.7298297239995009,9042 "spec/graphql/types/permission_types/base_permission_type_spec.rb": 0.6313040939994607,9043 "spec/lib/gitlab/kroki_spec.rb": 0.48495786900002713,9044 "spec/lib/gitlab/ci/config/entry/product/variables_spec.rb": 0.46096209200004523,9045 "spec/graphql/types/merge_requests/assignee_type_spec.rb": 0.8074518159992294,9046 "spec/services/ci/copy_cross_database_associations_service_spec.rb": 1.1718354679996992,9047 "spec/lib/gitlab/ci/config/entry/ports_spec.rb": 0.532417073999568,9048 "spec/lib/api/entities/ci/job_request/port_spec.rb": 0.39516912900035095,9049 "spec/lib/gitlab/usage_data_counters/search_counter_spec.rb": 0.5664863410001999,9050 "spec/graphql/types/projects/fork_details_type_spec.rb": 0.42328996600008395,9051 "spec/helpers/webpack_helper_spec.rb": 0.5181050660003166,9052 "spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb": 0.4857715299995107,9053 "spec/lib/gitlab/ci/build/policy_spec.rb": 0.39320893900003284,9054 "spec/serializers/feature_flags_client_serializer_spec.rb": 0.6625424020003265,9055 "spec/serializers/runner_entity_spec.rb": 0.8501515419993666,9056 "spec/workers/gitlab/github_import/import_note_worker_spec.rb": 0.8989514360000612,9057 "spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb": 0.5522503730007884,9058 "spec/graphql/resolvers/package_details_resolver_spec.rb": 0.6522034519994122,9059 "spec/lib/gitlab/sidekiq_versioning_spec.rb": 0.3100257579999379,9060 "spec/services/clusters/build_service_spec.rb": 0.5822562089997518,9061 "spec/graphql/types/ci/test_case_status_enum_spec.rb": 0.43288107499938633,9062 "spec/graphql/types/container_repository_status_enum_spec.rb": 0.5614422810003816,9063 "spec/graphql/types/description_version_type_spec.rb": 0.4134162269992885,9064 "spec/graphql/types/snippets/blob_action_input_type_spec.rb": 0.5454652840007839,9065 "spec/models/concerns/presentable_spec.rb": 0.43336074599938,9066 "spec/lib/gitlab/backtrace_cleaner_spec.rb": 0.38119367099989176,9067 "spec/helpers/container_registry_helper_spec.rb": 0.37505082199913886,9068 "spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb": 0.3851363309995577,9069 "spec/services/projects/android_target_platform_detector_service_spec.rb": 0.5905962489996455,9070 "spec/lib/gitlab/fogbugz_import/client_spec.rb": 0.3286962459997085,9071 "spec/graphql/types/detployment_tag_type_spec.rb": 0.37290027100061707,9072 "spec/lib/gitlab/database/async_constraints/validators_spec.rb": 0.7355135130001145,9073 "spec/lib/gitlab/kubernetes/tls_secret_spec.rb": 0.4218588869998712,9074 "spec/lib/gitlab/utils/execution_tracker_spec.rb": 0.5718669409998256,9075 "spec/services/wiki_pages/base_service_spec.rb": 0.39883084800021606,9076 "spec/db/production/add_security_training_providers_spec.rb": 0.9111894150000808,9077 "spec/lib/sidebars/groups/super_sidebar_menus/secure_menu_spec.rb": 0.4329705250002007,9078 "spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb": 0.4319845150002948,9079 "spec/rubocop/cop/gitlab/intersect_spec.rb": 0.4338345449996268,9080 "spec/presenters/deploy_key_presenter_spec.rb": 0.4799622600003204,9081 "spec/lib/gitlab/word_diff/segments/newline_spec.rb": 0.5768819700006134,9082 "spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb": 0.6556461519994627,9083 "spec/helpers/abuse_reports_helper_spec.rb": 0.439633433000381059084}9085Knapsack global time execution for tests: 24m 53s9086Pending: (Failures listed here are expected and do not affect your suite's status)9087 1) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes9088 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099089 # ./spec/lib/gitlab/git_access_spec.rb:8529090 2) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the exact protected branch has the correct permissions for admin_without_admin_modes9091 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099092 # ./spec/lib/gitlab/git_access_spec.rb:8529093 3) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes9094 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099095 # ./spec/lib/gitlab/git_access_spec.rb:8529096 4) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes9097 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099098 # ./spec/lib/gitlab/git_access_spec.rb:8529099 5) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes9100 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099101 # ./spec/lib/gitlab/git_access_spec.rb:8529102 6) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the exact protected branch has the correct permissions for admin_without_admin_modes9103 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099104 # ./spec/lib/gitlab/git_access_spec.rb:8529105 7) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feature protected branch has the correct permissions for admin_without_admin_modes9106 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099107 # ./spec/lib/gitlab/git_access_spec.rb:8529108 8) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes9109 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099110 # ./spec/lib/gitlab/git_access_spec.rb:8529111 9) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the wildcard protected branch has the correct permissions for admin_without_admin_modes9112 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099113 # ./spec/lib/gitlab/git_access_spec.rb:8529114 10) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes9115 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099116 # ./spec/lib/gitlab/git_access_spec.rb:8529117 11) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes9118 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099119 # ./spec/lib/gitlab/git_access_spec.rb:8529120 12) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes9121 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099122 # ./spec/lib/gitlab/git_access_spec.rb:8529123 13) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the wildcard protected branch has the correct permissions for admin_without_admin_modes9124 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099125 # ./spec/lib/gitlab/git_access_spec.rb:8529126 14) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feat* protected branch has the correct permissions for admin_without_admin_modes9127 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965099128 # ./spec/lib/gitlab/git_access_spec.rb:8529129 15) gitlab:db namespace rake task mark_migration_complete with a single database marks the migration complete on the given database9130 # Skipping because database ci exists9131 # ./spec/tasks/gitlab/db_rake_spec.rb:319132 16) gitlab:db namespace rake task mark_migration_complete with multiple databases with geo configured does not create a task for the geo database9133 # Skipping because the geo database is not configured9134 # ./spec/tasks/gitlab/db_rake_spec.rb:819135 17) gitlab:db namespace rake task configure with a single database when geo is not configured when the schema is already loaded migrates the database9136 # Skipping because database ci exists9137 # ./spec/tasks/gitlab/db_rake_spec.rb:1439138 18) gitlab:db namespace rake task configure with a single database when geo is not configured when the schema is not loaded loads the schema and seeds the database9139 # Skipping because database ci exists9140 # ./spec/tasks/gitlab/db_rake_spec.rb:1559141 19) gitlab:db namespace rake task configure with a single database when geo is not configured when only a single table is present loads the schema and seeds the database9142 # Skipping because database ci exists9143 # ./spec/tasks/gitlab/db_rake_spec.rb:1679144 20) gitlab:db namespace rake task configure with a single database when geo is not configured when loading the schema fails does not seed the database9145 # Skipping because database ci exists9146 # ./spec/tasks/gitlab/db_rake_spec.rb:1799147 21) gitlab:db namespace rake task configure with a single database when geo is not configured SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set when the schema is not loaded adds the post deployment migration path before schema load9148 # Skipping because database ci exists9149 # ./spec/tasks/gitlab/db_rake_spec.rb:2029150 22) gitlab:db namespace rake task configure with a single database when geo is not configured SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set when the schema is loaded ignores post deployment migrations9151 # Skipping because database ci exists9152 # ./spec/tasks/gitlab/db_rake_spec.rb:2179153 23) gitlab:db namespace rake task configure with a single database when geo is configured when the main database is also configured only configures the main database9154 # Skipping because database ci exists9155 # ./spec/tasks/gitlab/db_rake_spec.rb:2399156 24) gitlab:db namespace rake task configure with multiple databases when geo is configured does not run tasks against geo9157 # Skipping because the geo database is not configured9158 # ./spec/tasks/gitlab/db_rake_spec.rb:3419159 25) gitlab:db namespace rake task drop_tables with a single database drops all objects for the database9160 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup9161 # ./spec/tasks/gitlab/db_rake_spec.rb:6059162 26) gitlab:db namespace rake task drop_tables with multiple databases with geo configured does not create a task for the geo database9163 # Skipping because the geo database is not configured9164 # ./spec/tasks/gitlab/db_rake_spec.rb:6539165 27) gitlab:db namespace rake task create_dynamic_partitions with a single database delegates syncing of partitions without limiting databases9166 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup9167 # ./spec/tasks/gitlab/db_rake_spec.rb:6819168 28) gitlab:db namespace rake task create_dynamic_partitions with geo configured does not create a task for the geo database9169 # Skipping because the geo database is not configured9170 # ./spec/tasks/gitlab/db_rake_spec.rb:7159171 29) gitlab:db namespace rake task reindex with multiple databases with geo configured does not create a task for the geo database9172 # Skipping because the geo database is not configured9173 # ./spec/tasks/gitlab/db_rake_spec.rb:7859174 30) gitlab:db namespace rake task execute_async_index_operations with geo configured does not create a task for the geo database9175 # Skipping because the geo database is not configured9176 # ./spec/tasks/gitlab/db_rake_spec.rb:8789177 31) gitlab:db namespace rake task validate_async_constraints with geo configured does not create a task for the geo database9178 # Skipping because the geo database is not configured9179 # ./spec/tasks/gitlab/db_rake_spec.rb:9529180 32) gitlab:db namespace rake task with multiple databases db:migrate:geo does not invoke gitlab:db:create_dynamic_partitions9181 # Skipping because the geo database is not configured9182 # ./spec/tasks/gitlab/db_rake_spec.rb:11509183 33) Ci::BuildTraceMetadata partitioning assigns the same partition id as the one that build has9184 # Skipping partitioning tests until `ci_builds` is partitioned9185 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9186 RSpec::Core::Pending::SkipDeclaredInExample9187 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9188 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9189 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9190 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9191 34) LfsObjectUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9192 # No pattern provided, skipping.9193 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89194 35) LfsObjectUploader behaves like builds correct paths #relative_path is relative9195 # Path not set, skipping.9196 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409197 36) LfsObjectUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9198 # No pattern provided, skipping.9199 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89200 37) LfsObjectUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9201 # No pattern provided, skipping.9202 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89203 38) LfsObjectUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9204 # No pattern provided, skipping.9205 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89206 39) LfsObjectUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9207 # No pattern provided, skipping.9208 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89209 40) LfsObjectUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 9210 # No pattern provided, skipping.9211 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89212 41) LfsObjectUploader object store is REMOTE behaves like builds correct paths #relative_path is relative9213 # Path not set, skipping.9214 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409215 42) LfsObjectUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9216 # No pattern provided, skipping.9217 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89218 43) LfsObjectUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9219 # No pattern provided, skipping.9220 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89221Finished in 24 minutes 58 seconds (files took 51.82 seconds to load)92223699 examples, 0 failures, 43 pending9223Randomized with seed 2279224[TEST PROF INFO] Time spent in factories: 13:05.122 (52.13% of total time)9225RSpec exited with 0.9226No examples to retry, congrats!9228Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9229Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9231Uploading artifacts...9232coverage/: found 5 matching artifact files and directories 9233crystalball/: found 2 matching artifact files and directories 9234deprecations/: found 3 matching artifact files and directories 9235knapsack/: found 3 matching artifact files and directories 9236WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9237rspec/: found 14 matching artifact files and directories 9238WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9239log/*.log: found 18 matching artifact files and directories 9240WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4101394784/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9241WARNING: Retrying... context=artifacts-uploader error=request redirected9242Uploading artifacts as "archive" to coordinator... 201 Created id=4101394784 responseStatus=201 Created token=64_VzVRA9243Uploading artifacts...9244rspec/junit_rspec.xml: found 1 matching artifact files and directories 9245WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4101394784/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9246WARNING: Retrying... context=artifacts-uploader error=request redirected9247Uploading artifacts as "junit" to coordinator... 201 Created id=4101394784 responseStatus=201 Created token=64_VzVRA9249Job succeeded