rspec unit pg13 23/28
Passed Started
by
@mbobin
Marius Bobin
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 4bq1s9yM, system ID: s_9d15f3e4e7ae3 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 registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:73740c557807c4bc5d692f263c0e35454270600da4b22bbe952331411426c8b5 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:3174001f839c42e299ac06a42f8ded446edfcb33b0eb820874749a3f53eb799c ...11Starting service redis:6.2-alpine ...12Pulling docker image redis:6.2-alpine ...13Using docker image sha256:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...14Waiting for services to be up and running (timeout 30 seconds)...15Authenticating with credentials from job payload (GitLab Registry)16Pulling 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 ...17Using docker image sha256:e2241823d5bdc5e6df7c49ebc7b24c52db10bbb41407a5256c7f2d24ff464f7f 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:f20112d766000374a74ca341735b93b35180b88d806027d821aa8800d0522906 ...19Running on runner-4bq1s9ym-project-278964-concurrent-0 via runner-4bq1s9ym-private-1684160647-b9dccef5...21$ eval "$CI_PRE_CLONE_SCRIPT"22Fetching changes with git depth set to 20...23Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/24Created fresh repository.25remote: Enumerating objects: 172010, done. 26remote: Counting objects: 100% (172010/172010), done. 27remote: Compressing objects: 100% (114149/114149), done. 28remote: Total 172010 (delta 83677), reused 113010 (delta 51255), pack-reused 0 29Receiving objects: 100% (172010/172010), 133.76 MiB | 30.02 MiB/s, done.30Resolving deltas: 100% (83677/83677), done.32 * [new ref] refs/pipelines/867893948 -> refs/pipelines/86789394833 * [new branch] master -> origin/master34Checking out 70965bdb as detached HEAD (ref is master)...35Skipping Git submodules setup36$ git remote set-url origin "${CI_REPOSITORY_URL}"38Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...39Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 40Successfully extracted cache42Downloading artifacts for compile-test-assets (4287782955)...43Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4287782955 responseStatus=200 OK token=64_FR4VD44Downloading artifacts for retrieve-tests-metadata (4287782976)...45Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4287782976 responseStatus=200 OK token=64_FR4VD46Downloading artifacts for setup-test-env (4287782967)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4287782967 responseStatus=200 OK token=64_FR4VD49Using docker image sha256:e2241823d5bdc5e6df7c49ebc7b24c52db10bbb41407a5256c7f2d24ff464f7f 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:f20112d766000374a74ca341735b93b35180b88d806027d821aa8800d0522906 ...50$ echo $FOSS_ONLY51$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb52$ export GOPATH=$CI_PROJECT_DIR/.go53$ mkdir -p $GOPATH54$ source scripts/utils.sh55$ source scripts/prepare_build.sh711Using decomposed database config (config/database.yml.decomposed-postgresql)712Geo DB won't be set up.713Embedding DB won't be set up.729$ source ./scripts/rspec_helpers.sh730$ run_timed_command "gem install knapsack --no-document"731$ gem install knapsack --no-document732Successfully installed knapsack-4.0.07331 gem installed734==> 'gem install knapsack --no-document' succeeded in 1 seconds.735$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"737$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"742$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"743$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"744SKIP_FLAKY_TESTS_AUTOMATICALLY: 745RETRY_FAILED_TESTS_IN_NEW_PROCESS: true746KNAPSACK_GENERATE_REPORT: true747FLAKY_RSPEC_GENERATE_REPORT: true748KNAPSACK_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.rb749KNAPSACK_LOG_LEVEL: debug750KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_23_28_report.json751FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json752FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_23_28_report.json753NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_23_28_report.json754SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13_23_28.txt755CRYSTALBALL: 756RSPEC_TESTS_MAPPING_ENABLED: 757RSPEC_TESTS_FILTER_FILE: 758Running 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 -- spec/models/ci/build_spec.rb spec/models/note_spec.rb spec/services/ci/create_pipeline_service_spec.rb spec/uploaders/design_management/design_v432x230_uploader_spec.rb spec/services/issues/close_service_spec.rb spec/services/notes/create_service_spec.rb spec/lib/gitlab/import_export/project/tree_saver_spec.rb spec/services/draft_notes/publish_service_spec.rb spec/services/ci/runners/create_runner_service_spec.rb spec/finders/ci/runners_finder_spec.rb spec/models/alert_management/alert_spec.rb spec/lib/gitlab/gpg/commit_spec.rb spec/lib/gitlab/relative_positioning/item_context_spec.rb spec/serializers/group_child_entity_spec.rb spec/lib/gitlab/reference_extractor_spec.rb spec/models/integrations/field_spec.rb spec/models/integrations/every_integration_spec.rb spec/models/integrations/bamboo_spec.rb spec/lib/gitlab/background_migration/set_legacy_open_source_license_available_for_non_public_projects_spec.rb spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb spec/lib/gitlab/ci/status/external/factory_spec.rb spec/models/resource_state_event_spec.rb spec/lib/gitlab/git/branch_spec.rb spec/lib/gitlab/database/transaction/observer_spec.rb spec/models/key_spec.rb spec/lib/gitlab/ci/config/entry/bridge_spec.rb spec/services/todos/destroy/group_private_service_spec.rb spec/models/ci/build_metadata_spec.rb spec/lib/gitlab/sql/pattern_spec.rb spec/lib/banzai/reference_parser/merge_request_parser_spec.rb spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb spec/lib/gitlab/email/handler/create_issue_handler_spec.rb spec/services/issues/duplicate_service_spec.rb spec/models/project_import_state_spec.rb spec/lib/gitlab/data_builder/build_spec.rb spec/graphql/gitlab_schema_spec.rb spec/services/notes/build_service_spec.rb spec/lib/gitlab/pagination/keyset/paginator_spec.rb spec/graphql/types/base_field_spec.rb spec/lib/gitlab/ci/variables/builder_spec.rb spec/serializers/environment_entity_spec.rb spec/validators/addressable_url_validator_spec.rb spec/lib/gitlab/ci/build/auto_retry_spec.rb spec/lib/bulk_imports/clients/http_spec.rb spec/lib/banzai/filter/sanitization_filter_spec.rb spec/presenters/projects/settings/deploy_keys_presenter_spec.rb spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb spec/services/todos/destroy/project_private_service_spec.rb spec/lib/gitlab/database/bulk_update_spec.rb spec/models/analytics/cycle_analytics/aggregation_spec.rb spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb spec/lib/gitlab/redis/cache_spec.rb spec/lib/gitlab/sidekiq_status_spec.rb spec/services/commits/cherry_pick_service_spec.rb spec/services/packages/update_package_file_service_spec.rb spec/views/ci/status/_badge.html.haml_spec.rb spec/helpers/routing/pseudonymization_helper_spec.rb spec/workers/packages/nuget/extraction_worker_spec.rb spec/services/repositories/housekeeping_service_spec.rb spec/models/integrations/assembla_spec.rb spec/lib/gitlab/auth/ldap/user_spec.rb spec/initializers/enumerator_next_patch_spec.rb spec/serializers/web_ide_terminal_entity_spec.rb spec/services/integrations/test/project_service_spec.rb spec/lib/sidebars/projects/super_sidebar_panel_spec.rb spec/graphql/resolvers/project_packages_resolver_spec.rb spec/services/packages/create_dependency_service_spec.rb spec/policies/board_policy_spec.rb spec/graphql/types/merge_request_type_spec.rb spec/presenters/snippet_blob_presenter_spec.rb spec/graphql/mutations/ci/runner/update_spec.rb spec/lib/gitlab/profiler_spec.rb spec/views/projects/commits/_commit.html.haml_spec.rb spec/lib/gitlab/auth/saml/identity_linker_spec.rb spec/services/projects/deploy_tokens/create_service_spec.rb spec/serializers/merge_request_serializer_spec.rb spec/models/lfs_file_lock_spec.rb spec/services/projects/hashed_storage/base_attachment_service_spec.rb spec/tooling/lib/tooling/mappings/graphql_base_type_mappings_spec.rb spec/lib/gitlab/content_security_policy/config_loader_spec.rb spec/lib/gitlab/exceptions_app_spec.rb spec/finders/users_star_projects_finder_spec.rb spec/lib/gitlab/utils/username_and_email_generator_spec.rb spec/graphql/types/terraform/state_version_type_spec.rb spec/lib/gitlab/ci/status/stage/play_manual_spec.rb spec/lib/gitlab/api_authentication/token_resolver_spec.rb spec/lib/gitlab/ci/config/extendable/entry_spec.rb spec/lib/gitlab/auth/ldap/authentication_spec.rb spec/graphql/resolvers/crm/contacts_resolver_spec.rb spec/views/projects/pages/new.html.haml_spec.rb spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb spec/lib/gitlab/import_export/shared_spec.rb spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb spec/finders/packages/go/version_finder_spec.rb spec/views/projects/pipelines/show.html.haml_spec.rb spec/presenters/ci/variable_presenter_spec.rb spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb spec/tooling/danger/sidekiq_args_spec.rb spec/services/web_hooks/destroy_service_spec.rb spec/lib/bulk_imports/pipeline/runner_spec.rb spec/services/work_items/widgets/description_service/update_service_spec.rb spec/lib/gitlab/legacy_github_import/client_spec.rb spec/lib/gitlab/markup_helper_spec.rb spec/lib/security/ci_configuration/sast_build_action_spec.rb spec/services/work_items/widgets/notifications_service/update_service_spec.rb spec/helpers/graph_helper_spec.rb spec/graphql/mutations/achievements/delete_spec.rb spec/services/packages/composer/version_parser_service_spec.rb spec/models/work_items/widgets/award_emoji_spec.rb spec/models/aws/role_spec.rb spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb spec/lib/gitlab/mail_room/authenticator_spec.rb spec/lib/gitlab/kubernetes/service_account_spec.rb spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb spec/presenters/ci/bridge_presenter_spec.rb spec/services/packages/nuget/metadata_extraction_service_spec.rb spec/models/programming_language_spec.rb spec/finders/autocomplete/deploy_keys_with_write_access_finder_spec.rb spec/services/incident_management/pager_duty/process_webhook_service_spec.rb spec/lib/gitlab/issuable/clone/attributes_rewriter_spec.rb spec/workers/database/batched_background_migration/main_execution_worker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb spec/lib/gitlab/ci/status/pipeline/common_spec.rb spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb spec/lib/gitlab/ci/config/external/rules_spec.rb spec/lib/gitlab/config/entry/factory_spec.rb spec/models/metrics/users_starred_dashboard_spec.rb spec/workers/analytics/usage_trends/counter_job_worker_spec.rb spec/lib/gitlab/access/branch_protection_spec.rb spec/lib/gitlab/ci/status/success_spec.rb spec/lib/gitlab/git/pre_receive_error_spec.rb spec/workers/ci/parse_secure_file_metadata_worker_spec.rb spec/services/projects/group_links/update_service_spec.rb spec/rubocop/cop/graphql/graphql_name_position_spec.rb spec/initializers/net_http_response_patch_spec.rb spec/lib/gitlab/redis/hll_spec.rb spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb spec/workers/error_tracking_issue_link_worker_spec.rb spec/tooling/danger/customer_success_spec.rb spec/views/dashboard/projects/index.html.haml_spec.rb spec/views/profiles/notifications/show.html.haml_spec.rb spec/models/integrations/issue_tracker_data_spec.rb spec/services/system_notes/base_service_spec.rb spec/services/award_emojis/copy_service_spec.rb spec/lib/gitlab/slug/path_spec.rb spec/services/milestones/update_service_spec.rb spec/models/namespaces/sync_event_spec.rb spec/lib/banzai/render_context_spec.rb spec/services/system_notes/zoom_service_spec.rb spec/scripts/lib/glfm/parse_examples_spec.rb spec/lib/gitlab/url_blockers/url_allowlist_spec.rb spec/helpers/ci/secure_files_helper_spec.rb spec/serializers/test_reports_comparer_serializer_spec.rb spec/services/clusters/integrations/create_service_spec.rb spec/lib/csv_builders/stream_spec.rb spec/lib/gitlab/ci/trace/section_parser_spec.rb spec/services/users/update_highest_member_role_service_spec.rb spec/models/concerns/usage_statistics_spec.rb spec/lib/api/validations/validators/array_none_any_spec.rb spec/views/help/drawers.html.haml_spec.rb spec/services/packages/npm/create_metadata_cache_service_spec.rb spec/lib/gitlab/usage_data_counters/source_code_counter_spec.rb spec/views/projects/settings/integrations/edit.html.haml_spec.rb spec/lib/gitlab/utils/mime_type_spec.rb spec/workers/bulk_imports/entity_worker_spec.rb spec/serializers/merge_request_for_pipeline_entity_spec.rb spec/graphql/resolvers/saved_reply_resolver_spec.rb spec/lib/gitlab/memory/reports/heap_dump_spec.rb spec/services/protected_branches/api_service_spec.rb spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb spec/scripts/generate_rspec_pipeline_spec.rb spec/presenters/packages/nuget/service_index_presenter_spec.rb spec/models/error_tracking/client_key_spec.rb spec/workers/gitlab_shell_worker_spec.rb spec/models/concerns/issuable_link_spec.rb spec/graphql/resolvers/design_management/version_resolver_spec.rb spec/models/releases/source_spec.rb spec/workers/personal_access_tokens/expiring_worker_spec.rb spec/lib/gitlab/changelog/generator_spec.rb spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb spec/models/performance_monitoring/prometheus_panel_spec.rb spec/helpers/projects/google_cloud/cloudsql_helper_spec.rb spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb spec/graphql/types/ci/freeze_period_type_spec.rb spec/lib/gitlab/ci/input/arguments/options_spec.rb spec/lib/banzai/pipeline_spec.rb spec/rubocop/cop/prefer_class_methods_over_module_spec.rb spec/views/profiles/keys/_key_details.html.haml_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb spec/lib/gitlab/setup_helper/workhorse_spec.rb spec/workers/namespaces/prune_aggregation_schedules_worker_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb spec/models/ml/candidate_metadata_spec.rb spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb spec/lib/gitlab/metrics/memory_spec.rb spec/models/users/calloutable_spec.rb spec/workers/gitlab/github_gists_import/finish_import_worker_spec.rb spec/models/namespaces/randomized_suffix_path_spec.rb spec/presenters/sentry_error_presenter_spec.rb spec/serializers/group_access_token_entity_spec.rb spec/lib/gitlab/ci/reports/test_failure_history_spec.rb spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb spec/graphql/types/release_assets_type_spec.rb spec/lib/gitlab/database/schema_migrations/migrations_spec.rb spec/services/packages/debian/extract_deb_metadata_service_spec.rb spec/lib/gitlab/word_diff/line_processor_spec.rb spec/models/user_canonical_email_spec.rb spec/graphql/types/branch_protections/push_access_level_type_spec.rb spec/graphql/types/saved_reply_type_spec.rb spec/services/webauthn/register_service_spec.rb spec/lib/system_check_spec.rb spec/rubocop/cop/avoid_becomes_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_project_type_active_metric_spec.rb spec/tooling/danger/specs_spec.rb spec/graphql/types/packages/package_type_spec.rb spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb spec/models/issues/csv_import_spec.rb spec/lib/api/entities/changelog_spec.rb spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb spec/lib/kramdown/kramdown_spec.rb spec/lib/gitlab/graphql/generic_tracing_spec.rb spec/graphql/types/user_callout_feature_name_enum_spec.rb spec/lib/bulk_imports/projects/graphql/get_project_query_spec.rb spec/graphql/types/label_type_spec.rb spec/services/gravatar_service_spec.rb spec/lib/api/entities/projects/topic_spec.rb spec/lib/gitlab/sidekiq_status/client_middleware_spec.rb spec/lib/system_check/app/gitlab_resque_config_exists_check_spec.rb spec/graphql/types/work_items/widgets/notes_type_spec.rb spec/finders/data_transfer/mocked_transfer_finder_spec.rb spec/uploaders/metric_image_uploader_spec.rb spec/lib/gitlab/email/message/build_ios_app_guide_spec.rb spec/graphql/types/mutation_type_spec.rb spec/lib/gitlab/diff/file_collection_sorter_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_triggers_spec.rbKnapsack report generator started!759warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.761Run options: exclude {:quarantine=>true, :level=>"background_migration"}762Test environment set up in 0.751679021 seconds763Ci::Build764 is expected to belong to runner required: false765 is expected to belong to trigger_request required: false766 is expected to belong to erased_by required: false767 is expected to belong to pipeline required: false inverse_of => builds768 is expected to have many needs769 is expected to have many sourced_pipelines class_name => Ci::Sources::Pipeline inverse_of => build770 is expected to have many job_variables771 is expected to have many report_results772 is expected to have many pages_deployments773 is expected to have one deployment774 is expected to have one runner_manager through runner_manager_build775 is expected to have one runner_session776 is expected to have one trace_metadata777 is expected to have one runtime_metadata778 is expected to have one pending_state inverse_of => build779 is expected to have one queuing_entry class_name => Ci::PendingBuild inverse_of => build780 is expected to have one runtime_metadata class_name => Ci::RunningBuild inverse_of => build781 is expected to have many terraform_state_versions inverse_of => build782 is expected to validate that :ref cannot be empty/falsy783 is expected to respond to #has_trace?784 is expected to respond to #trace785 is expected to respond to #set_cancel_gracefully786 is expected to respond to #cancel_gracefully?787 is expected to delegate #merge_request? to the #pipeline object788 is expected to delegate #merge_request_ref? to the #pipeline object789 is expected to delegate #legacy_detached_merge_request_pipeline? to the #pipeline object790 does not generate cross DB queries when a record is created via FactoryBot791 associations792 has a bidirectional relationship with projects793 callbacks794 when running after_create callback795 executes hooks796 status797 when transitioning to any state from running798 removes runner_session799 behaves like has ID tokens800 delegations801 is expected to delegate #id_tokens to the #metadata object, allowing #metadata to return nil802 #id_tokens?803 without metadata804 is expected to be falsy805 with metadata806 when ID tokens exist807 is expected to be truthy808 when ID tokens do not exist809 is expected to be falsy810 #id_tokens=811 assigns the ID tokens to the CI job812 behaves like a retryable job813 #enqueue_immediately?814 defaults to false815 #set_enqueue_immediately!816 changes #enqueue_immediately? to true817 .manual_actions818 is expected to include #<Ci::Build status: "manual", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", up...l, processed: false, scheduling_type: "stage", id: 9, stage_id: 1, partition_id: 100, tag_list: nil>819 is expected to include #<Ci::Build status: "success", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u..., processed: false, scheduling_type: "stage", id: 11, stage_id: 1, partition_id: 100, tag_list: nil>820 is expected not to include #<Ci::Build status: "created", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u..., processed: false, scheduling_type: "stage", id: 13, stage_id: 1, partition_id: 100, tag_list: nil>821 .ref_protected822 when protected is true823 is expected to include #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u..., processed: false, scheduling_type: "stage", id: 16, stage_id: 1, partition_id: 100, tag_list: nil>824 when protected is false825 is expected not to include #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u..., processed: false, scheduling_type: "stage", id: 17, stage_id: 1, partition_id: 100, tag_list: nil>826 when protected is nil827 is expected not to include #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u..., processed: false, scheduling_type: "stage", id: 18, stage_id: 1, partition_id: 100, tag_list: nil>828 .with_downloadable_artifacts829 when job does not have a downloadable artifact830 does not return the job831 when job has a accessibility artifact832 returns the job833 when job has a api_fuzzing artifact834 returns the job835 when job has a archive artifact836 returns the job837 when job has a cobertura artifact838 returns the job839 when job has a codequality artifact840 returns the job841 when job has a container_scanning artifact842 returns the job843 when job has a dast artifact844 returns the job845 when job has a dependency_scanning artifact846 returns the job847 when job has a dotenv artifact848 returns the job849 when job has a junit artifact850 returns the job851 when job has a license_scanning artifact852 returns the job853 when job has a lsif artifact854 returns the job855 when job has a metrics artifact856 returns the job857 when job has a performance artifact858 returns the job859 when job has a browser_performance artifact860 returns the job861 when job has a load_performance artifact862 returns the job863 when job has a sast artifact864 returns the job865 when job has a secret_detection artifact866 returns the job867 when job has a requirements artifact868 returns the job869 when job has a requirements_v2 artifact870 returns the job871 when job has a cluster_image_scanning artifact872 returns the job873 when job has a cyclonedx artifact874 returns the job875 when job has a non-downloadable artifact876 does not return the job877 .with_erasable_artifacts878 when job does not have any artifacts879 does not return the job880 when job has a archive artifact881 returns the job882 when job has a metadata artifact883 returns the job884 when job has a junit artifact885 returns the job886 when job has a sast artifact887 returns the job888 when job has a dependency_scanning artifact889 returns the job890 when job has a container_scanning artifact891 returns the job892 when job has a dast artifact893 returns the job894 when job has a codequality artifact895 returns the job896 when job has a license_scanning artifact897 returns the job898 when job has a performance artifact899 returns the job900 when job has a metrics artifact901 returns the job902 when job has a metrics_referee artifact903 returns the job904 when job has a network_referee artifact905 returns the job906 when job has a lsif artifact907 returns the job908 when job has a dotenv artifact909 returns the job910 when job has a cobertura artifact911 returns the job912 when job has a terraform artifact913 returns the job914 when job has a accessibility artifact915 returns the job916 when job has a cluster_applications artifact917 returns the job918 when job has a secret_detection artifact919 returns the job920 when job has a requirements artifact921 returns the job922 when job has a coverage_fuzzing artifact923 returns the job924 when job has a browser_performance artifact925 returns the job926 when job has a load_performance artifact927 returns the job928 when job has a api_fuzzing artifact929 returns the job930 when job has a cluster_image_scanning artifact931 returns the job932 when job has a cyclonedx artifact933 returns the job934 when job has a requirements_v2 artifact935 returns the job936 when job has a non-erasable artifact937 does not return the job938 .with_any_artifacts939 when job does not have any artifacts940 does not return the job941 when job has a archive artifact942 returns the job943 when job has a metadata artifact944 returns the job945 when job has a trace artifact946 returns the job947 when job has a junit artifact948 returns the job949 when job has a sast artifact950 returns the job951 when job has a dependency_scanning artifact952 returns the job953 when job has a container_scanning artifact954 returns the job955 when job has a dast artifact956 returns the job957 when job has a codequality artifact958 returns the job959 when job has a license_scanning artifact960 returns the job961 when job has a performance artifact962 returns the job963 when job has a metrics artifact964 returns the job965 when job has a metrics_referee artifact966 returns the job967 when job has a network_referee artifact968 returns the job969 when job has a lsif artifact970 returns the job971 when job has a dotenv artifact972 returns the job973 when job has a cobertura artifact974 returns the job975 when job has a terraform artifact976 returns the job977 when job has a accessibility artifact978 returns the job979 when job has a cluster_applications artifact980 returns the job981 when job has a secret_detection artifact982 returns the job983 when job has a requirements artifact984 returns the job985 when job has a coverage_fuzzing artifact986 returns the job987 when job has a browser_performance artifact988 returns the job989 when job has a load_performance artifact990 returns the job991 when job has a api_fuzzing artifact992 returns the job993 when job has a cluster_image_scanning artifact994 returns the job995 when job has a cyclonedx artifact996 returns the job997 when job has a requirements_v2 artifact998 returns the job999 .with_live_trace1000 when build has live trace1001 selects the build1002 when build does not have live trace1003 does not select the build1004 .with_stale_live_trace1005 when build has a stale live trace1006 selects the build1007 when build does not have a stale live trace1008 does not select the build1009 .license_management_jobs1010 returns license_scanning jobs1011 returns license_management jobs1012 doesnt return filtered out jobs1013 .finished_before1014 when build has finished one day ago1015 selects the build1016 when build has finished 30 minutes ago1017 returns an empty array1018 when build is still running1019 returns an empty array1020 .with_exposed_artifacts1021 when some jobs have exposed artifacs and some not1022 selects only the jobs with exposed artifacts1023 when job does not expose artifacts1024 returns an empty array1025 .with_artifacts1026 returns artifacts matching the given scope1027 when there are multiple builds containing artifacts1028 does not execute a query for selecting job artifact one by one1029 .with_needs1030 when passing build name1031 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u... processed: false, scheduling_type: "stage", id: 138, stage_id: 1, partition_id: 100, tag_list: nil>1032 when not passing any build name1033 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u... processed: false, scheduling_type: "stage", id: 140, stage_id: 1, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u... processed: false, scheduling_type: "stage", id: 141, stage_id: 1, partition_id: 100, tag_list: nil>1034 when not matching build name1035 is expected to be empty1036 .without_needs1037 when no build_need is created1038 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-05-15 08:50:29.000000000 +0000", u...l, processed: false, scheduling_type: "stage", id: 1, stage_id: 1, partition_id: 100, tag_list: nil>1039 when a build_need is created1040 is expected to be empty1041 #stick_build_if_status_changed1042 sticks the build if the status changed1043 #enqueue1044 build has unmet prerequisites1045 transitions to preparing1046 does not push build to the queue1047 build has no prerequisites1048 transitions to pending1049 pushes build to a queue1050 when build status transition fails1051 does not push build to a queue1052 when there is a queuing entry already present1053 does not raise an error1054 when both failure scenario happen at the same time1055 raises stale object error exception1056 #enqueue_preparing1057 build completed prerequisites1058 transitions to pending1059 build did not complete prerequisites1060 remains in preparing1061 #actionize1062 when build is a created1063 makes build a manual action1064 when build is not created1065 does not change build status1066 #run1067 when build has been just created1068 creates queuing entry and then removes it1069 when build status transition fails1070 does not remove build from a queue1071 when build has been picked by a shared runner1072 creates runtime metadata entry1073 #drop1074 when has a runtime tracking entry1075 removes runtime tracking entry1076 when a failure reason is provided1077 when a failure reason is a symbol1078 correctly sets a failure reason1079 when a failure reason is an object1080 correctly sets a failure reason1081 #outdated_deployment?1082 when build has no environment1083 is expected to be falsey1084 when project has forward deployment disabled1085 is expected to be falsey1086 when build is not an outdated deployment1087 is expected to be falsey1088 when build is older than the latest deployment and still pending status1089 is expected to be truthy1090 when build is older than the latest deployment but succeeded once1091 returns false for allowing rollback1092 #schedulable?1093 when build is schedulable1094 is expected to be truthy1095 when build is not schedulable1096 is expected to be falsy1097 #schedule1098 transits to scheduled1099 updates scheduled_at column1100 schedules BuildScheduleWorker at the right time1101 #unschedule1102 when build is scheduled1103 cleans scheduled_at column1104 transits to manual1105 when build is not scheduled1106 does not transit status1107 #options_scheduled_at1108 when start_in is 1 day1109 returns date after 1 day1110 when start_in is 1 week1111 returns date after 1 week1112 #enqueue_scheduled1113 when build is scheduled and the right time has not come yet1114 does not transits the status1115 when build is scheduled and the right time has already come1116 cleans scheduled_at column1117 transits to pending1118 build has unmet prerequisites1119 transits to preparing1120 #any_runners_online?1121 caches the result in Redis1122 when no runners1123 is expected to be falsey1124 when there is a runner1125 is expected to be truthy1126 that is inactive1127 is expected to be falsey1128 that is not online1129 is expected to be falsey1130 that cannot handle build1131 is expected to be falsey1132 #any_runners_available?1133 caches the result in Redis1134 when no runners1135 is expected to be falsey1136 when there are runners1137 is expected to be truthy1138 #artifacts?1139 when new artifacts are used1140 artifacts archive does not exist1141 is expected to be falsy1142 artifacts archive exists1143 is expected to be truthy1144 is expired1145 is expected to be falsy1146 #locked_artifacts?1147 when pipeline is artifacts_locked1148 artifacts archive does not exist1149 is expected to be falsy1150 artifacts archive exists1151 is expected to be truthy1152 when pipeline is unlocked1153 artifacts archive does not exist1154 is expected to be falsy1155 artifacts archive exists1156 is expected to be falsy1157 #available_artifacts?1158 when artifacts are not expired1159 when artifacts exist1160 is expected to be truthy1161 when artifacts do not exist1162 is expected to be falsey1163 when artifacts are expired1164 when artifacts are not locked1165 is expected to be falsey1166 when artifacts are locked1167 when artifacts exist1168 is expected to be truthy1169 when artifacts do not exist1170 is expected to be falsey1171 #browsable_artifacts?1172 artifacts metadata does exists1173 is expected to be truthy1174 #artifacts_public?1175 artifacts with defaults1176 is expected to be truthy1177 non public artifacts1178 is expected to be falsey1179 #artifacts_expired?1180 is expired1181 is expected to be truthy1182 is not expired1183 is expected to be falsey1184 #artifacts_metadata?1185 artifacts metadata does not exist1186 is expected to be falsy1187 artifacts archive is a zip file and metadata exists1188 is expected to be truthy1189 #artifacts_expire_in1190 is expected to be nil1191 when artifacts_expire_at is specified1192 is expected to be within 5 of 604799.999680151193 #artifacts_expire_in=1194 when assigning valid duration1195 when assigning invalid duration1196 when resetting value1197 when setting to 01198 #commit1199 returns commit pipeline has been created for1200 #cache1201 when build has cache1202 when build has multiple caches1203 is expected to match [(a hash including {:key => "key-1-non_protected"}), (a hash including {:key => "key2-1-non_protected"})]1204 when pipeline is on a protected ref1205 without the `unprotect` option1206 is expected to all a hash including {:key => (a string matching /-protected$/)}1207 and the caches have fallback keys1208 is expected to all a hash including {:key => (a string matching /-protected$/), :fallback_keys => #<RSpec::Mocks::Argume...otected$/, @expected_captures=nil, @actual="key5-1-protected", @matcher_name=:a_string_matching>>]>}1209 and the cache has the `unprotect` option1210 is expected to all a hash including {:key => (a string matching /-non_protected$/)}1211 and the caches have fallback keys1212 is expected to all a hash including {:key => (a string matching /-non_protected$/), :fallback_keys => #<RSpec::Mocks::Ar...ted$/, @expected_captures=nil, @actual="key5-1-non_protected", @matcher_name=:a_string_matching>>]>}1213 when pipeline is not on a protected ref1214 is expected to all a hash including {:key => (a string matching /-non_protected$/)}1215 and the caches have fallback keys1216 is expected to all a hash including {:key => (a string matching /-non_protected$/), :fallback_keys => #<RSpec::Mocks::Ar...ted$/, @expected_captures=nil, @actual="key5-1-non_protected", @matcher_name=:a_string_matching>>]>}1217 when separated caches are disabled1218 running on protected ref1219 is expected to have no type suffix1220 and the caches have fallback keys1221 is expected to match [(a hash including {:key => "key-1", :fallback_keys => ["key3-1", "key4-1"]}), (a hash including {:key => "key2-1", :fallback_keys => ["key5-1", "key6-1"]})]1222 running on not protected ref1223 is expected to have no type suffix1224 and the caches have fallback keys1225 is expected to match [(a hash including {:key => "key-1", :fallback_keys => ["key3-1", "key4-1"]}), (a hash including {:key => "key2-1", :fallback_keys => ["key5-1", "key6-1"]})]1226 when project has jobs_cache_index1227 is expected to be a kind of Array and all include {:key => (a string matching /^key-1-(?>protected|non_protected)/)}1228 and the cache have fallback keys1229 is expected to be a kind of Array and all include {:key => (a string matching /^key-1-(?>protected|non_protected)/), :fallback_keys => #<RSpec:...ted)/, @expected_captures=nil, @actual="key1-1-non_protected", @matcher_name=:a_string_matching>>]>}1230 when project does not have jobs_cache_index1231 is expected to eq [{:fallback_keys=>[], :key=>"key-non_protected", :paths=>["public"], :policy=>"pull-push"}]1232 and the cache have fallback keys1233 is expected to eq [{:fallback_keys=>["key1-non_protected", "key2-non_protected"], :key=>"key-non_protected", :paths=>["public"], :policy=>"pull-push"}]1234 when build does not have cache1235 is expected to be empty1236 #fallback_cache_keys_defined?1237 returns false when fallback keys are not defined1238 with fallbacks keys1239 returns true when fallback keys are defined1240 #triggered_by?1241 when user is owner1242 is expected to be truthy1243 when user is not owner1244 is expected to be falsy1245 #detailed_status1246 returns a detailed status1247 #update_coverage1248 regarding coverage_regex's value,1249 saves the correct extracted coverage value1250 #trace1251 is expected to be a kind of Gitlab::Ci::Trace1252 #has_trace?1253 expect to call exist? method1254 #has_live_trace?1255 is expected to be truthy1256 when build does not have live trace1257 is expected to be falsy1258 #has_archived_trace?1259 is expected to be truthy1260 when build does not have archived trace1261 is expected to be falsy1262 #has_job_artifacts?1263 when build has a job artifact1264 is expected to be truthy1265 #has_test_reports?1266 when build has a test report1267 is expected to be truthy1268 when build does not have a test report1269 is expected to be falsey1270 #hide_secrets1271 hide runners token1272 is expected to match /^new x+ data$/1273 increments trace mutation metric1274 hide build token1275 is expected to match /^new x+ data$/1276 increments trace mutation metric1277 when build does not include secrets1278 does not mutate trace1279 does not increment trace mutation metric1280 state transition metrics1281 state: :success!, report_count: 1, trait: :sast1282 when transitioning to success!1283 increments build_completed_report_type metric1284 state: :cancel!, report_count: 1, trait: :sast1285 when transitioning to cancel!1286 increments build_completed_report_type metric1287 state: :drop!, report_count: 2, trait: :multiple_report_artifacts1288 when transitioning to drop!1289 increments build_completed_report_type metric1290 state: :success!, report_count: 0, trait: :allowed_to_fail1291 when transitioning to success!1292 increments build_completed_report_type metric1293 state: :skip!, report_count: 0, trait: :pending1294 when transitioning to skip!1295 increments build_completed_report_type metric1296 state transition as a deployable1297 has deployments record with created status1298 when transits to running1299 transits deployment status to running1300 behaves like avoid deadlock1301 executes UPDATE in the right order1302 when deployment is already running state1303 does not change deployment status and tracks an error1304 when transits to success1305 transits deployment status to success1306 behaves like avoid deadlock1307 executes UPDATE in the right order1308 behaves like calling proper BuildFinishedWorker1309 calls Ci::BuildFinishedWorker1310 when transits to failed1311 transits deployment status to failed1312 behaves like avoid deadlock1313 executes UPDATE in the right order1314 behaves like calling proper BuildFinishedWorker1315 calls Ci::BuildFinishedWorker1316 when transits to skipped1317 transits deployment status to skipped1318 behaves like avoid deadlock1319 executes UPDATE in the right order1320 when transits to canceled1321 transits deployment status to canceled1322 behaves like avoid deadlock1323 executes UPDATE in the right order1324 behaves like calling proper BuildFinishedWorker1325 calls Ci::BuildFinishedWorker1326 when transits from skipped to created to running1327 during skipped to created1328 transitions to created1329 during created to running1330 transitions to running and calls webhook1331 #on_stop1332 when a job has a specification that it can be stopped from the other job1333 returns the other job name1334 when a job does not have environment information1335 returns nil1336 #environment_tier_from_options1337 is expected to eq "production"1338 when options does not include deployment_tier1339 is expected to be nil1340 #environment_tier1341 is expected to eq "production"1342 when options does not include deployment_tier1343 uses tier from environment1344 when persisted environment is absent1345 is expected to be nil1346 environment1347 #has_environment_keyword?1348 when environment is defined1349 is expected to be truthy1350 when environment is not defined1351 is expected to be falsey1352 #expanded_environment_name1353 when environment uses $CI_COMMIT_REF_NAME1354 is expected to eq "review/master"1355 when environment uses yaml_variables containing symbol keys1356 returns an expanded environment name with a list of variables1357 when build metadata has already persisted the expanded environment name1358 returns a persisted expanded environment name without a list of variables1359 when using persisted variables1360 is expected to eq "review/x"1361 when FF `ci_remove_legacy_predefined_variables` is disabled1362 when using persisted variables1363 is expected to eq "review/x"1364 when environment name uses a nested variable1365 is expected to eq "review/master"1366 #expanded_kubernetes_namespace1367 environment and namespace are not set1368 is expected to be nil1369 environment is specified1370 namespace is not set1371 is expected to be nil1372 namespace is provided1373 with a static value1374 is expected to eq "production"1375 with a dynamic value1376 is expected to eq "deploy-master"1377 #deployment_job?1378 when environment is defined1379 no action is defined1380 is expected to be truthy1381 and start action is defined1382 is expected to be truthy1383 when environment is not defined1384 is expected to be falsey1385 #stops_environment?1386 when environment is defined1387 no action is defined1388 is expected to be falsey1389 and stop action is defined1390 is expected to be truthy1391 when environment is not defined1392 is expected to be falsey1393 erasable build1394 build is not erasable1395 #erasable?1396 is expected to eq false1397 build is erasable1398 new artifacts1399 #erasable?1400 is expected to be truthy1401 #erased?1402 job has not been erased1403 is expected to be falsey1404 job has been erased1405 is expected to be truthy1406 flags1407 #cancelable?1408 when build is cancelable1409 when build is pending1410 is expected to be cancelable1411 when build is running1412 is expected to be cancelable1413 when build is created1414 is expected to be cancelable1415 when build is waiting for resource1416 is expected to be cancelable1417 when build is not cancelable1418 when build is successful1419 is expected not to be cancelable1420 when build is failed1421 is expected not to be cancelable1422 #action?1423 when is set to manual1424 is expected to be truthy1425 when is set to delayed1426 is expected to be truthy1427 when set to something else1428 is expected to be falsey1429 #runner_manager1430 is expected to eq #<Ci::RunnerManager id: 1, runner_id: 8, executor_type: nil, created_at: "2023-05-15 17:05:15.7176022...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_509d3e5671">1431 #tag_list1432 when tags are preloaded1433 does not trigger queries1434 when tags are not preloaded1435 is expected to eq ["tag"]1436 #save_tags1437 saves tags1438 strips tags1439 with BulkInsertableTags.with_bulk_insert_tags1440 does not save_tags1441 #has_tags?1442 when build has tags1443 is expected to have tags1444 when build does not have tags1445 is expected not to have tags1446 build auto retry feature1447 with deployment job1448 creates a deployment when a build is dropped1449 #retries_count1450 when build has been retried several times1451 reports a correct retry count value1452 when build has not been retried1453 returns zero1454 .keep_artifacts!1455 resets expire_at1456 does not reset expire_at for other builds1457 when having artifacts files1458 resets dependent objects1459 does not reset dependent object for other builds1460 #keep_artifacts!1461 to reset expire_at1462 when having artifacts files1463 to reset dependent objects1464 #auto_retry_expected?1465 when build is failed and auto retry is configured1466 expects auto-retry to happen1467 when build failed by auto retry is not configured1468 does not expect auto-retry to happen1469 #artifact_for_type1470 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "archive", size: 107464, created_at: "2023-05-15 17:05:19...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>1471 #merge_request1472 on a branch pipeline1473 with no merge request1474 is expected to be nil1475 with an open merge request from the same ref name1476 without a merge request diff containing the pipeline commit1477 is expected to be nil1478 with a merge request diff containing the pipeline commit1479 is expected to eq #<MergeRequest id:3 group1/project-1!2>1480 with multiple open merge requests1481 returns the first merge request1482 on a detached merged request pipeline1483 is expected to eq #<MergeRequest id:1 group1/project-1!1>1484 on a legacy detached merged request pipeline1485 is expected to eq #<MergeRequest id:1 group1/project-1!1>1486 on a pipeline for merged results1487 is expected to eq #<MergeRequest id:1 group1/project-1!1>1488 #options1489 contains options1490 allows to access with symbolized keys1491 rejects access with string keys1492 persist data in build metadata1493 does not persist data in build1494 when options include artifacts:expose_as1495 saves the presence of expose_as into build metadata1496 #other_manual_actions1497 returns other actions1498 when build is retried1499 does not return any of them1500 #other_scheduled_actions1501 when other build's status is success1502 returns other actions1503 when other build's status is failed1504 returns other actions1505 when other build's status is running1506 does not return other actions1507 when other build's status is scheduled1508 does not return other actions1509 #persisted_environment1510 when referenced literally1511 is expected to eq #<Environment id: 25, project_id: 1, name: "foo-master", created_at: "2023-05-15 17:05:23.892108514 +...", slug: "foo-master", auto_stop_at: nil, auto_delete_at: nil, tier: "other", merge_request_id: nil>1512 when referenced with a variable1513 is expected to eq #<Environment id: 26, project_id: 1, name: "foo-master", created_at: "2023-05-15 17:05:23.986186214 +...", slug: "foo-master", auto_stop_at: nil, auto_delete_at: nil, tier: "other", merge_request_id: nil>1514 when there is no environment1515 is expected to be nil1516 when build has a stop environment1517 expands environment name1518 #play1519 enqueues the build1520 #playable?1521 when build is a manual action1522 when build has been skipped1523 is expected not to be playable1524 when build has been canceled1525 is expected to be playable1526 when build is successful1527 is expected to be playable1528 when build has failed1529 is expected to be playable1530 when build is a manual untriggered action1531 is expected to be playable1532 when build is a manual and degenerated1533 is expected not to be playable1534 when build is scheduled1535 is expected to be playable1536 when build is not a manual action1537 is expected not to be playable1538 when build is waiting for deployment approval1539 is expected not to be playable1540 project settings1541 #allow_git_fetch1542 return project allow_git_fetch configuration1543 #project1544 is expected to eq #<Project id:1 group1/project-1>>1545 #project_id1546 is expected to eq 11547 #project_name1548 is expected to eq "Project-1 Name"1549 #ref_slug1550 ref: "master", slug: "master"1551 transforms ref to slug1552 ref: "1-foo", slug: "1-foo"1553 transforms ref to slug1554 ref: "fix/1-foo", slug: "fix-1-foo"1555 transforms ref to slug1556 ref: "fix-1-foo", slug: "fix-1-foo"1557 transforms ref to slug1558 ref: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"1559 transforms ref to slug1560 ref: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"1561 transforms ref to slug1562 ref: "FOO", slug: "foo"1563 transforms ref to slug1564 ref: "-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"1565 transforms ref to slug1566 ref: "-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"1567 transforms ref to slug1568 ref: "-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"1569 transforms ref to slug1570 ref: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ", slug: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"1571 transforms ref to slug1572 #repo_url1573 when token is set1574 is expected to be a kind of String1575 is expected to end with ".git"1576 is expected to start with "http://"1577 is expected to include "64_XytLucTL9-JEBMbXwZ6C"1578 is expected to include "gitlab-ci-token"1579 is expected to include "localhost/group1/project-1"1580 when token is empty1581 is expected to be nil1582 #stuck?1583 when commit_status.status is pending1584 is expected to be truthy1585 and there is a project runner1586 is expected to be falsey1587 when commit_status.status is success1588 is expected to be falsey1589 when commit_status.status is failed1590 is expected to be falsey1591 when commit_status.status is canceled1592 is expected to be falsey1593 when commit_status.status is running1594 is expected to be falsey1595 #has_expired_locked_archive_artifacts?1596 when build does not have artifacts1597 is expected to eq nil1598 when build has artifacts1599 when artifacts are unlocked1600 is expected to eq false1601 when artifacts are locked1602 when artifacts do not expire1603 is expected to eq false1604 when artifacts expire in the future1605 is expected to eq false1606 when artifacts expired in the past1607 is expected to eq true1608 #has_expiring_archive_artifacts?1609 when artifacts have expiration date set1610 and job artifacts archive record exists1611 has expiring artifacts1612 and job artifacts archive record does not exist1613 does not have expiring artifacts1614 when artifacts do not have expiration date set1615 does not have expiring artifacts1616 #variables1617 returns variables1618 is expected to be an instance of Gitlab::Ci::Variables::Collection1619 is expected to eq [{:key=>"CI_PIPELINE_ID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_URL", :mas...y=>"CI_COMMIT_AUTHOR", :masked=>false, :public=>true, :value=>"Job van der Voort <job@gitlab.com>"}]1620 excludes variables that require an environment or user1621 when FF `ci_remove_legacy_predefined_variables` is disabled1622 is expected to eq [{:key=>"CI_PIPELINE_ID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_URL", :mas...ue, :value=>"master"}, {:key=>"CI_BUILD_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}]1623 when CI_JOB_JWT generation fails1624 CI_JOB_JWT is not included1625 CI_JOB_JWT is not included1626 variables ordering1627 when variables hierarchy is stubbed1628 returns variables in order depending on resource hierarchy1629 when build has environment and user-provided variables1630 matches explicit variables ordering1631 CI_ENVIRONMENT_ACTION1632 behaves like defaults value1633 value matches start1634 when options is set1635 when options is empty1636 behaves like defaults value1637 value matches start1638 when options is nil1639 behaves like defaults value1640 value matches start1641 when options environment is specified1642 behaves like defaults value1643 value matches start1644 when options environment action specified1645 matches the specified action1646 when FF `ci_remove_legacy_predefined_variables` is disabled1647 when build has environment and user-provided variables1648 matches explicit variables ordering1649 CI_ENVIRONMENT_ACTION1650 behaves like defaults value1651 value matches start1652 when options is set1653 when options is empty1654 behaves like defaults value1655 value matches start1656 when options is nil1657 behaves like defaults value1658 value matches start1659 when options environment is specified1660 behaves like defaults value1661 value matches start1662 when options environment action specified1663 matches the specified action1664 when the build has ID tokens1665 includes the tokens and excludes the predefined JWT variables1666 when build has user1667 is expected to include {:key => "GITLAB_USER_NAME", :value => "Sidney Jones1", :public => true, :masked => false}1668 when build belongs to a pipeline for merge request1669 returns values based on source ref1670 when build has an environment1671 when no URL was set1672 does not have CI_ENVIRONMENT_URL1673 behaves like containing environment variables1674 is expected to include {:key => "CI_ENVIRONMENT_TIER", :value => "production", :public => true, :masked => false}1675 when an URL was set1676 when the URL was set from the job1677 behaves like containing environment variables1678 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://host/test", :public => true, :masked => false}1679 when variables are used in the URL, it does not expand1680 puts $CI_ENVIRONMENT_URL in the last so all other variables are available to be used when runners are trying to expand it1681 behaves like containing environment variables1682 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://$CI_PROJECT_NAME-$CI_ENVIRONMENT_SLUG", :public => true, :masked => false}1683 when the URL was not set from the job, but environment1684 behaves like containing environment variables1685 is expected to include {:key => "CI_ENVIRONMENT_URL", :value => "http://host/test", :public => true, :masked => false}1686 when environment_tier is updated in options1687 uses tier from options1688 when project has an environment specific variable1689 behaves like containing environment variables1690 is expected to include {:key => "CI_ENVIRONMENT_TIER", :value => "production", :public => true, :masked => false}1691 when environment scope does not match build environment1692 is expected not to include {:key => "MY_STAGING_ONLY_VARIABLE", :value => "environment_specific_variable", :public => false, :masked => false}1693 when environment scope matches build environment1694 is expected to include {:key => "MY_STAGING_ONLY_VARIABLE", :value => "environment_specific_variable", :public => false, :masked => false}1695 when build started manually1696 is expected to include {:key => "CI_JOB_MANUAL", :value => "true", :public => true, :masked => false}1697 when job variable is defined1698 is expected to include {:key => "first", :value => "first", :public => false, :masked => false}1699 when build is for branch1700 is expected to include {:key => "CI_COMMIT_BRANCH", :value => "master", :public => true, :masked => false}1701 when build is for tag1702 is expected to include {:key => "CI_COMMIT_TAG_MESSAGE", :value => "Release", :public => true, :masked => false}1703 when CI variable is defined1704 is expected to include {:key => "SECRET_KEY", :value => "secret_value", :public => false, :masked => false}1705 when protected variable is defined1706 when the branch is protected1707 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}1708 when the tag is protected1709 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}1710 when the ref is not protected1711 is expected not to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}1712 when group CI variable is defined1713 is expected to include {:key => "SECRET_KEY", :value => "secret_value", :public => false, :masked => false}1714 when group protected variable is defined1715 when the branch is protected1716 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}1717 when the tag is protected1718 is expected to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}1719 when the ref is not protected1720 is expected not to include {:key => "PROTECTED_KEY", :value => "protected_value", :public => false, :masked => false}1721 when build is for triggers1722 is expected to include {:key => "CI_PIPELINE_TRIGGERED", :value => "true", :public => true, :masked => false}1723 when pipeline has a variable1724 is expected to include {:key => "VARIABLE_1", :value => "VARIABLE_VALUE", :public => false, :masked => false}1725 when a job was triggered by a pipeline schedule1726 is expected to include {:key => "SCHEDULE_VARIABLE_KEY", :value => "VARIABLE_VALUE", :public => false, :masked => false}1727 when container registry is enabled1728 and is disabled for project1729 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}1730 is expected not to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}1731 and is enabled for project1732 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}1733 is expected to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}1734 and is private for project1735 is expected to include {:key => "CI_REGISTRY", :value => "registry.example.com", :public => true, :masked => false}1736 is expected to include {:key => "CI_REGISTRY_IMAGE", :value => "registry.example.com/group1/project-2", :public => true, :masked => false}1737 when runner is assigned to build1738 is expected to include {:key => "CI_RUNNER_ID", :value => "10", :public => true, :masked => false}1739 is expected to include {:key => "CI_RUNNER_DESCRIPTION", :value => "description", :public => true, :masked => false}1740 is expected to include {:key => "CI_RUNNER_TAGS", :value => "docker, linux", :public => true, :masked => false}1741 when build is for a deployment1742 is expected to include {:key => "KUBERNETES_TOKEN", :value => "TOKEN", :public => false, :masked => false}1743 when project has default CI config path1744 is expected to include {:key => "CI_CONFIG_PATH", :value => ".gitlab-ci.yml", :public => true, :masked => false}1745 when project has custom CI config path1746 is expected to include {:key => "CI_CONFIG_PATH", :value => "custom", :public => true, :masked => false}1747 when pipeline variable overrides build variable1748 overrides YAML variable using a pipeline variable1749 when build is parallelized1750 when parallel is a number1751 behaves like parallelized jobs config1752 includes CI_NODE_INDEX1753 includes correct CI_NODE_TOTAL1754 when parallel is hash with the total key1755 behaves like parallelized jobs config1756 includes CI_NODE_INDEX1757 includes correct CI_NODE_TOTAL1758 when parallel is nil1759 behaves like parallelized jobs config1760 includes CI_NODE_INDEX1761 includes correct CI_NODE_TOTAL1762 when build has not been persisted yet1763 returns static predefined variables1764 for deploy tokens1765 when gitlab-deploy-token exists for project1766 includes deploy token variables1767 when gitlab-deploy-token does not exist for project1768 does not include deploy token variables1769 when gitlab-deploy-token exists for group1770 includes deploy token variables1771 for harbor integration1772 when harbor_integration exists1773 includes harbor variables1774 when harbor_integration does not exist1775 does not include harbor variables1776 for the apple_app_store integration1777 when the apple_app_store exists1778 when a build is protected1779 includes apple_app_store variables1780 when a build is not protected1781 does not include the apple_app_store variables1782 when the apple_app_store integration does not exist1783 does not include apple_app_store variables1784 for the google_play integration1785 when the google_play integration exists1786 when a build is protected1787 includes google_play variables1788 when a build is not protected1789 does not include the google_play variable1790 when the googel_play integration does not exist1791 does not include google_play variable1792 when build has dependency which has dotenv variable1793 is expected to include {:key => "VARIABLE_1", :value => "VARIABLE_VALUE", :public => false, :masked => false}1794 when ID tokens are defined on the build1795 includes the ID token variables1796 when a NoSigningKeyError is raised1797 does not include the ID token variables1798 when a RSAError is raised1799 does not include the ID token variables1800 #scoped_variables1801 records a prometheus metric1802 delegates to the variable builders1803 behaves like calculates scoped_variables1804 when build has not been persisted yet1805 does not persist the build1806 returns static predefined variables1807 does not return prohibited variables1808 when FF `ci_remove_legacy_predefined_variables` is disabled1809 does not return prohibited variables1810 with dependency variables1811 inherits dependent variables1812 #simple_variables_without_dependencies1813 does not load dependencies1814 #any_unmet_prerequisites?1815 build has prerequisites1816 is expected to be truthy1817 build does not have prerequisites1818 is expected to be falsey1819 #yaml_variables1820 persist data in build metadata1821 does not persist data in build1822 behaves like having consistent representation1823 allows to access using symbols1824 #dependency_variables1825 when using dependencies1826 inherits only dependent variables1827 when using needs1828 inherits only needs with artifacts variables1829 state transition: any => [:preparing]1830 queues BuildPrepareWorker1831 when the build is waiting for deployment approval1832 does not allow the build to be enqueued1833 state transition: any => [:pending]1834 queues BuildQueueWorker1835 executes hooks1836 assigns the token1837 state transition: pending: :running1838 for pipeline ref existence1839 ensures pipeline ref creation1840 ensures that it is not run in database transaction1841 when runner timeout overrides project timeout1842 behaves like saves data on transition1843 saves timeout1844 saves timeout_source1845 when Ci::BuildMetadata#update_timeout_state fails update1846 doesn't save timeout1847 doesn't save timeout_source1848 when runner timeout doesn't override project timeout1849 behaves like saves data on transition1850 saves timeout1851 saves timeout_source1852 when Ci::BuildMetadata#update_timeout_state fails update1853 doesn't save timeout1854 doesn't save timeout_source1855 #has_valid_build_dependencies?1856 when "dependencies" keyword is not defined1857 is expected to have valid build dependencies1858 when "dependencies" keyword is empty1859 is expected to have valid build dependencies1860 when "dependencies" keyword is specified1861 behaves like validation is active1862 when depended job has not been completed yet1863 is expected to have valid build dependencies1864 when artifacts of depended job has been expired1865 when pipeline is not locked1866 is expected not to have valid build dependencies1867 when pipeline is locked1868 is expected to have valid build dependencies1869 when artifacts of depended job has been erased1870 is expected not to have valid build dependencies1871 state transition when build fails1872 when build is configured to be retried1873 retries build and assigns the same user to it1874 does not try to create a todo1875 when retry service raises Gitlab::Access::AccessDeniedError exception1876 handles raised exception1877 logs the error1878 fails the job1879 when build is not configured to be retried1880 does not retry build1881 does not count retries when not necessary1882 creates a todo async1883 when associated deployment failed to update its status1884 can drop the build1885 .matches_tag_ids1886 when have different tags1887 does not match a build1888 when have a subset of tags1889 does match a build1890 when build does not have tags1891 does match a build1892 when does not have a subset of tags1893 does not match a build1894 .matches_tags1895 when does have tags1896 does match a build1897 when does not have tags1898 does not match a build1899 pages deployments1900 when job is "pages"1901 when pages are enabled1902 is marked as pages generator1903 job succeeds1904 calls pages worker1905 job fails1906 does not call pages worker1907 when pages are disabled1908 is not marked as pages generator1909 job succeeds1910 does not call pages worker1911 when job is not "pages"1912 is not marked as pages generator1913 job succeeds1914 does not call pages worker1915 #has_terminal?1916 returns true if the build is running and it has a runner_session_url1917 returns false1918 when runner_session_url is empty1919 unless the build is running1920 is expected to be falsey1921 #collect_test_reports!1922 is expected to eq 01923 when build has a test report1924 when there is a JUnit test report from rspec test suite1925 parses blobs and add the results to the test suite1926 when there is a JUnit test report from java ant test suite1927 parses blobs and add the results to the test suite1928 when there is a corrupted JUnit test report1929 returns no test data and includes a suite_error message1930 #collect_accessibility_reports!1931 is expected to eq {}1932 when build has an accessibility report1933 when there is an accessibility report with errors1934 parses blobs and add the results to the accessibility report1935 when there is an accessibility report without errors1936 parses blobs and add the results to the accessibility report1937 when there is an accessibility report with an invalid url1938 parses blobs and add the results to the accessibility report1939 #collect_codequality_reports!1940 is expected to eq {}1941 when build has a codequality report1942 when there is a codequality report1943 parses blobs and add the results to the codequality report1944 when there is an codequality report without errors1945 parses blobs and add the results to the codequality report1946 #collect_terraform_reports!1947 returns an empty hash1948 when build has a terraform report1949 when there is a valid tfplan.json1950 parses blobs and add the results to the terraform report1951 when there is an invalid tfplan.json1952 adds invalid plan report1953 #each_report1954 yields job artifact blob that matches the type1955 #report_artifacts1956 when the build has reports1957 returns the artifacts with reports1958 #artifacts_metadata_entry1959 when using local storage1960 for existing file1961 does exist1962 for non-existing file1963 does not exist1964 when using remote storage1965 for existing file1966 does exist1967 for non-existing file1968 does not exist1969 #publishes_artifacts_reports?1970 when artifacts reports are defined1971 is expected to be truthy1972 when artifacts reports missing defined1973 is expected to be falsey1974 when options are missing1975 is expected to be falsey1976 #runner_required_feature_names1977 when artifacts reports are defined1978 is expected to include :upload_multiple_artifacts1979 when artifacts exclude is defined1980 is expected to include :artifacts_exclude1981 #supported_runner?1982 when `upload_multiple_artifacts` feature is required by build1983 when runner provides given feature1984 is expected to be truthy1985 when runner does not provide given feature1986 is expected to be falsey1987 when `refspecs` feature is required by build1988 when runner provides given feature1989 is expected to be truthy1990 when runner does not provide given feature1991 is expected to be falsey1992 when `multi_build_steps` feature is required by build1993 when runner provides given feature1994 is expected to be truthy1995 when runner does not provide given feature1996 is expected to be falsey1997 when `return_exit_code` feature is required by build1998 when runner provides given feature1999 is expected to be truthy2000 when runner does not provide given feature2001 is expected to be falsey2002 when the runner does not provide all of the required features2003 requires `upload_multiple_artifacts` too2004 #deployment_status2005 when build is a last deployment2006 is expected to eq :last2007 when there is a newer build with deployment2008 is expected to eq :out_of_date2009 when build with deployment has failed2010 is expected to eq :failed2011 when build with deployment is running2012 is expected to eq :creating2013 #degenerated?2014 when build is degenerated2015 is expected to be degenerated2016 when build is valid2017 is expected not to be degenerated2018 and becomes degenerated2019 is expected to be degenerated2020 degenerate!2021 drops metadata2022 #archived?2023 when build is degenerated2024 is expected to be archived2025 for old build2026 when archive_builds_in is set2027 is expected to be archived2028 when archive_builds_in is not set2029 is expected not to be archived2030 #read_metadata_attribute2031 when build and metadata options is set2032 prefers build options2033 when only metadata options is set2034 returns metadata options2035 when none is set2036 returns default value2037 #write_metadata_attribute2038 when data in build is already set2039 does set metadata options2040 does reset build options2041 #invalid_dependencies2042 when pipeline is locked2043 returns invalid dependencies when expired2044 when pipeline is not locked2045 returns no invalid dependencies when expired2046 #execute_hooks2047 with project hooks2048 calls project.execute_hooks(build_data, :job_hooks)2049 with blocked users2050 does not call project.execute_hooks2051 without project hooks2052 does not call project.execute_hooks2053 with project services2054 executes services2055 without relevant project services2056 does not execute services2057 #environment_auto_stop_in2058 when build option has environment auto_stop_in2059 is expected to eq "1 day"2060 when build option does not have environment auto_stop_in2061 is expected to be nil2062 #degradation_threshold2063 when threshold variable is defined2064 is expected to eq 52065 when threshold variable is not defined2066 is expected to be nil2067 #run_on_status_commit2068 runs provided hook after status commit2069 does not run hooks when status has not changed2070 #debug_mode?2071 when CI_DEBUG_TRACE=true is in variables2072 reflects instance variables2073 reflects group variables2074 reflects pipeline variables2075 reflects project variables2076 reflects job variables2077 when in yaml variables2078 reflects instance variables2079 reflects group variables2080 reflects pipeline variables2081 reflects project variables2082 reflects job variables2083 when in yaml variables2084 reflects instance variables2085 reflects group variables2086 reflects pipeline variables2087 reflects project variables2088 reflects job variables2089 when in yaml variables2090 when CI_DEBUG_TRACE is not in variables2091 is expected to eq false2092 when CI_DEBUG_SERVICES=true is in variables2093 reflects instance variables2094 reflects group variables2095 reflects pipeline variables2096 reflects project variables2097 reflects job variables2098 when in yaml variables2099 reflects instance variables2100 reflects group variables2101 reflects pipeline variables2102 reflects project variables2103 reflects job variables2104 when in yaml variables2105 reflects instance variables2106 reflects group variables2107 reflects pipeline variables2108 reflects project variables2109 reflects job variables2110 when in yaml variables2111 when CI_DEBUG_SERVICES is not in variables2112 is expected to eq false2113 when metadata has debug_trace_enabled true2114 is expected to eq true2115 when metadata has debug_trace_enabled false2116 is expected to eq false2117 #drop_with_exit_code!2118 when exit_codes are not defined2119 behaves like drops the build without changing allow_failure2120 does not change allow_failure2121 drops the build2122 when allow_failure_criteria is nil2123 behaves like drops the build without changing allow_failure2124 does not change allow_failure2125 drops the build2126 when exit_codes is nil2127 behaves like drops the build without changing allow_failure2128 does not change allow_failure2129 drops the build2130 when exit_codes do not match2131 behaves like drops the build without changing allow_failure2132 does not change allow_failure2133 drops the build2134 with matching exit codes2135 changes allow_failure2136 drops the build2137 when exit_code is nil2138 behaves like drops the build without changing allow_failure2139 does not change allow_failure2140 drops the build2141 when build is configured to be retried2142 when there is an MR attached to the pipeline and a failed job todo for that MR2143 resolves the todo for the old failed build2144 #exit_codes_defined?2145 without allow_failure_criteria2146 is expected to be falsey2147 when exit_codes is nil2148 is expected to be falsey2149 when exit_codes is an empty array2150 is expected to be falsey2151 when exit_codes are defined2152 is expected to be truthy2153 .build_matchers2154 when the pipeline is empty2155 does not throw errors2156 when the pipeline has builds2157 is expected to eq 22158 groups build ids2159 is expected to contain exactly [] and ["tag1", "tag2"]2160 is expected to all be falsey2161 when the builds are protected2162 is expected to all be protected2163 #build_matcher2164 is expected to eq [1015]2165 is expected to contain exactly "tag1" and "tag2"2166 is expected to eq false2167 is expected to eq #<Project id:1 group1/project-1>>2168 #shared_runner_build?2169 when build does not have a runner assigned2170 is not a shared runner build2171 when build has a project runner assigned2172 is not a shared runner build2173 when build has an instance runner assigned2174 is a shared runner build2175 .with_project_and_metadata2176 does not join across databases2177 .without_coverage2178 returns builds without coverage values2179 .with_coverage_regex2180 returns builds with coverage regex values2181 #ensure_trace_metadata!2182 delegates to Ci::BuildTraceMetadata2183 #doom!2184 updates status and failure_reason2185 logs a message2186 with deployment2187 updates the deployment status2188 with queued builds2189 drops associated pending build2190 with running builds2191 drops associated runtime metadata2192 #runtime_runner_features2193 cannot cancel gracefully2194 can cancel gracefully2195 behaves like it has loose foreign keys2196 has at least one loose foreign key definition2197 has the deletion trigger present2198 records record deletions2199 cleans up record deletions2200 behaves like cleanup by a loose foreign key2201 cleans up (delete or nullify) the model2202 #clone2203 when given new job variables2204 when the cloned build has an action2205 applies the new job variables2206 when the cloned build does not have an action2207 applies the old job variables2208 when not given new job variables2209 applies the old job variables2210 #test_suite_name2211 uses the group name for test suite name2212 when build is part of parallel build2213 uses the group name for test suite name2214 when build is part of matrix build2215 uses the job name for the test suite2216 #runtime_hooks2217 returns an array of hook objects2218 partitioning2219 assigns partition_id to job variables successfully (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)2220 assigning token2221 includes partition_id as a token prefix (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)2222 #remove_token!2223 removes the token2224 metadata partitioning2225 creates the metadata record and assigns its partition (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)2226 secrets management id_tokens usage data2227 when ID tokens are defined2228 on create2229 tracks RedisHLL event with user_id2230 tracks Snowplow event with RedisHLL context2231 on update2232 does not track RedisHLL event2233 does not track Snowplow event2234 when ID tokens are not defined2235 on create2236 does not track RedisHLL event2237 does not track Snowplow event2238 job artifact associations2239 #job_artifacts_archive2240 when job has an artifact of type archive2241 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "archive", size: nil, created_at: "2023-05-15 17:06:17.57...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2242 when job has no artifact of type archive2243 is expected to be nil2244 #job_artifacts_metadata2245 when job has an artifact of type metadata2246 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metadata", size: nil, created_at: "2023-05-15 17:06:17.6...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2247 when job has no artifact of type metadata2248 is expected to be nil2249 #job_artifacts_trace2250 when job has an artifact of type trace2251 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "trace", size: nil, created_at: "2023-05-15 17:06:17.7901...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2252 when job has no artifact of type trace2253 is expected to be nil2254 #job_artifacts_junit2255 when job has an artifact of type junit2256 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "junit", size: nil, created_at: "2023-05-15 17:06:17.9209...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2257 when job has no artifact of type junit2258 is expected to be nil2259 #job_artifacts_sast2260 when job has an artifact of type sast2261 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "sast", size: nil, created_at: "2023-05-15 17:06:18.04170...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2262 when job has no artifact of type sast2263 is expected to be nil2264 #job_artifacts_dependency_scanning2265 when job has an artifact of type dependency_scanning2266 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dependency_scanning", size: nil, created_at: "2023-05-15...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2267 when job has no artifact of type dependency_scanning2268 is expected to be nil2269 #job_artifacts_container_scanning2270 when job has an artifact of type container_scanning2271 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "container_scanning", size: nil, created_at: "2023-05-15 ...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2272 when job has no artifact of type container_scanning2273 is expected to be nil2274 #job_artifacts_dast2275 when job has an artifact of type dast2276 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dast", size: nil, created_at: "2023-05-15 17:06:18.38931...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2277 when job has no artifact of type dast2278 is expected to be nil2279 #job_artifacts_codequality2280 when job has an artifact of type codequality2281 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "codequality", size: nil, created_at: "2023-05-15 17:06:1...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2282 when job has no artifact of type codequality2283 is expected to be nil2284 #job_artifacts_license_scanning2285 when job has an artifact of type license_scanning2286 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "license_scanning", size: nil, created_at: "2023-05-15 17...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2287 when job has no artifact of type license_scanning2288 is expected to be nil2289 #job_artifacts_performance2290 when job has an artifact of type performance2291 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "performance", size: nil, created_at: "2023-05-15 17:06:1...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2292 when job has no artifact of type performance2293 is expected to be nil2294 #job_artifacts_metrics2295 when job has an artifact of type metrics2296 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metrics", size: nil, created_at: "2023-05-15 17:06:18.82...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2297 when job has no artifact of type metrics2298 is expected to be nil2299 #job_artifacts_metrics_referee2300 when job has an artifact of type metrics_referee2301 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "metrics_referee", size: nil, created_at: "2023-05-15 17:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2302 when job has no artifact of type metrics_referee2303 is expected to be nil2304 #job_artifacts_network_referee2305 when job has an artifact of type network_referee2306 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "network_referee", size: nil, created_at: "2023-05-15 17:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2307 when job has no artifact of type network_referee2308 is expected to be nil2309 #job_artifacts_lsif2310 when job has an artifact of type lsif2311 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "lsif", size: nil, created_at: "2023-05-15 17:06:19.16305...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2312 when job has no artifact of type lsif2313 is expected to be nil2314 #job_artifacts_dotenv2315 when job has an artifact of type dotenv2316 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "dotenv", size: nil, created_at: "2023-05-15 17:06:19.280...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2317 when job has no artifact of type dotenv2318 is expected to be nil2319 #job_artifacts_cobertura2320 when job has an artifact of type cobertura2321 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cobertura", size: nil, created_at: "2023-05-15 17:06:19....nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2322 when job has no artifact of type cobertura2323 is expected to be nil2324 #job_artifacts_terraform2325 when job has an artifact of type terraform2326 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "terraform", size: nil, created_at: "2023-05-15 17:06:19....nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2327 when job has no artifact of type terraform2328 is expected to be nil2329 #job_artifacts_accessibility2330 when job has an artifact of type accessibility2331 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "accessibility", size: nil, created_at: "2023-05-15 17:06...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2332 when job has no artifact of type accessibility2333 is expected to be nil2334 #job_artifacts_cluster_applications2335 when job has an artifact of type cluster_applications2336 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cluster_applications", size: nil, created_at: "2023-05-1...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2337 when job has no artifact of type cluster_applications2338 is expected to be nil2339 #job_artifacts_secret_detection2340 when job has an artifact of type secret_detection2341 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "secret_detection", size: nil, created_at: "2023-05-15 17...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2342 when job has no artifact of type secret_detection2343 is expected to be nil2344 #job_artifacts_requirements2345 when job has an artifact of type requirements2346 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "requirements", size: nil, created_at: "2023-05-15 17:06:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2347 when job has no artifact of type requirements2348 is expected to be nil2349 #job_artifacts_coverage_fuzzing2350 when job has an artifact of type coverage_fuzzing2351 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "coverage_fuzzing", size: nil, created_at: "2023-05-15 17...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2352 when job has no artifact of type coverage_fuzzing2353 is expected to be nil2354 #job_artifacts_browser_performance2355 when job has an artifact of type browser_performance2356 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "browser_performance", size: nil, created_at: "2023-05-15...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2357 when job has no artifact of type browser_performance2358 is expected to be nil2359 #job_artifacts_load_performance2360 when job has an artifact of type load_performance2361 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "load_performance", size: nil, created_at: "2023-05-15 17...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2362 when job has no artifact of type load_performance2363 is expected to be nil2364 #job_artifacts_api_fuzzing2365 when job has an artifact of type api_fuzzing2366 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "api_fuzzing", size: nil, created_at: "2023-05-15 17:06:2...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2367 when job has no artifact of type api_fuzzing2368 is expected to be nil2369 #job_artifacts_cluster_image_scanning2370 when job has an artifact of type cluster_image_scanning2371 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cluster_image_scanning", size: nil, created_at: "2023-05...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2372 when job has no artifact of type cluster_image_scanning2373 is expected to be nil2374 #job_artifacts_cyclonedx2375 when job has an artifact of type cyclonedx2376 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "cyclonedx", size: nil, created_at: "2023-05-15 17:06:20....nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2377 when job has no artifact of type cyclonedx2378 is expected to be nil2379 #job_artifacts_requirements_v22380 when job has an artifact of type requirements_v22381 is expected to eq #<Ci::JobArtifact project_id: 1, file_type: "requirements_v2", size: nil, created_at: "2023-05-15 17:...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>2382 when job has no artifact of type requirements_v22383 is expected to be nil2384 token format for builds transiting into pending2385 when build is initialized without a token and transits to pending2386 generates a token2387 when build is initialized with a token and transits to pending2388 does not change the existing token2389Note2390 associations2391 is expected to belong to project required: false2392 is expected to belong to noteable required: false2393 is expected to belong to author class_name => User required: false2394 is expected to have many todos2395 is expected to have one note_metadata class_name => Notes::NoteMetadata inverse_of => note2396 is expected to belong to review required: false inverse_of => notes2397 modules2398 is expected to includes the Participable module2399 is expected to includes the Mentionable module2400 is expected to includes the Awardable module2401 is expected to includes the Sortable module2402 default values2403 is expected not to be system2404 validation2405 is expected to validate that the length of :note is at most 10000002406 is expected to validate that :note cannot be empty/falsy2407 is expected to validate that :project cannot be empty/falsy2408 when note is on commit2409 is expected to validate that :commit_id cannot be empty/falsy2410 is expected not to validate that :noteable_id cannot be empty/falsy2411 when note is not on commit2412 is expected not to validate that :commit_id cannot be empty/falsy2413 is expected to validate that :noteable_id cannot be empty/falsy2414 when noteable and note project differ2415 is expected to be invalid2416 when noteable and note project are the same2417 is expected to be valid2418 when project is missing for a project related note2419 is expected to be invalid2420 when noteable is a personal snippet2421 is valid without project2422 max notes limit2423 when creating a system note2424 is expected to be valid2425 when creating a user note2426 is expected not to be valid2427 when updating an existing note on a noteable that already exceeds the limit2428 is expected to be valid2429 created_at in the past2430 when creating a note not too much in the past2431 is expected to be valid2432 when creating a note too much in the past2433 is expected not to be valid2434 confidentiality2435 for existing public note2436 is not possible to change the note to confidential2437 is possible to change confidentiality from nil to false2438 for existing confidential note2439 is not possible to change the note to public2440 for a new note2441 allows to create a confidential note for an issue2442 when noteable is not allowed to have confidential notes2443 can not be set confidential2444 when note type is not allowed to be confidential2445 can not be set confidential2446 when the note is a discussion note2447 is expected to be valid2448 when replying to a note2449 when the note is reply to a confidential note2450 is expected to be valid2451 when the note is reply to a public note2452 can not be set confidential2453 when reply note is public but discussion is confidential2454 can not be set confidential2455 callbacks2456 #keep_around_commit2457 calls #keep_around_commit normally2458 skips #keep_around_commit if 'skip_keep_around_commits' is true2459 skips #keep_around_commit if 'importing' is true2460 #notify_after_create2461 calls #after_note_created on the noteable2462 #notify_after_destroy2463 calls #after_note_destroyed on the noteable2464 does not error if noteable is nil2465 sets internal flag2466 when confidential is `true`2467 is expected to equal true2468 when confidential is `false`2469 is expected to equal false2470 when confidential is `nil`2471 is expected to equal false2472 Commit notes2473 is accessible through #noteable2474 saves a valid note2475 is recognized by #for_commit?2476 keeps the commit around2477 does not generate N+1 queries for participants2478 authorization2479 read2480 is expected to be falsey2481 is expected to be truthy2482 is expected to be falsey2483 write2484 is expected to be falsey2485 is expected to be truthy2486 is expected to be falsey2487 admin2488 is expected to be falsey2489 is expected to be truthy2490 is expected to be falsey2491 behaves like an editable mentionable2492 creates new cross-reference notes when the mentionable text is edited2493 behaves like a mentionable2494 generates a descriptive back-reference2495 extracts references from its reference property2496 creates cross-reference notes2497 when there are cached markdown fields2498 sends in cached markdown fields when appropriate2499 when there are cached markdown fields2500 refreshes markdown cache if necessary2501 when the markdown cache is stale2502 persists the refreshed cache so that it does not have to be refreshed every time2503 #all_references2504 reads the rendered note body from the cache2505 editable?2506 returns true2507 returns false2508 noteable_author?2509 when note is on commit2510 if user is the noteable author2511 returns true2512 if user is not the noteable author2513 returns false2514 when note is on issue2515 if user is the noteable author2516 returns true2517 if user is not the noteable author2518 returns false2519 last_edited_at2520 with last_edited_at2521 returns last_edited_at2522 without last_edited_at2523 returns updated_at2524 edited?2525 with updated_by2526 returns true2527 without updated_by2528 returns false2529 #confidential?2530 when note is not confidential2531 is false when a noteable is not confidential2532 is false when noteable can't be confidential2533 when include_noteable is set to true2534 is true when a noteable is confidential2535 when include_noteable is not set to true2536 is false when a noteable is confidential2537 when note is confidential2538 is true even when a noteable is not confidential2539 #system_note_visible_for?2540 when project is public2541 behaves like users with note access2542 returns true2543 when group is private2544 returns visible but not readable for non-member user2545 returns visible but not readable for a nil user2546 behaves like users with note access2547 returns true2548 #system_note_viewable_by?(user)2549 when system_note_metadata is not present2550 returns true2551 system_note_metadata isn't of type 'branch' or 'contact'2552 returns true2553 system_note_metadata is of type 'branch'2554 user doesn't have :download_code ability2555 returns false2556 user has the :download_code ability2557 returns true2558 system_note_metadata is of type 'contact'2559 user doesn't have :read_crm_contact ability2560 returns false2561 user has the :read_crm_contact ability2562 returns true2563 system_note_visible_for?2564 when there is one reference in note2565 behaves like checks references2566 returns false2567 returns true2568 returns true if user visible reference count set2569 returns false if user visible reference count set but does not match total reference count2570 returns false if ref count is 02571 when there is a reference to a label2572 behaves like checks references2573 returns false2574 returns true2575 returns true if user visible reference count set2576 returns false if user visible reference count set but does not match total reference count2577 returns false if ref count is 02578 when there are two references in note2579 behaves like checks references2580 returns false2581 returns true2582 returns true if user visible reference count set2583 returns false if user visible reference count set but does not match total reference count2584 returns false if ref count is 02585 when there is a private issue and user reference2586 behaves like checks references2587 returns false2588 returns true2589 returns true if user visible reference count set2590 returns false if user visible reference count set but does not match total reference count2591 returns false if ref count is 02592 when there is a publicly visible user reference2593 returns true for other users2594 returns true for anonymous users2595 #system_note_with_references?2596 falsey for user-generated notes2597 when the note might contain cross references2598 with commit2599 delegates to the cross-reference regex2600 with cross_reference2601 delegates to the cross-reference regex2602 with closed2603 delegates to the cross-reference regex2604 with duplicate2605 delegates to the cross-reference regex2606 with moved2607 delegates to the cross-reference regex2608 with merge2609 delegates to the cross-reference regex2610 with label2611 delegates to the cross-reference regex2612 with milestone2613 delegates to the cross-reference regex2614 with relate2615 delegates to the cross-reference regex2616 with unrelate2617 delegates to the cross-reference regex2618 with cloned2619 delegates to the cross-reference regex2620 with epic_issue_added2621 delegates to the cross-reference regex2622 with issue_added_to_epic2623 delegates to the cross-reference regex2624 with epic_issue_removed2625 delegates to the cross-reference regex2626 with issue_removed_from_epic2627 delegates to the cross-reference regex2628 with epic_issue_moved2629 delegates to the cross-reference regex2630 with issue_changed_epic2631 delegates to the cross-reference regex2632 with relate_epic2633 delegates to the cross-reference regex2634 with unrelate_epic2635 delegates to the cross-reference regex2636 with iteration2637 delegates to the cross-reference regex2638 when the note cannot contain cross references2639 scan for a `mentioned in` prefix2640 when system note metadata is not present2641 delegates to the system note service2642 with a system note2643 with :label action2644 is expected to be falsy2645 behaves like system_note_metadata includes note action2646 delegates to the cross-reference regex2647 with cross reference label note2648 is expected to be truthy2649 with :milestone action2650 is expected to be falsy2651 behaves like system_note_metadata includes note action2652 delegates to the cross-reference regex2653 with cross reference milestone note2654 is expected to be truthy2655 clear_blank_line_code!2656 clears a blank line code before validation2657 #participants2658 includes the note author2659 #start_of_discussion?2660 returns true when note is the start of a discussion2661 returns false when note is a reply2662 .find_discussion2663 returns a discussion with multiple notes2664 .grouped_diff_discussions2665 active diff discussions2666 includes active discussions2667 doesn't include outdated discussions2668 groups the discussions by line code2669 with image discussions2670 groups image discussions by file identifier2671 groups text discussions by line code2672 diff discussions for older diff refs2673 for diff refs a discussion was created at2674 includes discussions that were created then2675 groups the discussions by original line code2676 for diff refs a discussion was last active at2677 includes discussions that were last active2678 groups the discussions by line code2679 .simple_sorts2680 does not contain name sorts2681 .cherry_picked_merge_requests2682 returns merge requests that match the given merge commit2683 #for_work_item?2684 returns true for a work item2685 returns false for an issue2686 #for_project_snippet?2687 returns true for a project snippet note2688 returns false for a personal snippet note2689 #for_personal_snippet?2690 returns false for a project snippet note2691 returns true for a personal snippet note2692 #for_design2693 is true when the noteable is a design2694 #to_ability_name2695 returns note2696 #noteable_ability_name2697 returns snippet for a project snippet note2698 returns snippet for a personal snippet note2699 returns merge_request for an MR note2700 returns issue for an issue note2701 returns commit for a commit note2702 returns alert_management_alert for an alert note2703 #cache_markdown_field2704 note for a project snippet2705 skips project check2706 note for a personal snippet2707 does not skip project check2708 #can_be_discussion_note?2709 for a note on a merge request2710 returns true2711 for a note on an issue2712 returns true2713 for a note on a commit2714 returns true2715 for a note on a snippet2716 returns true2717 for a diff note on merge request2718 returns false2719 for a diff note on commit2720 returns false2721 for a discussion note2722 returns false2723 #discussion_class2724 when the note is displayed out of context2725 returns OutOfContextDiscussion2726 when the note is displayed in the original context2727 returns IndividualNoteDiscussion2728 #discussion_id2729 when it is newly created2730 has a discussion id2731 when it didn't store a discussion id before2732 has a discussion id2733 when the note is displayed out of context2734 overrides the discussion id2735 #to_discussion2736 returns a discussion with just this note2737 #discussion2738 when the note is part of a discussion2739 returns the discussion this note is in2740 when the note is not part of a discussion2741 returns a discussion with just this note2742 #part_of_discussion?2743 for a regular note2744 returns false2745 for a diff note2746 returns true2747 for a discussion note2748 returns true2749 #in_reply_to?2750 for a note2751 when part of a discussion2752 checks if the note is in reply to the other discussion2753 when not part of a discussion2754 checks if the note is in reply to the other noteable2755 for a discussion2756 when part of the same discussion2757 returns true2758 when not part of the same discussion2759 returns false2760 for a noteable2761 when a comment on the same noteable2762 returns true2763 when not a comment on the same noteable2764 returns false2765 #references2766 when part of a discussion2767 references all earlier notes in the discussion2768 when not part of a discussion2769 returns the noteable2770 expiring ETag cache2771 expires cache for note's issue when note is saved2772 expires cache for note's issue when note is destroyed2773 when issuable etag caching is disabled2774 does not store cache key2775 for merge requests2776 when adding a note to the MR2777 expires the MR note etag cache2778 when adding a note to a commit on the MR2779 expires the MR note etag cache2780 #with_notes_filter2781 when notes filter is nil2782 is expected to include #<Note id: 170, note: [FILTERED], noteable_type: "Issue", author_id: 186, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 171, note: [FILTERED], noteable_type: "Issue", author_id: 187, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2783 when notes filter is set to all notes2784 is expected to include #<Note id: 172, note: [FILTERED], noteable_type: "Issue", author_id: 188, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 173, note: [FILTERED], noteable_type: "Issue", author_id: 189, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2785 when notes filter is set to only comments2786 is expected to include #<Note id: 174, note: [FILTERED], noteable_type: "Issue", author_id: 190, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2787 is expected not to include #<Note id: 177, note: [FILTERED], noteable_type: "Issue", author_id: 193, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2788 #parent2789 returns project for project notes2790 returns nil for personal snippet note2791 scopes2792 .for_note_or_capitalized_note2793 returns the expected matching note2794 returns the expected capitalized note2795 does not support pattern matching2796 .like_note_or_capitalized_note2797 returns the expected matching note2798 returns the expected capitalized note2799 supports pattern matching2800 .with_suggestions2801 returns the correct note2802 .inc_relations_for_view2803 when noteable can not have diffs2804 does not include additional associations2805 when noteable is not set2806 includes additional diff associations2807 when noteable can have diffs2808 includes additional diff associations2809 .without_hidden2810 when a note with a banned author exists2811 when the :hidden_notes feature is disabled2812 is expected to include #<Note id: 187, note: [FILTERED], noteable_type: "Issue", author_id: 204, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 180, note: [FILTERED], noteable_type: "Issue", author_id: 197, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2813 when the :hidden_notes feature is enabled2814 is expected not to include #<Note id: 187, note: [FILTERED], noteable_type: "Issue", author_id: 204, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2815 is expected to include #<Note id: 180, note: [FILTERED], noteable_type: "Issue", author_id: 197, created_at: "2023-05-15 17:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2816 banzai_render_context2817 when noteable is a merge request2818 sets the label_url_method in the context2819 when noteable is an issue2820 sets the label_url_method in the context2821 when noteable is a personal snippet2822 sets the parent user in the context2823 #parent_user2824 returns the author of a personal snippet2825 returns nil for project snippet2826 returns nil when noteable is not a snippet2827 #skip_notification?2828 when there is no review2829 is expected to be falsey2830 when the review exists2831 is expected to be truthy2832 #attachment2833 is cleaned up correctly when project is destroyed2834 #post_processed_cache_key2835 returns cache key and author cache key by default2836 when note has no author2837 returns cache key only2838 when note has redacted_note_html2839 returns cache key with redacted_note_html sha2840 #commands_changes2841 only returns allowed keys2842 #bump_updated_at2843 sets updated_at to the current timestamp2844 with legacy edited note2845 copies updated_at to last_edited_at before bumping the timestamp2846 #note2847 behaves like note that replaces task for checklist item in body text2848 when note is not a system note2849 is expected to eq "marked the task **task 1** as completed"2850 when note is a system note2851 when note noteable_type is not Issue2852 is expected to eq "marked the task **task 1** as completed"2853 when note noteable_type is Issue2854 is expected to eq "marked the checklist item **task 1** as completed"2855 context when note and cache are null (happens in bulk insert)2856 is expected to be in [nil, ""]2857 behaves like note that replaces task for checklist item in body text2858 when note is not a system note2859 is expected to eq "marked the task **task 1** as incomplete"2860 when note is a system note2861 when note noteable_type is not Issue2862 is expected to eq "marked the task **task 1** as incomplete"2863 when note noteable_type is Issue2864 is expected to eq "marked the checklist item **task 1** as incomplete"2865 context when note and cache are null (happens in bulk insert)2866 is expected to be in [nil, ""]2867 #note_html2868 behaves like note that replaces task for checklist item in body text2869 when note is not a system note2870 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"2871 when note is a system note2872 when note noteable_type is not Issue2873 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"2874 when note noteable_type is Issue2875 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as completed</p>"2876 context when note and cache are null (happens in bulk insert)2877 is expected to be in [nil, ""]2878 behaves like note that replaces task for checklist item in body text2879 when note is not a system note2880 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"2881 when note is a system note2882 when note noteable_type is not Issue2883 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"2884 when note noteable_type is Issue2885 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as incomplete</p>"2886 context when note and cache are null (happens in bulk insert)2887 is expected to be in [nil, ""]2888 #issuable_ability_name2889 when not confidential note2890 is expected to eq :read_note2891 when confidential note2892 is expected to eq :read_internal_note2893 #exportable_record?2894 when not a system note2895 is expected to be truthy2896 with system note2897 returns `false` when the user cannot read the note2898 when user can read the note2899 is expected to be truthy2900Ci::CreatePipelineService2901 #execute2902 skips creating pipeline for refs without .gitlab-ci.yml2903 performance2904 behaves like pipelines are created without N+1 SQL queries2905 avoids N+1 queries2906 valid params2907 responds with success2908 creates a pipeline2909 increments the prometheus counter2910 records pipeline size in a prometheus histogram2911 tracks included template usage2912 when merge requests already exist for this source branch2913 when the head pipeline sha equals merge request sha2914 updates head pipeline of each merge request2915 auto-cancel enabled2916 does not cancel HEAD pipeline2917 auto cancel pending non-HEAD pipelines2918 cancels running outdated pipelines2919 cancel created outdated pipelines2920 does not cancel pipelines from the other branches2921 when the interruptible attribute is2922 not defined2923 is cancelable2924 set to true2925 is cancelable2926 set to false2927 is not cancelable2928 interruptible builds2929 properly configures interruptible status2930 when only interruptible builds are running2931 when build marked explicitly by interruptible is running2932 cancels running outdated pipelines2933 when build that is not marked as interruptible is running2934 cancels running outdated pipelines2935 when an uninterruptible build is running2936 does not cancel running outdated pipelines2937 when an build is waiting on an interruptible scheduled task2938 cancels running outdated pipelines2939 when a uninterruptible build has finished2940 does not cancel running outdated pipelines2941 auto-cancel disabled2942 does not auto cancel created non-HEAD pipelines2943 skip tag if there is no build for it2944 creates commit if there is appropriate job2945 creates commit if there is no appropriate job but deploy job has right ref setting2946 config evaluation2947 when config is in a file in repository2948 pull it from the repository2949 when config is from Auto-DevOps2950 pull it from Auto-DevOps2951 when config is not found2952 responds with error message2953 when an unexpected error is raised2954 saves error in pipeline2955 logs error2956 when yaml is invalid2957 increments the error metric2958 behaves like a failed pipeline2959 creates failed pipeline2960 when receive git commit2961 behaves like a failed pipeline2962 creates failed pipeline2963 when config has ports2964 in the main image2965 behaves like a failed pipeline2966 creates failed pipeline2967 in the job image2968 behaves like a failed pipeline2969 creates failed pipeline2970 in the service2971 behaves like a failed pipeline2972 creates failed pipeline2973 when an unexpected error is raised2974 saves error in pipeline2975 logs error2976 when commit contains a [ci skip] directive2977 when the commit message is some message[ci skip]2978 behaves like skipping a pipeline2979 skips pipeline creation2980 when the commit message is some message[skip ci]2981 behaves like skipping a pipeline2982 skips pipeline creation2983 when the commit message is some message[CI SKIP]2984 behaves like skipping a pipeline2985 skips pipeline creation2986 when the commit message is some message[SKIP CI]2987 behaves like skipping a pipeline2988 skips pipeline creation2989 when the commit message is some message[ci_skip]2990 behaves like skipping a pipeline2991 skips pipeline creation2992 when the commit message is some message[skip_ci]2993 behaves like skipping a pipeline2994 skips pipeline creation2995 when the commit message is some message[ci-skip]2996 behaves like skipping a pipeline2997 skips pipeline creation2998 when the commit message is some message[skip-ci]2999 behaves like skipping a pipeline3000 skips pipeline creation3001 when commit message does not contain [ci skip] nor [skip ci]3002 behaves like creating a pipeline3003 does not skip pipeline creation3004 when commit message is nil3005 behaves like creating a pipeline3006 does not skip pipeline creation3007 when there is [ci skip] tag in commit message and yaml is invalid3008 behaves like skipping a pipeline3009 skips pipeline creation3010 when push options contain ci.skip3011 creates a pipline in the skipped state3012 when there are no jobs for this pipeline3013 does not create a new pipeline3014 #iid3015 rewinds iid3016 when the configuration includes ID tokens3017 creates variables for the ID tokens3018 with manual actions3019 does not create a new pipeline3020 with environment3021 creates the environment with tags3022 with environment with auto_stop_in3023 creates the environment with auto stop in3024 with environment name including persisted variables3025 skips persisted variables in environment name3026 when FF `ci_remove_legacy_predefined_variables` is disabled3027 with environment name including persisted variables3028 skips persisted variables in environment name3029 environment with Kubernetes configuration3030 stores the requested namespace3031 when environment with invalid name3032 does not create an environment3033 when environment with duplicate names3034 creates a pipeline with the environment3035 when builds with auto-retries are configured3036 as an integer3037 correctly creates builds with auto-retry value configured3038 as hash3039 correctly creates builds with auto-retry value configured3040 with resource group3041 when resource group is defined3042 persists the association correctly3043 when resource group key includes predefined variables3044 interpolates the variables into the key correctly3045 when resource group is defined for review app deployment3046 persists the association correctly3047 initializes scoped variables only once for each build3048 with timeout3049 when builds with custom timeouts are configured3050 correctly creates builds with custom timeout value configured3051 with release3052 simple example3053 behaves like a successful release pipeline3054 is valid config3055 example with all release metadata3056 behaves like a successful release pipeline3057 is valid config3058 when ref is a protected branch3059 behaves like when ref is protected3060 when user is developer3061 does not create a pipeline3062 when user is maintainer3063 creates a protected pipeline3064 when trigger belongs to no one3065 does not create a pipeline3066 when trigger belongs to a developer3067 does not create a pipeline3068 when trigger belongs to a maintainer3069 creates a pipeline3070 when ref is a protected tag3071 behaves like when ref is protected3072 when user is developer3073 does not create a pipeline3074 when user is maintainer3075 creates a protected pipeline3076 when trigger belongs to no one3077 does not create a pipeline3078 when trigger belongs to a developer3079 does not create a pipeline3080 when trigger belongs to a maintainer3081 creates a pipeline3082 when pipeline is running for a tag3083 creates a tagged pipeline3084 when pipeline is running for a nonexistant-branch3085 does not create the pipeline3086 when there is a tag with that nonexistant-branch3087 does not create the pipeline3088 when pipeline is running for a branch with the name of both a branch and a tag3089 creates the pipeline for the branch3090 when pipeline is running for a tag with the name of both a branch and a tag3091 creates the pipeline for the tag3092 when pipeline is running for an ambiguous ref3093 does not create the pipeline3094 when pipeline variables are specified3095 with valid pipeline variables3096 creates a pipeline with specified variables3097 with duplicate pipeline variables3098 fails to create the pipeline3099 with more than one duplicate pipeline variable3100 fails to create the pipeline3101 when pipeline has a job with environment3102 when environment name is valid3103 has a job with environment3104 when environment name is invalid3105 has a job without environment3106 Pipeline for external pull requests3107 when source is external pull request3108 when config has external_pull_requests keywords3109 when external pull request is specified3110 creates an external pull request pipeline3111 when ref is tag3112 does not create an extrnal pull request pipeline3113 when pull request is created from fork3114 does not create an external pull request pipeline (PENDING: Not yet implemented)3115 when there are no matched jobs3116 does not create a detached merge request pipeline3117 when external pull request is not specified3118 does not create an external pull request pipeline3119 when config does not have external_pull_requests keywords3120 when external pull request is specified3121 creates an external pull request pipeline3122 when external pull request is not specified3123 does not create an external pull request pipeline3124 Pipelines for merge requests3125 when source is merge request3126 when config has merge_requests keywords3127 when merge request is specified3128 creates a detached merge request pipeline3129 persists the specified source sha3130 does not persist target sha for detached merge request pipeline3131 schedules update for the head pipeline of the merge request3132 schedules a namespace onboarding create action worker3133 when target sha is specified3134 persists the target sha3135 when ref is tag3136 does not create a merge request pipeline3137 when merge request is created from a forked project3138 creates a legacy detached merge request pipeline in the forked project3139 when there are no matched jobs3140 does not create a detached merge request pipeline3141 when config does not have merge_requests keywords3142 when merge request is specified3143 does not create a detached merge request pipeline3144 when config uses regular expression for only keyword3145 when merge request is specified3146 does not create a detached merge request pipeline3147 when config uses variables for only keyword3148 when merge request is specified3149 does not create a detached merge request pipeline3150 when config has 'except: [tags]'3151 when merge request is specified3152 does not create a detached merge request pipeline3153 when source is web3154 when config has merge_requests keywords3155 creates a branch pipeline3156 when needs is used3157 when pipeline on master is created3158 creates a pipeline with build_a and test_a3159 bulk inserts all needs3160 when pipeline on feature is created3161 when save_on_errors is enabled3162 does create a pipeline as test_a depends on build_a3163 behaves like has errors3164 contains the expected errors3165 when save_on_errors is disabled3166 does not create a pipeline as test_a depends on build_a3167 behaves like has errors3168 contains the expected errors3169 when pipeline on v1.0.0 is created3170 does create a pipeline only with deploy3171 pipeline components3172 when there is no version with specified tag3173 does not create a pipeline3174 when there is a proper revision available3175 when component is valid3176 creates a pipeline using a pipeline component3177 when interpolation is invalid3178 does not create a pipeline3179 when there is a syntax error in the template3180 does not create a pipeline3181 pipeline components using include:with instead of include:inputs3182 when there is no version with specified tag3183 does not create a pipeline3184 when there is a proper revision available3185 when component is valid3186 creates a pipeline using a pipeline component3187 when interpolation is invalid3188 does not create a pipeline3189 when there is a syntax error in the template3190 does not create a pipeline3191DesignManagement::DesignV432x230Uploader3192 resizes images3193 behaves like builds correct paths3194 #store_dir3195 behaves like matches the method pattern3196 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//3197 #cache_dir3198 behaves like matches the method pattern3199 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3200 #work_dir3201 behaves like matches the method pattern3202 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3203 #upload_path3204 behaves like matches the method pattern3205 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//3206 #relative_path3207 is relative (PENDING: Path not set, skipping.)3208 .absolute_path3209 behaves like matches the method pattern3210 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//3211 .base_dir3212 behaves like matches the method pattern3213 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3214 path traversal exploits3215 throws an exception3216 object_store is REMOTE3217 behaves like builds correct paths3218 #store_dir3219 behaves like matches the method pattern3220 is expected to match /design_management\/action\/image_v432x230\//3221 #cache_dir3222 behaves like matches the method pattern3223 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3224 #work_dir3225 behaves like matches the method pattern3226 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3227 #upload_path3228 behaves like matches the method pattern3229 is expected to match /design_management\/action\/image_v432x230\//3230 #relative_path3231 is relative (PENDING: Path not set, skipping.)3232 .absolute_path3233 behaves like matches the method pattern3234 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3235 .base_dir3236 behaves like matches the method pattern3237 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3238 path traversal exploits3239 throws an exception3240 #migrate!3241 behaves like migrates3242 returns corresponding file type3243 does nothing when migrating to the current store3244 migrate to the specified store3245 removes the original file after the migration3246 can access to the original file during migration3247 when migrate! is not occupied by another process3248 executes migrate!3249 executes use_file3250 when migrate! is occupied by another process3251 does not execute migrate!3252 does not execute use_file3253 migration is unsuccessful3254 when the store is not supported3255 does not update the object_store3256 does not delete the original file3257 upon a fog failure3258 does not update the object_store3259 does not delete the original file3260 upon a database failure3261 does not update the object_store3262 does not delete the original file3263 behaves like migrates3264 returns corresponding file type3265 does nothing when migrating to the current store3266 migrate to the specified store3267 removes the original file after the migration3268 can access to the original file during migration3269 when migrate! is not occupied by another process3270 executes migrate!3271 executes use_file3272 when migrate! is occupied by another process3273 does not execute migrate!3274 does not execute use_file3275 migration is unsuccessful3276 when the store is not supported3277 does not update the object_store3278 does not delete the original file3279 upon a fog failure3280 does not update the object_store3281 does not delete the original file3282 upon a database failure3283 does not update the object_store3284 does not delete the original file3285 accept whitelist file content type3286 mime_type: "image/png"3287 behaves like accepted carrierwave upload3288 will accept upload3289 will cache uploaded file3290 mime_type: "image/jpeg"3291 behaves like accepted carrierwave upload3292 will accept upload3293 will cache uploaded file3294 mime_type: "image/bmp"3295 behaves like accepted carrierwave upload3296 will accept upload3297 will cache uploaded file3298 mime_type: "image/gif"3299 behaves like accepted carrierwave upload3300 will accept upload3301 will cache uploaded file3302 upload non-whitelisted file content type3303 behaves like denied carrierwave upload3304 will deny upload3305 upload misnamed non-whitelisted file content type3306 behaves like denied carrierwave upload3307 will deny upload3308Issues::CloseService3309 #execute3310 checks if the user is authorized to update the issue3311 does not close the issue when the user is not authorized to do so3312 closes the external issue even when the user is not authorized to do so3313 closes the issue when the user is authorized to do so3314 refreshes the number of open issues3315 invalidates counter cache for assignees3316 does not change escalation status3317 when skip_authorization is true3318 does close the issue even if user is not authorized3319 issue is incident type3320 creates a new escalation resolved escalation status3321 behaves like an incident management tracked event3322 .track_event3323 tracks the event using redis3324 behaves like Snowplow event tracking with RedisHLL context3325 behaves like Snowplow event tracking3326 is emitted3327 when there is an escalation status3328 changes escalations status to resolved3329 adds a system note3330 adds a timeline event3331 when the escalation status did not change to resolved3332 does not create a system note3333 does not create a timeline event3334 #close_issue3335 with external issue3336 with an active external issue tracker supporting close_issue3337 closes the issue on the external issue tracker3338 with inactive external issue tracker supporting close_issue3339WARNING: An expectation of `:close_issue` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/services/issues/close_service_spec.rb:179:in `block (5 levels) in <top (required)>'.3340 does not close the issue on the external issue tracker3341 with an active external issue tracker not supporting close_issue3342 does not close the issue on the external issue tracker3343 closed by a merge request3344 mentions closure via a merge request3345 behaves like records an onboarding progress action3346 is expected to receive execute({:action=>:issue_auto_closed}) 1 time3347 updating `metrics.first_mentioned_in_commit_at`3348 when `metrics.first_mentioned_in_commit_at` is not set3349 uses the first commit authored timestamp3350 when `metrics.first_mentioned_in_commit_at` is already set3351 does not update the metrics3352 when merge request has no commits3353 does not update the metrics3354 closed by a commit3355 mentions closure via a commit3356 valid params3357 verifies the number of queries3358 closes the issue3359 records closed user3360 sends notification3361 creates resource state event about the issue being closed3362 marks todos as done3363 deletes milestone issue counters cache3364 when closing the issue fails3365 does not assign a closed_by value for the issue3366 when there is an associated Alert Management Alert3367 when alert can be resolved3368 resolves an alert and sends a system note3369 when alert cannot be resolved3370 writes a warning into the log3371 when there are several associated Alert Management Alerts3372 when alerts can be resolved3373 resolves an alert and sends a system note3374 behaves like does not record an onboarding progress action3375 is expected not to receive new(*(any args)) 0 times3376 when issue is not confidential3377 executes issue hooks3378 when issue is confidential3379 executes confidential issue hooks3380 internal issues disabled3381 does not close the issue3382Notes::CreateService3383 #execute3384 valid params3385 returns a valid note3386 returns a persisted note3387 note has valid content3388 note belongs to the correct project3389 TodoService#new_note is called3390 enqueues NewNoteWorker3391 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated3392 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times3393 with internal parameter3394 when confidential3395 returns a confidential note3396 when not confidential3397 returns a confidential note3398 with confidential parameter3399 when confidential3400 returns a confidential note3401 when not confidential3402 returns a confidential note3403 with confidential and internal parameter set3404 prefers the internal parameter3405 issue is an incident3406 behaves like an incident management tracked event3407 .track_event3408 tracks the event using redis3409 behaves like Snowplow event tracking with RedisHLL context3410 behaves like Snowplow event tracking3411 is emitted3412 in a commit3413 tracks commit comment usage data3414 behaves like Snowplow event tracking with Redis context3415 behaves like Snowplow event tracking3416 is emitted3417 event tracking3418 tracks issue comment usage data3419 does not track merge request usage data3420 behaves like issue_edit snowplow tracking3421 behaves like Snowplow event tracking with RedisHLL context3422 behaves like Snowplow event tracking3423 is emitted3424 in a merge request3425 calls MergeRequests::MarkReviewerReviewedService service3426 does not call MergeRequests::MarkReviewerReviewedService service when skip_set_reviewed is true3427 noteable highlight cache clearing3428 does not track issue comment usage data3429 tracks merge request usage data3430 clears noteable diff cache when it was unfolded for the note position3431 does not clear cache when note is not the first of the discussion3432 note diff file3433 when eligible to have a note diff file3434 note is associated with a note diff file3435 does not track ipynb note usage data3436 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated3437 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:77 namespace398/project-408!1>) 1 time3438 when skip_capture_diff_note_position execute option is set to true3439 does not execute Discussions::CaptureDiffNotePositionService3440 when skip_merge_status_trigger execute option is set to true3441 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated3442 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times3443 is ipynb file3444 :ipynbdiff_notes_tracker is off3445 does not track ipynb note usage data3446 :ipynbdiff_notes_tracker is on3447 tracks ipynb diff note creation3448 when DiffNote is a reply3449 note is not associated with a note diff file3450 when DiffNote from an image3451 note is not associated with a note diff file3452 note with commands3453 all quick actions3454 for issues3455 behaves like issuable quick actions3456 when user can update issuable3457 saves the note and updates the issue3458 when user cannot update issuable3459 applies commands that user can execute3460 for merge requests3461 behaves like issuable quick actions3462 when user can update issuable3463 saves the note and updates the issue3464 when user cannot update issuable3465 applies commands that user can execute3466 when note only have commands3467 adds commands applied message to note errors3468 adds commands failed message to note errors3469 generates success and failed error messages3470 personal snippet note3471 returns a valid note3472 returns a persisted note3473 note has valid content3474 design note3475 can create diff notes for designs3476 sends a notification about this note3477 correctly builds the position of the note3478 note with emoji only3479 creates regular note3480 reply to individual note3481 creates a DiscussionNote in reply to existing note3482 converts existing note to DiscussionNote3483 returns a DiscussionNote with its parent discussion refreshed correctly3484 failure in when_saved3485 converts existing note to DiscussionNote3486 discussion to reply cannot be found3487 returns an note with errors3488 usage counter3489 snippet note3490 increments usage counter3491 does not increment usage counter when creation fails3492 issue note3493 does not increment usage counter3494Gitlab::ImportExport::Project::TreeSaver3495 behaves like saves project tree successfully3496 saves project tree attributes3497 with project root3498 is expected to include {"description" => "description", "visibility_level" => 20}3499 is expected not to include {"runners_token" => "token"}3500 has approvals_before_merge set3501 with milestones3502 is expected not to be empty3503 with merge_requests3504 is expected not to be empty3505 has merge request's milestones3506 has merge request's source branch SHA3507 has merge request's target branch SHA3508 has events3509 has merge requests diffs3510 has merge request diff files3511 has merge request diff commits3512 has merge requests comments3513 has author on merge requests comments3514 has merge request approvals3515 has merge request resource label events3516 has merge request assignees3517 has merge request reviewers3518 with snippets3519 is expected not to be empty3520 has snippet notes3521 with releases3522 is expected not to be empty3523 has no author on releases3524 has the author ID on releases3525 with issues3526 is expected not to be empty3527 has issue comments3528 has issue assignees3529 has author on issue comments3530 has labels associated to records3531 has project and group labels3532 has priorities associated to labels3533 has issue resource label events3534 saves the issue designs correctly3535 saves the issue design notes correctly3536 saves the issue design versions correctly3537 with ci_pipelines3538 is expected not to be empty3539 has pipeline stages3540 has pipeline builds3541 has pipeline generic_commit_statuses3542 has pipeline bridges3543 with commit_notes3544 is expected not to be empty3545 with labels3546 is expected not to be empty3547 with project_feature3548 is expected not to be empty3549 has project feature3550 with custom_attributes3551 has custom attributes3552 with badges3553 has badges3554 with project_members3555 is expected not to be empty3556 with boards3557 is expected not to be empty3558 #saves project tree3559 saves project successfully3560 does not complain about non UTF-8 characters in MR diff files3561 overrides group members3562 when has no permission3563 does not export group members3564 when has permission as maintainer3565 does not export group members3566 when has permission as group owner3567 exports group members as group owner3568 as admin3569 when admin mode is enabled3570 exports group members as admin3571 exports group members as project members3572 when admin mode is disabled3573 does not export group members3574 with description override3575 is expected to include {"description" => "Foo Bar"}3576 when streaming has to retry3577 retries and succeeds3578 retries and does not succeed3579DraftNotes::PublishService3580 only publishes the draft notes belonging to the current user3581 single draft note3582 publishes3583 does not skip notification3584 does not track the publish event3585 commit_id is set3586 creates note from draft with commit_id3587 multiple draft notes3588 returns success3589 publishes all draft notes for a user in a merge request3590 sends batch notification3591 tracks the publish event3592 when review fails to create3593 does not publish any draft note3594 does not track the publish event3595 returns an error3596 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated3597 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times3598 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated3599 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:102 namespace453/project-463!1>) 1 time3600 capturing diff notes positions and keeping around commits3601 creates diff_note_positions for diff notes3602 keeps around the commits of each published note3603 does not request a lot from Gitaly3604 commit_id is set3605 creates note from draft with commit_id3606 draft notes with suggestions3607 creates a suggestion with correct content3608 when the diff is changed3609 creates a suggestion based on the latest diff content and positions3610 with quick actions3611 performs quick actions3612 does not create a note if it only contains quick actions3613 with drafts that resolve threads3614 resolves the thread3615 sends notifications if all threads are resolved3616 user cannot create notes3617 returns an error3618Ci::Runners::CreateRunnerService#execute3619 # order random3620 with :runner_type param set to instance_type3621 when anonymous user3622 behaves like it cannot create a runner3623 runner payload is nil3624 is expected to be error3625 when non-admin user3626 behaves like it cannot create a runner3627 runner payload is nil3628 is expected to be error3629 when admin user3630 behaves like it cannot create a runner3631 runner payload is nil3632 is expected to be error3633 when admin mode is enabled3634 behaves like it can create a runner3635 creates a runner of the specified type3636 with default params provided3637 is expected to be success3638 uses default values when none are provided3639 with non-default params provided3640 is expected to be success3641 creates runner with specified values3642 with a nil paused value3643 is expected to be success3644 creates runner with active set to true3645 with no paused value given3646 is expected to be success3647 creates runner with active set to true3648 behaves like it can return an error3649 when the runner fails to save3650 returns error message3651 behaves like it cannot create a runner3652 runner payload is nil3653 is expected to be error3654 with unexpected scope param specified3655 behaves like it cannot create a runner3656 runner payload is nil3657 is expected to be error3658 when model validation fails3659 returns error message and reason3660 behaves like it cannot create a runner3661 runner payload is nil3662 is expected to be error3663 with :runner_type param set to project_type3664 when anonymous user3665 behaves like it cannot create a runner3666 runner payload is nil3667 is expected to be error3668 when group owner3669 behaves like it can create a runner3670 creates a runner of the specified type3671 with default params provided3672 is expected to be success3673 uses default values when none are provided3674 with non-default params provided3675 is expected to be success3676 creates runner with specified values3677 with a nil paused value3678 is expected to be success3679 creates runner with active set to true3680 with no paused value given3681 is expected to be success3682 creates runner with active set to true3683 with missing scope param3684 behaves like it cannot create a runner3685 runner payload is nil3686 is expected to be error3687 when non-admin user3688 behaves like it cannot create a runner3689 runner payload is nil3690 is expected to be error3691 with project permissions to create runner3692 behaves like it can create a runner3693 creates a runner of the specified type3694 with default params provided3695 is expected to be success3696 uses default values when none are provided3697 with non-default params provided3698 is expected to be success3699 creates runner with specified values3700 with a nil paused value3701 is expected to be success3702 creates runner with active set to true3703 with no paused value given3704 is expected to be success3705 creates runner with active set to true3706 when admin user3707 behaves like it cannot create a runner3708 runner payload is nil3709 is expected to be error3710 when admin mode is enabled3711 behaves like it can create a runner3712 creates a runner of the specified type3713 with default params provided3714 is expected to be success3715 uses default values when none are provided3716 with non-default params provided3717 is expected to be success3718 creates runner with specified values3719 with a nil paused value3720 is expected to be success3721 creates runner with active set to true3722 with no paused value given3723 is expected to be success3724 creates runner with active set to true3725 behaves like it can return an error3726 when the runner fails to save3727 returns error message3728 behaves like it cannot create a runner3729 runner payload is nil3730 is expected to be error3731 with :runner_type param set to group_type3732 when anonymous user3733 behaves like it cannot create a runner3734 runner payload is nil3735 is expected to be error3736 when non-admin user3737 behaves like it cannot create a runner3738 runner payload is nil3739 is expected to be error3740 when group owner3741 behaves like it can create a runner3742 creates a runner of the specified type3743 with default params provided3744 is expected to be success3745 uses default values when none are provided3746 with non-default params provided3747 is expected to be success3748 creates runner with specified values3749 with a nil paused value3750 is expected to be success3751 creates runner with active set to true3752 with no paused value given3753 is expected to be success3754 creates runner with active set to true3755 with missing scope param3756 behaves like it cannot create a runner3757 runner payload is nil3758 is expected to be error3759 when admin user3760 behaves like it cannot create a runner3761 runner payload is nil3762 is expected to be error3763 when admin mode is enabled3764 behaves like it can create a runner3765 creates a runner of the specified type3766 with default params provided3767 is expected to be success3768 uses default values when none are provided3769 with non-default params provided3770 is expected to be success3771 creates runner with specified values3772 with a nil paused value3773 is expected to be success3774 creates runner with active set to true3775 with no paused value given3776 is expected to be success3777 creates runner with active set to true3778 behaves like it can return an error3779 when the runner fails to save3780 returns error message3781 behaves like it cannot create a runner3782 runner payload is nil3783 is expected to be error3784Ci::RunnersFinder3785 admin3786 #execute3787 when admin mode setting is disabled3788 behaves like executes as admin3789 with 2 runners3790 with empty params3791 returns all runners3792 with nil group3793 returns all runners3794 with preload param set to :tag_name true3795 requests tags3796 with preload param set to :tag_name false3797 does not request tags3798 filtering3799 by search term3800 calls Ci::Runner.search3801 by upgrade status3802 set to :not_processed3803 calls with_upgrade_status scope with corresponding :not_processed status3804 set to :invalid_version3805 calls with_upgrade_status scope with corresponding :invalid_version status3806 set to :unavailable3807 calls with_upgrade_status scope with corresponding :unavailable status3808 set to :available3809 calls with_upgrade_status scope with corresponding :available status3810 set to :recommended3811 calls with_upgrade_status scope with corresponding :recommended status3812 set to an invalid value3813 raises ArgumentError3814 set to nil3815 does not call with_upgrade_status3816 by status3817 calls the corresponding :active scope on Ci::Runner3818 calls the corresponding :paused scope on Ci::Runner3819 calls the corresponding :online scope on Ci::Runner3820 calls the corresponding :offline scope on Ci::Runner3821 calls the corresponding :never_contacted scope on Ci::Runner3822 calls the corresponding :stale scope on Ci::Runner3823 by active status3824 with active set as false calls the corresponding scope on Ci::Runner with false3825 with active set as true calls the corresponding scope on Ci::Runner with true3826 by runner type3827 calls the corresponding scope on Ci::Runner3828 by tag_name3829 calls the corresponding scope on Ci::Runner3830 sorting3831 without sort param3832 behaves like sorts by created_at descending3833 sorts by created_at descending3834 with sort param equal to created_date3835 behaves like sorts by created_at descending3836 sorts by created_at descending3837 with sort param equal to created_at_desc3838 behaves like sorts by created_at descending3839 sorts by created_at descending3840 with sort param equal to created_at_asc3841 sorts by created_at ascending3842 with sort param equal to contacted_asc3843 sorts by contacted_at ascending3844 with sort param equal to contacted_desc3845 sorts by contacted_at descending3846 with sort param equal to token_expires_at_asc3847 sorts by contacted_at ascending3848 with sort param equal to token_expires_at_desc3849 sorts by contacted_at descending3850 when admin mode setting is enabled3851 when in admin mode3852 behaves like executes as admin3853 with 2 runners3854 with empty params3855 returns all runners3856 with nil group3857 returns all runners3858 with preload param set to :tag_name true3859 requests tags3860 with preload param set to :tag_name false3861 does not request tags3862 filtering3863 by search term3864 calls Ci::Runner.search3865 by upgrade status3866 set to :not_processed3867 calls with_upgrade_status scope with corresponding :not_processed status3868 set to :invalid_version3869 calls with_upgrade_status scope with corresponding :invalid_version status3870 set to :unavailable3871 calls with_upgrade_status scope with corresponding :unavailable status3872 set to :available3873 calls with_upgrade_status scope with corresponding :available status3874 set to :recommended3875 calls with_upgrade_status scope with corresponding :recommended status3876 set to an invalid value3877 raises ArgumentError3878 set to nil3879 does not call with_upgrade_status3880 by status3881 calls the corresponding :active scope on Ci::Runner3882 calls the corresponding :paused scope on Ci::Runner3883 calls the corresponding :online scope on Ci::Runner3884 calls the corresponding :offline scope on Ci::Runner3885 calls the corresponding :never_contacted scope on Ci::Runner3886 calls the corresponding :stale scope on Ci::Runner3887 by active status3888 with active set as false calls the corresponding scope on Ci::Runner with false3889 with active set as true calls the corresponding scope on Ci::Runner with true3890 by runner type3891 calls the corresponding scope on Ci::Runner3892 by tag_name3893 calls the corresponding scope on Ci::Runner3894 sorting3895 without sort param3896 behaves like sorts by created_at descending3897 sorts by created_at descending3898 with sort param equal to created_date3899 behaves like sorts by created_at descending3900 sorts by created_at descending3901 with sort param equal to created_at_desc3902 behaves like sorts by created_at descending3903 sorts by created_at descending3904 with sort param equal to created_at_asc3905 sorts by created_at ascending3906 with sort param equal to contacted_asc3907 sorts by contacted_at ascending3908 with sort param equal to contacted_desc3909 sorts by contacted_at descending3910 with sort param equal to token_expires_at_asc3911 sorts by contacted_at ascending3912 with sort param equal to token_expires_at_desc3913 sorts by contacted_at descending3914 when not in admin mode3915 behaves like executes as normal user3916 returns no runners3917 by non admin user3918 behaves like executes as normal user3919 returns no runners3920 when user is nil3921 returns no runners3922 group3923 #execute3924 with user as group owner3925 with :group as target group3926 passing no params3927 behaves like membership equal to :descendants3928 returns all descendant runners3929 with :descendants membership3930 behaves like membership equal to :descendants3931 returns all descendant runners3932 with :direct membership3933 returns runners belonging to group3934 with :all_available membership3935 returns runners available to group3936 with unknown membership3937 raises an error3938 with nil group3939 returns no runners3940 with sort param3941 sorts by specified attribute3942 filtering3943 by search term3944 returns correct runner3945 by active status3946 returns correct runner3947 by status3948 returns correct runner3949 by tag_name3950 returns correct runner3951 by runner type3952 returns correct runners3953 when user is not group owner3954 user_permission: :maintainer3955 with :sub_group_1 as target group3956 returns no runners3957 with :group as target group3958 returns no runners3959 with :all_available membership3960 returns no runners3961 user_permission: :developer3962 with :sub_group_1 as target group3963 returns no runners3964 with :group as target group3965 returns no runners3966 with :all_available membership3967 returns no runners3968 user_permission: :reporter3969 with :sub_group_1 as target group3970 returns no runners3971 with :group as target group3972 returns no runners3973 with :all_available membership3974 returns no runners3975 user_permission: :guest3976 with :sub_group_1 as target group3977 returns no runners3978 with :group as target group3979 returns no runners3980 with :all_available membership3981 returns no runners3982 when user has no access3983 returns no runners3984 when user is nil3985 returns no runners3986 #sort_key3987 without params3988 returns created_at_desc3989 with params3990 returns contacted_asc3991 project3992 #execute3993 with user as project admin3994 with project runners3995 returns runners available to project3996 with ancestor group runners3997 returns runners available to project3998 with allowed shared runners3999 returns runners available to project4000 with project, ancestor group, and allowed shared runners4001 returns runners available to project4002 filtering4003 by search term4004 returns the correct runner4005 by active status4006 returns the correct runners4007 by status4008 returns correct runner4009 by tag_name4010 returns correct runner4011 by runner type4012 returns correct runners4013 with user as project developer4014 returns no runners4015 when user is nil4016 returns no runners4017 with nil project_full_path4018 returns no runners4019AlertManagement::Alert4020 associations4021 is expected to belong to project required: false4022 is expected to belong to issue optional: true4023 is expected to belong to prometheus_alert optional: true4024 is expected to belong to environment optional: true4025 is expected to have many assignees through alert_assignees4026 is expected to have many notes inverse_of => noteable4027 is expected to have many ordered_notes class_name => Note inverse_of => noteable4028 is expected to have many user_mentions class_name => AlertManagement::AlertUserMention inverse_of => alert4029 validations4030 is expected to validate that :title cannot be empty/falsy4031 is expected to validate that :events cannot be empty/falsy4032 is expected to validate that :severity cannot be empty/falsy4033 is expected to validate that :status cannot be empty/falsy4034 is expected to validate that :started_at cannot be empty/falsy4035 is expected to validate that the length of :title is at most 2004036 is expected to validate that the length of :description is at most 10004037 is expected to validate that the length of :service is at most 1004038 is expected to validate that the length of :monitoring_tool is at most 1004039 fingerprint4040 adding an alert with the same fingerprint4041 same project, various states4042 existing_status_event: :resolve, new_status: :triggered, valid: true4043 is expected to be valid4044 existing_status_event: :resolve, new_status: :acknowledged, valid: true4045 is expected to be valid4046 existing_status_event: :resolve, new_status: :ignored, valid: true4047 is expected to be valid4048 existing_status_event: :resolve, new_status: :resolved, valid: true4049 is expected to be valid4050 existing_status_event: :trigger, new_status: :triggered, valid: false4051 is expected to be invalid4052 existing_status_event: :trigger, new_status: :acknowledged, valid: false4053 is expected to be invalid4054 existing_status_event: :trigger, new_status: :ignored, valid: false4055 is expected to be invalid4056 existing_status_event: :trigger, new_status: :resolved, valid: true4057 is expected to be valid4058 existing_status_event: :acknowledge, new_status: :triggered, valid: false4059 is expected to be invalid4060 existing_status_event: :acknowledge, new_status: :acknowledged, valid: false4061 is expected to be invalid4062 existing_status_event: :acknowledge, new_status: :ignored, valid: false4063 is expected to be invalid4064 existing_status_event: :acknowledge, new_status: :resolved, valid: true4065 is expected to be valid4066 existing_status_event: :ignore, new_status: :triggered, valid: false4067 is expected to be invalid4068 existing_status_event: :ignore, new_status: :acknowledged, valid: false4069 is expected to be invalid4070 existing_status_event: :ignore, new_status: :ignored, valid: false4071 is expected to be invalid4072 existing_status_event: :ignore, new_status: :resolved, valid: true4073 is expected to be valid4074 different project4075 is expected to be valid4076 hosts4077 over 255 total chars4078 is expected not to be valid4079 under 255 chars4080 is expected to be valid4081 nested array4082 is expected not to be valid4083 enums4084 is expected to define :severity as an enum backed by an integer with values ‹{critical: 0, high: 1, medium: 2, low: 3, info: 4, unknown: 5}›4085 scopes4086 .for_iid4087 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4088 .for_fingerprint4089 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4090 .for_environment4091 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4092 .for_assignee_username4093 when matching assignee_username4094 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4095 when unknown assignee_username4096 is expected to be empty4097 with empty assignee_username4098 is expected to be empty4099 .order_severity_with_open_prometheus_alert4100 is expected to eq [#<AlertManagement::Alert id:12 namespace476/project-487^alert#2>, #<AlertManagement::Alert id:13 namespace476/project-487^alert#3>]4101 .counts_by_project_id4102 is expected to eq {411=>2, 412=>2}4103 .not_resolved4104 is expected to contain exactly #<AlertManagement::Alert id:6 namespace473/project-484^alert#2>, #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>, and #<AlertManagement::Alert id:8 namespace474/project-485^alert#2>4105 behaves like a model including Escalatable4106 validations4107 is expected to validate that :status cannot be empty/falsy4108 when status is triggered4109 when resolved_at is blank4110 is expected to be valid4111 when resolved_at is present4112 is expected to be invalid4113 when status is acknowledged4114 when resolved_at is blank4115 is expected to be valid4116 when resolved_at is present4117 is expected to be invalid4118 when status is resolved4119 when resolved_at is blank4120 is expected to be invalid4121 when resolved_at is present4122 is expected to be valid4123 when status is ignored4124 when resolved_at is blank4125 is expected to be valid4126 when resolved_at is present4127 is expected to be invalid4128 scopes4129 .order_status4130 descending4131 is expected to eq [#<AlertManagement::Alert id:14 namespace477/project-488^alert#1>, #<AlertManagement::Alert id:15 nam...namespace479/project-490^alert#1>, #<AlertManagement::Alert id:17 namespace480/project-491^alert#1>]4132 ascending4133 is expected to eq [#<AlertManagement::Alert id:17 namespace480/project-491^alert#1>, #<AlertManagement::Alert id:16 nam...namespace478/project-489^alert#1>, #<AlertManagement::Alert id:14 namespace477/project-488^alert#1>]4134 .open4135 is expected to contain exactly #<AlertManagement::Alert id:15 namespace478/project-489^alert#1> and #<AlertManagement::Alert id:14 namespace477/project-488^alert#1>4136 .status_value4137 status: :triggered, status_value: 04138 returns status value by its name4139 status: :acknowledged, status_value: 14140 returns status value by its name4141 status: :resolved, status_value: 24142 returns status value by its name4143 status: :ignored, status_value: 34144 returns status value by its name4145 status: :unknown, status_value: nil4146 returns status value by its name4147 .status_name4148 raw_status: 0, status: :triggered4149 returns status name by its values4150 raw_status: 1, status: :acknowledged4151 returns status name by its values4152 raw_status: 2, status: :resolved4153 returns status name by its values4154 raw_status: 3, status: :ignored4155 returns status name by its values4156 raw_status: -1, status: nil4157 returns status name by its values4158 .open_status?4159 status: :triggered, is_open_status: true4160 returns true when the status is open status4161 status: :acknowledged, is_open_status: true4162 returns true when the status is open status4163 status: :resolved, is_open_status: false4164 returns true when the status is open status4165 status: :ignored, is_open_status: false4166 returns true when the status is open status4167 status: nil, is_open_status: false4168 returns true when the status is open status4169 #trigger4170 when escalatable is in triggered state4171 does not change the escalatable status4172 when escalatable is not in triggered state4173 changes the escalatable status to triggered4174 resets resolved at4175 #acknowledge4176 changes the escalatable status to acknowledged4177 resets ended at4178 #resolve4179 when escalatable is already resolved4180 does not change the escalatable status4181 when escalatable is not resolved4182 changes escalatable status to "resolved"4183 #ignore4184 changes the escalatable status to ignored4185 resets ended at4186 #status_event_for4187 for_status: :triggered, event: :trigger4188 returns event by status name4189 for_status: "triggered", event: :trigger4190 returns event by status name4191 for_status: :acknowledged, event: :acknowledge4192 returns event by status name4193 for_status: "acknowledged", event: :acknowledge4194 returns event by status name4195 for_status: :resolved, event: :resolve4196 returns event by status name4197 for_status: "resolved", event: :resolve4198 returns event by status name4199 for_status: :ignored, event: :ignore4200 returns event by status name4201 for_status: "ignored", event: :ignore4202 returns event by status name4203 for_status: :unknown, event: nil4204 returns event by status name4205 for_status: nil, event: nil4206 returns event by status name4207 for_status: "", event: nil4208 returns event by status name4209 for_status: 1, event: nil4210 returns event by status name4211 #open?4212 returns true when the status is open status4213 .counts_by_status4214 is expected to eq {:acknowledged=>1, :ignored=>1, :resolved=>1, :triggered=>1}4215 .find_unresolved_alert4216 is expected to eq #<AlertManagement::Alert id:20 namespace473/project-484^alert#4>4217 .last_prometheus_alert_by_project_id4218 returns the latest alert for each project4219 .search4220 does not contain search string4221 is expected to be empty4222 title includes query4223 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4224 description includes query4225 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4226 service includes query4227 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4228 monitoring tool includes query4229 is expected to contain exactly #<AlertManagement::Alert id:5 namespace473/project-484^alert#1>4230 .reference_pattern4231 is expected to match "gitlab-org/gitlab^alert#123"4232 .link_reference_pattern4233 is expected to match "http://localhost/namespace473/project-484/-/alert_management/1/details"4234 is expected not to match "http://localhost/gitlab-org/gitlab/alert_management/123"4235 is expected not to match "http://localhost/gitlab-org/gitlab/issues/123"4236 is expected not to match "gitlab-org/gitlab/-/alert_management/123"4237 .reference_valid?4238 ref: "123456", result: true4239 is expected to eq true4240 ref: "1", result: true4241 is expected to eq true4242 ref: "-1", result: false4243 is expected to eq false4244 ref: nil, result: false4245 is expected to eq false4246 ref: "123456891012345678901234567890", result: false4247 is expected to eq false4248 #to_reference4249 is expected to eq "^alert#1"4250 #register_new_event!4251 increments the events count by 14252 #resolved_at4253 is expected to eq 2023-05-15 17:16:03.118466000 +00004254 #resolved_at=4255 sets ended_at4256Gitlab::Gpg::Commit4257 #signature4258 unsigned commit4259 returns nil4260 invalid signature4261 returns nil4262 known key4263 user matches the key uid4264 user email matches the email committer4265 returns a valid signature4266 behaves like returns the cached signature on second call4267 returns the cached signature on second call4268 read-only mode4269 does not create a cached signature4270 valid key signed using recent version of Gnupg4271 returns a valid signature4272 valid key signed using older version of Gnupg4273 returns a valid signature4274 commit with multiple signatures4275 returns an invalid signatures error4276 commit signed with a subkey4277 returns a valid signature4278 behaves like returns the cached signature on second call4279 returns the cached signature on second call4280 gpg key email does not match the committer_email but is the same user when the committer_email belongs to the user as a confirmed secondary email4281 returns an invalid signature4282 behaves like returns the cached signature on second call4283 returns the cached signature on second call4284 gpg key email does not match the committer_email when the committer_email belongs to the user as a unconfirmed secondary email4285 returns an invalid signature4286 behaves like returns the cached signature on second call4287 returns the cached signature on second call4288 user email does not match the committer email4289 returns an invalid signature4290 behaves like returns the cached signature on second call4291 returns the cached signature on second call4292 user does not match the key uid4293 returns an invalid signature4294 behaves like returns the cached signature on second call4295 returns the cached signature on second call4296 unknown key4297 returns an invalid signature4298 behaves like returns the cached signature on second call4299 returns the cached signature on second call4300 multiple commits with signatures4301 does an aggregated sql request instead of 2 separate ones4302 #update_signature!4303 updates signature record4304Gitlab::RelativePositioning::ItemContext4305 there are gaps at the start and end4306 is always possible to find a gap4307 index: 44308 is possible to shift_right, which will consume the gap at the end4309 is possible to create_space_right, which will move the gap to immediately after4310 is possible to shift_left, which will consume the gap at the start4311 is possible to create_space_left, which will move the gap to immediately before4312 index: 34313 is possible to shift_right, which will consume the gap at the end4314 is possible to create_space_right, which will move the gap to immediately after4315 is possible to shift_left, which will consume the gap at the start4316 is possible to create_space_left, which will move the gap to immediately before4317 index: 24318 is possible to shift_right, which will consume the gap at the end4319 is possible to create_space_right, which will move the gap to immediately after4320 is possible to shift_left, which will consume the gap at the start4321 is possible to create_space_left, which will move the gap to immediately before4322 index: 14323 is possible to shift_right, which will consume the gap at the end4324 is possible to create_space_right, which will move the gap to immediately after4325 is possible to shift_left, which will consume the gap at the start4326 is possible to create_space_left, which will move the gap to immediately before4327 index: 04328 is possible to shift_right, which will consume the gap at the end4329 is possible to create_space_right, which will move the gap to immediately after4330 is possible to shift_left, which will consume the gap at the start4331 is possible to create_space_left, which will move the gap to immediately before4332 there is a gap of multiple spaces4333 is impossible to move the last element to the right4334 is impossible to move the first element to the left4335 is possible to move the last element to the left4336 is possible to move the first element to the right4337 is possible to find the gap from the right4338 is possible to find the gap from the left4339 there are several free spaces4340 current_pos: 1024341 finds the closest gap4342 finds the neighbours4343 finds the next relative_positions4344 finds the min/max positions4345 finds the min/max siblings4346 current_pos: 1044347 finds the closest gap4348 finds the neighbours4349 finds the next relative_positions4350 finds the min/max positions4351 finds the min/max siblings4352 current_pos: 1064353 finds the closest gap4354 finds the neighbours4355 finds the next relative_positions4356 finds the min/max positions4357 finds the min/max siblings4358 there is at least one free space4359 free_space: 1014360 can always find a gap before if there is space to the left4361 can always find a gap after if there is space to the right4362 free_space: 1024363 can always find a gap before if there is space to the left4364 can always find a gap after if there is space to the right4365 free_space: 1034366 can always find a gap before if there is space to the left4367 can always find a gap after if there is space to the right4368 free_space: 1044369 can always find a gap before if there is space to the left4370 can always find a gap after if there is space to the right4371 free_space: 1054372 can always find a gap before if there is space to the left4373 can always find a gap after if there is space to the right4374 free_space: 1064375 can always find a gap before if there is space to the left4376 can always find a gap after if there is space to the right4377 free_space: 1074378 can always find a gap before if there is space to the left4379 can always find a gap after if there is space to the right4380 #at_position4381 finds the item at the specified position4382 raises InvalidPosition when the item cannot be found4383GroupChildEntity4384 for a project4385 has the correct type4386 includes the star count4387 has the correct edit path4388 includes the last activity at4389 behaves like group child json4390 renders json4391 includes id4392 includes full_name4393 includes avatar_url4394 includes name4395 includes description4396 includes markdown_description4397 includes visibility4398 includes type4399 includes can_edit4400 includes visibility4401 includes permission4402 includes relative_path4403 for a group4404 has the correct type4405 counts projects and subgroups as children4406 includes children_count4407 includes leave_path4408 includes parent_id4409 includes number_users_with_delimiter4410 includes project_count4411 includes subgroup_count4412 allows an owner to leave when there is another one4413 allows an owner to delete the group4414 allows admin to delete the group4415 disallows a maintainer to delete the group4416 has the correct edit path4417 emoji in description4418 has the correct markdown_description4419 behaves like group child json4420 renders json4421 includes id4422 includes full_name4423 includes avatar_url4424 includes name4425 includes description4426 includes markdown_description4427 includes visibility4428 includes type4429 includes can_edit4430 includes visibility4431 includes permission4432 includes relative_path4433 for a private group4434 user is member of the group4435 includes the counts4436 user is not a member of the group4437 does not include the counts4438 user is only a member of a project in the group4439 does not include the counts4440 for a project with external authorization enabled4441 does not hit the external authorization service4442Gitlab::ReferenceExtractor4443 accesses valid user objects4444 ignores user mentions inside specific elements4445 does not include anchors from table of contents in issue references4446 accesses valid issue objects4447 accesses valid merge requests4448 accesses valid labels4449 accesses valid snippets4450 accesses valid commits4451 accesses valid commit ranges4452 directly addressed users4453 when a user is directly addressed4454 accesses the user object which is mentioned in the beginning of the line4455 doesn't access the user object if it's not mentioned in the beginning of the line4456 when multiple users are addressed4457 accesses the user objects which are mentioned in the beginning of the line4458 doesn't access the user objects if they are not mentioned in the beginning of the line4459 when multiple users are addressed in different paragraphs4460 accesses user objects which are mentioned in the beginning of each paragraph4461 with an external issue tracker4462 when GitLab issues are enabled4463 returns both Jira and internal issues4464 returns only Jira issues if the internal one does not exist4465 when GitLab issues are disabled4466 returns only Jira issues4467 with an inactive external issue tracker4468 when GitLab issues are enabled4469 returns only internal issue4470 does not return any issue if the internal one does not exist4471 with a project with an underscore4472 handles project issue references4473 #all4474 returns all referables4475 #alerts4476 returns alert referables4477 .references_pattern4478 is expected to be a kind of Regexp4479 referables prefixes4480 returns all supported prefixes4481 does not allow one prefix for multiple referables if not allowed specificly4482 #references4483 does not return any references4484 when references are visible4485 returns visible references of given type4486 #all_visible?4487 returns true if no references were parsed yet4488 when references was already called4489 returns false4490 when user can access only some references4491 returns false4492 when user can access all references4493 returns true4494Integrations::Field4495 #initialize4496 sets type password for secret fields4497 uses the given type for other names4498 raises an error if an invalid attribute is given4499 raises an error if an invalid type is given4500 #name4501 is stringified4502 when not set4503 complains4504 #section4505 responds to section4506 when not set4507 has the correct default4508 when set to a static value4509 is known4510 when set to a dynamic value4511 is computed4512 is executed in the class scope4513 #type4514 responds to type4515 when not set4516 has the correct default4517 when set to a static value4518 is known4519 when set to a dynamic value4520 is computed4521 is executed in the class scope4522 #placeholder4523 responds to placeholder4524 when not set4525 has the correct default4526 when set to a static value4527 is known4528 when set to a dynamic value4529 is computed4530 is executed in the class scope4531 #choices4532 responds to choices4533 when not set4534 has the correct default4535 when set to a static value4536 is known4537 when set to a dynamic value4538 is computed4539 is executed in the class scope4540 #value4541 responds to value4542 when not set4543 has the correct default4544 when set to a static value4545 is known4546 when set to a dynamic value4547 is computed4548 is executed in the class scope4549 #checkbox_label4550 responds to checkbox_label4551 when not set4552 has the correct default4553 when set to a static value4554 is known4555 when set to a dynamic value4556 is computed4557 is executed in the class scope4558 #title4559 responds to title4560 when not set4561 has the correct default4562 when set to a static value4563 is known4564 when set to a dynamic value4565 is computed4566 is executed in the class scope4567 #help4568 responds to help4569 when not set4570 has the correct default4571 when set to a static value4572 is known4573 when set to a dynamic value4574 is computed4575 is executed in the class scope4576 #non_empty_password_help4577 responds to non_empty_password_help4578 when not set4579 has the correct default4580 when set to a static value4581 is known4582 when set to a dynamic value4583 is computed4584 is executed in the class scope4585 #non_empty_password_title4586 responds to non_empty_password_title4587 when not set4588 has the correct default4589 when set to a static value4590 is known4591 when set to a dynamic value4592 is computed4593 is executed in the class scope4594 #required4595 responds to required4596 when not set4597 has the correct default4598 when set to a static value4599 is known4600 when set to a dynamic value4601 is computed4602 is executed in the class scope4603 #api_only4604 responds to api_only4605 when not set4606 has the correct default4607 when set to a static value4608 is known4609 when set to a dynamic value4610 is computed4611 is executed in the class scope4612 #is_secret4613 responds to is_secret4614 when not set4615 has the correct default4616 when set to a static value4617 is known4618 when set to a dynamic value4619 is computed4620 is executed in the class scope4621 #exposes_secrets4622 responds to exposes_secrets4623 when not set4624 has the correct default4625 when set to a static value4626 is known4627 when set to a dynamic value4628 is computed4629 is executed in the class scope4630 #required?4631 returns true if the value is truthy4632 returns false if the value is falsey4633 #api_only?4634 returns true if the value is truthy4635 returns false if the value is falsey4636 #is_secret?4637 returns true if the value is truthy4638 returns false if the value is falsey4639 #exposes_secrets?4640 returns true if the value is truthy4641 returns false if the value is falsey4642 #text?4643 returns true if the type matches4644 returns false if the type does not match4645 #textarea?4646 returns true if the type matches4647 returns false if the type does not match4648 #password?4649 returns true if the type matches4650 returns false if the type does not match4651 #checkbox?4652 returns true if the type matches4653 returns false if the type does not match4654 #select?4655 returns true if the type matches4656 returns false if the type does not match4657 #secret?4658 when empty4659 is expected not to be secret4660 when a secret field4661 is expected to be secret4662 when named url4663 is expected not to be secret4664Every integration4665 apple_app_store4666 secret fields4667 uses type: 'password' for all secret fields4668 defines non-empty titles and help texts for all secret fields4669 asana4670 secret fields4671 uses type: 'password' for all secret fields4672 defines non-empty titles and help texts for all secret fields4673 assembla4674 secret fields4675 uses type: 'password' for all secret fields4676 defines non-empty titles and help texts for all secret fields4677 bamboo4678 secret fields4679 uses type: 'password' for all secret fields4680 defines non-empty titles and help texts for all secret fields4681 bugzilla4682 secret fields4683 uses type: 'password' for all secret fields4684 defines non-empty titles and help texts for all secret fields4685 buildkite4686 secret fields4687 uses type: 'password' for all secret fields4688 defines non-empty titles and help texts for all secret fields4689 campfire4690 secret fields4691 uses type: 'password' for all secret fields4692 defines non-empty titles and help texts for all secret fields4693 confluence4694 secret fields4695 uses type: 'password' for all secret fields4696 defines non-empty titles and help texts for all secret fields4697 custom_issue_tracker4698 secret fields4699 uses type: 'password' for all secret fields4700 defines non-empty titles and help texts for all secret fields4701 datadog4702 secret fields4703 uses type: 'password' for all secret fields4704 defines non-empty titles and help texts for all secret fields4705 discord4706 secret fields4707 uses type: 'password' for all secret fields4708 defines non-empty titles and help texts for all secret fields4709 drone_ci4710 secret fields4711 uses type: 'password' for all secret fields4712 defines non-empty titles and help texts for all secret fields4713 emails_on_push4714 secret fields4715 uses type: 'password' for all secret fields4716 defines non-empty titles and help texts for all secret fields4717 ewm4718 secret fields4719 uses type: 'password' for all secret fields4720 defines non-empty titles and help texts for all secret fields4721 external_wiki4722 secret fields4723 uses type: 'password' for all secret fields4724 defines non-empty titles and help texts for all secret fields4725 github4726 secret fields4727 uses type: 'password' for all secret fields4728 defines non-empty titles and help texts for all secret fields4729 gitlab_slack_application4730 secret fields4731 uses type: 'password' for all secret fields4732 defines non-empty titles and help texts for all secret fields4733 google_play4734 secret fields4735 uses type: 'password' for all secret fields4736 defines non-empty titles and help texts for all secret fields4737 hangouts_chat4738 secret fields4739 uses type: 'password' for all secret fields4740 defines non-empty titles and help texts for all secret fields4741 harbor4742 secret fields4743 uses type: 'password' for all secret fields4744 defines non-empty titles and help texts for all secret fields4745 irker4746 secret fields4747 uses type: 'password' for all secret fields4748 defines non-empty titles and help texts for all secret fields4749 jenkins4750 secret fields4751 uses type: 'password' for all secret fields4752 defines non-empty titles and help texts for all secret fields4753 jira4754 secret fields4755 uses type: 'password' for all secret fields4756 defines non-empty titles and help texts for all secret fields4757 mattermost4758 secret fields4759 uses type: 'password' for all secret fields4760 defines non-empty titles and help texts for all secret fields4761 mattermost_slash_commands4762 secret fields4763 uses type: 'password' for all secret fields4764 defines non-empty titles and help texts for all secret fields4765 microsoft_teams4766 secret fields4767 uses type: 'password' for all secret fields4768 defines non-empty titles and help texts for all secret fields4769 mock_ci4770 secret fields4771 uses type: 'password' for all secret fields4772 defines non-empty titles and help texts for all secret fields4773 mock_monitoring4774 secret fields4775 uses type: 'password' for all secret fields4776 defines non-empty titles and help texts for all secret fields4777 packagist4778 secret fields4779 uses type: 'password' for all secret fields4780 defines non-empty titles and help texts for all secret fields4781 pipelines_email4782 secret fields4783 uses type: 'password' for all secret fields4784 defines non-empty titles and help texts for all secret fields4785 pivotaltracker4786 secret fields4787 uses type: 'password' for all secret fields4788 defines non-empty titles and help texts for all secret fields4789 prometheus4790 secret fields4791 uses type: 'password' for all secret fields4792 defines non-empty titles and help texts for all secret fields4793 pumble4794 secret fields4795 uses type: 'password' for all secret fields4796 defines non-empty titles and help texts for all secret fields4797 pushover4798 secret fields4799 uses type: 'password' for all secret fields4800 defines non-empty titles and help texts for all secret fields4801 redmine4802 secret fields4803 uses type: 'password' for all secret fields4804 defines non-empty titles and help texts for all secret fields4805 shimo4806 secret fields4807 uses type: 'password' for all secret fields4808 defines non-empty titles and help texts for all secret fields4809 slack4810 secret fields4811 uses type: 'password' for all secret fields4812 defines non-empty titles and help texts for all secret fields4813 slack_slash_commands4814 secret fields4815 uses type: 'password' for all secret fields4816 defines non-empty titles and help texts for all secret fields4817 squash_tm4818 secret fields4819 uses type: 'password' for all secret fields4820 defines non-empty titles and help texts for all secret fields4821 teamcity4822 secret fields4823 uses type: 'password' for all secret fields4824 defines non-empty titles and help texts for all secret fields4825 unify_circuit4826 secret fields4827 uses type: 'password' for all secret fields4828 defines non-empty titles and help texts for all secret fields4829 webex_teams4830 secret fields4831 uses type: 'password' for all secret fields4832 defines non-empty titles and help texts for all secret fields4833 youtrack4834 secret fields4835 uses type: 'password' for all secret fields4836 defines non-empty titles and help texts for all secret fields4837 zentao4838 secret fields4839 uses type: 'password' for all secret fields4840 defines non-empty titles and help texts for all secret fields4841Integrations::Bamboo4842 behaves like Integrations::BaseCi4843 default values4844 is expected to eq :ci4845 behaves like Integrations::ResetSecretFields4846 #exposing_secrets_fields4847 returns an array of strings4848 #reset_secret_fields?4849 returns false if no exposing field has changed4850 returns true if any exposing field has changed4851 validation callback4852 when an exposing field has changed4853 clears all secret fields4854 when a secret field has been updated4855 does not clear this secret field4856 when a secret field has been updated with the same value4857 does not clear this secret field4858 when no exposing field has changed4859 does not clear any secret fields4860 accessors4861 is expected to respond to #enable_ssl_verification4862 is expected to respond to #enable_ssl_verification?4863 #initialize_properties4864 enables the setting by default4865 does not enable the setting if the record is already persisted4866 does not enable the setting if a custom value was set4867 #fields4868 inserts the checkbox field after the first URL field, or at the end4869 does not insert the field repeatedly4870 Validations4871 when active4872 is expected to validate that :build_key cannot be empty/falsy4873 is expected to validate that :bamboo_url cannot be empty/falsy4874 behaves like issue tracker integration URL attribute4875 is expected to allow :bamboo_url to be ‹"https://example.com"›4876 is expected not to allow :bamboo_url to be ‹"example.com"›4877 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›4878 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›4879 #username4880 does not validate the presence of username if password is nil4881 validates the presence of username if password is present4882 #password4883 does not validate the presence of password if username is nil4884 validates the presence of password if username is present4885 when inactive4886 is expected not to validate that :build_key cannot be empty/falsy4887 is expected not to validate that :bamboo_url cannot be empty/falsy4888 is expected not to validate that :username cannot be empty/falsy4889 is expected not to validate that :password cannot be empty/falsy4890 #execute4891 runs update and build action4892 #build_page4893 returns the contents of the reactive cache4894 #commit_status4895 returns the contents of the reactive cache4896 #calculate_reactive_cache4897 when Bamboo API returns single result4898 behaves like reactive cache calculation4899 #build_page4900 returns a specific URL when status is 5004901 returns a specific URL when response has no results4902 returns a build URL when bamboo_url has no trailing slash4903 bamboo_url has trailing slash4904 returns a build URL4905 #commit_status4906 sets commit status to :error when status is 5004907 sets commit status to "pending" when status is 4044908 sets commit status to "pending" when response has no results4909 sets commit status to "success" when build state contains Success4910 sets commit status to "failed" when build state contains Failed4911 sets commit status to "pending" when build state contains Pending4912 sets commit status to :error when build state is unknown4913 sets commit status to :error with a Net::OpenTimeout error4914 sets commit status to :error with a Net::ReadTimeout error4915 sets commit status to :error with a Net::WriteTimeout error4916 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error4917 sets commit status to :error with a EOFError error4918 sets commit status to :error with a SocketError error4919 sets commit status to :error with a OpenSSL::SSL::SSLError error4920 sets commit status to :error with a OpenSSL::OpenSSLError error4921 sets commit status to :error with a Errno::ECONNRESET error4922 sets commit status to :error with a Errno::ECONNREFUSED error4923 sets commit status to :error with a Errno::EHOSTUNREACH error4924 sets commit status to :error with a Errno::ENETUNREACH error4925 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error4926 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error4927 sets commit status to :error with a Net::HTTPBadResponse error4928 when Bamboo API returns an array of results and we only consider the last one4929 behaves like reactive cache calculation4930 #build_page4931 returns a specific URL when status is 5004932 returns a specific URL when response has no results4933 returns a build URL when bamboo_url has no trailing slash4934 bamboo_url has trailing slash4935 returns a build URL4936 #commit_status4937 sets commit status to :error when status is 5004938 sets commit status to "pending" when status is 4044939 sets commit status to "pending" when response has no results4940 sets commit status to "success" when build state contains Success4941 sets commit status to "failed" when build state contains Failed4942 sets commit status to "pending" when build state contains Pending4943 sets commit status to :error when build state is unknown4944 sets commit status to :error with a Net::OpenTimeout error4945 sets commit status to :error with a Net::ReadTimeout error4946 sets commit status to :error with a Net::WriteTimeout error4947 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error4948 sets commit status to :error with a EOFError error4949 sets commit status to :error with a SocketError error4950 sets commit status to :error with a OpenSSL::SSL::SSLError error4951 sets commit status to :error with a OpenSSL::OpenSSLError error4952 sets commit status to :error with a Errno::ECONNRESET error4953 sets commit status to :error with a Errno::ECONNREFUSED error4954 sets commit status to :error with a Errno::EHOSTUNREACH error4955 sets commit status to :error with a Errno::ENETUNREACH error4956 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error4957 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error4958 sets commit status to :error with a Net::HTTPBadResponse error4959Gitlab::ImportExport::FastHashSerializer4960 saves the correct hash4961 has approvals_before_merge set4962 has milestones4963 has merge requests4964 has merge request's milestones4965 has merge request's source branch SHA4966 has merge request's target branch SHA4967 has events4968 has snippets4969 has snippet notes4970 has releases4971 has no author on releases4972 has the author ID on releases4973 has issues4974 has issue comments4975 has issue assignees4976 has author on issue comments4977 has project members4978 has merge requests diffs4979 has merge request diff files4980 has merge request diff commits4981 has merge requests comments4982 has author on merge requests comments4983 has pipeline stages4984 has pipeline builds4985 has pipeline builds4986 has pipeline commits4987 has commit notes4988 has labels with no associations4989 has labels associated to records4990 has project and group labels4991 has priorities associated to labels4992 has issue resource label events4993 has merge request resource label events4994 has project feature4995 has custom attributes4996 has badges4997 does not complain about non UTF-8 characters in MR diff files4998 has a board and a list4999 project attributes5000 does not contain the runners token5001 relation ordering5002 orders exported pipelines by primary key5003Gitlab::Ci::Status::External::Factory5004 when external status has a simple core status5005 when core status is created5006 fabricates a core status created5007 extends core status with common methods5008 when core status is waiting_for_resource5009 fabricates a core status waiting_for_resource5010 extends core status with common methods5011 when core status is preparing5012 fabricates a core status preparing5013 extends core status with common methods5014 when core status is pending5015 fabricates a core status pending5016 extends core status with common methods5017 when core status is running5018 fabricates a core status running5019 extends core status with common methods5020 when core status is success5021 fabricates a core status success5022 extends core status with common methods5023 when core status is failed5024 fabricates a core status failed5025 extends core status with common methods5026 when core status is canceled5027 fabricates a core status canceled5028 extends core status with common methods5029 when core status is skipped5030 fabricates a core status skipped5031 extends core status with common methods5032 when core status is manual5033 fabricates a core status manual5034 extends core status with common methods5035 when core status is scheduled5036 fabricates a core status scheduled5037 extends core status with common methods5038ResourceStateEvent5039 behaves like a resource event5040 importable5041 is expected to respond to #importing?5042 is expected to respond to #imported?5043 validations5044 is expected not to allow :user to be ‹nil›5045 when importing5046 is expected to allow :user to be ‹nil›5047 associations5048 is expected to belong to user required: false5049 .created_after5050 returns the expected events5051 returns no events if time is after last record time5052 behaves like a resource event for issues5053 associations5054 is expected to belong to issue required: false5055 .by_issue5056 returns the expected records for an issue with events5057 returns the expected records for an issue with no events5058 .by_issue_ids5059 returns the expected events5060 .by_created_at_earlier_or_equal_to5061 returns the expected events5062 returns the expected events5063 #issuable5064 returns the expected issuable5065 behaves like a resource event for merge requests5066 associations5067 is expected to belong to merge_request required: false5068 .by_merge_request5069 returns the expected records for an issue with events5070 returns the expected records for an issue with no events5071 #issuable5072 returns the expected issuable5073 on callbacks5074 does not trigger note created subscription5075 behaves like a note for work item resource event5076 builds synthetic note with correct synthetic_note_class5077 on callbacks5078 triggers note created subscription5079 validations5080 Issuable validation5081 is valid if an issue is set5082 is valid if a merge request is set5083 is invalid if both issue and merge request are set5084 is invalid if there is no issuable set5085 callbacks5086 #issue_usage_metrics5087 does not track merge requests5088 when an issue is closed5089 tracks closed issues5090 behaves like issue_edit snowplow tracking5091 behaves like Snowplow event tracking with RedisHLL context5092 behaves like Snowplow event tracking5093 is emitted5094 when an issue is reopened5095 tracks reopened issues5096 behaves like issue_edit snowplow tracking5097 behaves like Snowplow event tracking with RedisHLL context5098 behaves like Snowplow event tracking5099 is emitted5100Gitlab::Git::Branch5101 is expected to be a kind of Array5102 .find5103 when finding branch via branch name5104 returns a branch object5105 when the branch is already a branch5106 returns a branch object5107 #cache_key5108 returns a cache key that changes based on changeable values5109 #size5110 is expected to eq 835111 first branch5112 is expected to eq "'test'"5113 is expected to start with "e56497b"5114 master branch5115 is expected to start with "b83d6e391c22777fca1ed3012fce84f633d7fed0"5116 with active, stale and future branches5117 examine if the branch is active or stale5118 #active?5119 is expected to be falsey5120 is expected to be truthy5121 is expected to be truthy5122 #stale?5123 is expected to be truthy5124 is expected to be falsey5125 is expected to be falsey5126 #state5127 is expected to eq :stale5128 is expected to eq :active5129 is expected to eq :active5130Gitlab::Database::Transaction::Observer5131 .instrument_transactions5132 tracks transaction data5133 tracking external network requests5134 tracks external requests5135 when external HTTP requests duration has been exceeded5136 logs transaction details including exceeding thresholds5137 when external HTTP requests count has been exceeded5138 logs transaction details including exceeding thresholds5139 .extract_sql_command5140 sql: "SELECT 1", expected: "SELECT 1"5141 is expected to eq "SELECT 1"5142 sql: "/* test comment */ SELECT 1", expected: "SELECT 1"5143 is expected to eq "SELECT 1"5144 sql: "/* test comment */ ROLLBACK TO SAVEPOINT point1", expected: "ROLLBACK TO SAVEPOINT "5145 is expected to eq "ROLLBACK TO SAVEPOINT "5146 sql: "SELECT 1 /* trailing comment */", expected: "SELECT 1 /* trailing comment */"5147 is expected to eq "SELECT 1 /* trailing comment */"5148Key5149 behaves like having unique enum values5150 has unique values in "usage_type"5151 Associations5152 is expected to belong to user required: false5153 Validation5154 is expected to validate that :title cannot be empty/falsy5155 is expected to validate that the length of :title is at most 2555156 is expected to validate that :key cannot be empty/falsy5157 is expected to validate that the length of :key is at most 50005158 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC98dbu7gxcbmAvwMqz/6AALhSr1jiXG0UC8FQMvoDt+ciB+uSJhg7KlxinKjYJnPGfhX+q2K+mmCGAmI/D6q7rFxE+bn09O+75qgkTHi+suDVE6KG7L3n0alGd/qSevfomR77Snh6fQPdG6sEAZz3kehcpfVnq5/IuLFq9FBrgmu52Jd4XZLQZKkDq6zYOJ69FUkGf93LZIV/OOaS+f+qkOGPCUkdKl7oEcgpVNY9SRjBCduXnvi2CyQnnJVkBguGL5VlXwFXH+17Whs7oFWmdiG+4jzBRLIMz4EuIW09b8Su5PW6+bBuXOifHA8KG5TMmjs5LYdCMPFnhTyDyO3a1 dummy@gitlab.com"›5159 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGSD77lLtjmzewiBs6nu2R5nu6oNkrAkH/0co1fHHosKfRr+sWkSTKXOVcL7bhRu+tniGBmB5pn+i1qX7BXtrcnv//bCXWIp+me027L4RJa5/Ep077iiTJlzTpcV664xNUXC8mzBr601HR/Z2TzX5DWJvnyqqFkN7qHTYo/+IoKECnKqNzI5SQrAxgi6sbWA5DFQ/nwcqsUSBo5gCCJ/0QPrR19yVV5lJA19EY2LawOb1SJNOFo4mQupSlBZwvERZJ7IqhBTPtQIfrqqz5VJbI13jK3ViZTugIZqydWAhosUyejP3SdCj1KMexrvV95tjUtmhVFlph4tKThQO0p9pXKZNCzYsbQTye6O6Hk2rojOJLyFWqNBVKtI8Ymfu7OQWppRnuUFuhuuS515H1s888bZFMPsC74mPyo0Y7Q9wAoTnQ9Hw6b0J6OfY3PIRVphaCmxh6b7dgSPF...›5160 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACgQDxnZP0TucLH3zcrvt75DPNq+xKqOmJkCEzTytKq4S5MDH0nlx+xOZ9WykhwDHXU0iZBJF7yRdLkZweYDJVKnBzr4t7QP5Sw2/ZdLelvUMWGJjuz28x8Z+8NZ+IxL/exDz7itrhCsLupQhGO1obiIwf8xVzzPoxrQ9dxaN4x965N+QdQcld8O6xfpSE0p5Y3sRn3kp57aHWoNa/bUGZy0OHLr/ig0uc6EKyWsTmEESOgDyV94wOyHR0KNGEENyxQt4BwAbEBn3Y41HKqD358KKh+XjbECebrrBFigdDL/eYFIUlstJ07SK/HtYjZbiUZCPs8bJA+SBaLK0pGGqguM2LXRoMeMUZFwKKKS2LpRqjKGj3Qt7qMnp1SkVhiMnxNqL4nJnDOOVo07xDIPKqIBYO67/cp4Icv3IjKxy6K3EIpLr+iRCxcllpDogxolzFC+pEDVpmEvcrGEv...›5161 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQC5jMyGtgMOVX4t2GuXkbirJA0Edr+qlOH9grnRBPHPo0Npt6XE6ZN3J3hDULTQo03wmekGw42dxdNSgk+F0GjsUBrMLbqrk485MMe0cUbP4lRXNu4ao87wPVM5fAsD4E3FQiZcI6Df011ZGIL7hGTHt6eafTfr9cJheRyYSu6g06rlnFWbbtSh9oQ7Y6sfDLBcsC9ECcXwe3mwViuQXPIVomZ02EdnBbAhbGHDtA+ZbSvTfraxOMjkxkVvvdjLxXEykpwVuZf8eZ+R/Js8jQ5RKvTZMbfxJNsGEqHD32s43ml4VF549Qz2GJDXF7Cld/n3CT6wvw0mMPM0LnykL2v0CMr44bjIA3KsNEs5MhkcBO8sv5hGfcPhrpm9WwI6gd9vdZVcxarVI+iQS947owvdn4VbEZXynCDqEEv3Zh+FA5p23mf2p7DkG/swiK/IPrjr1wmsiWmwIUs...›5162 is expected to allow :key to be ‹"ssh-dss AAAAB3NzaC1kc3MAAAEBALEB3sM2kPy6LKLiyL+UlDx2vzuKrzSD2nsW2Kb70ivIqDNJu5CbqIQSkjdMzJiocs33ESFqXid6ezOtVdDwXHJQRxKGalW1kBbFAPjtMxlDbf559+7qN2zfCfcQsgTmNAZ7O+wltqJmyLv5i4QqNwPDvyeBvJ4C+770DzlcQtpkflKJX+O7i8Ylq34h6UTCTnjry+dFVm1xz97LPf7XuzXGZcAG/eGUNQgxQ2bferKnrpYOXx6cocSRj9W54nrRFMWuDeOspWp4MoYK0FRMfDQYPksUayGUnm1KQTGuDbB0ahRNCOm8b3tfP9Z+vjANAkqenzDuXCpz2PU/Oj6/N/UAAAAhAPOLyut12Mjcp3eUXLe1xSoI5IRXSLsoW9no93dcFNprAAABAQCLhpqKY+PNcwbhhPruL+f+uROghHzDwRNX+e231F4wHHeDDomfWyLVFj31XrHdDXZnS9tTTj5...›5163 is expected to allow :key to be ‹"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJZmkzTgY0fiCQ+DVReyH/fFwTFz0XoR3RUO0u+199H19KFw7mNPxRSMOVS7tEtONj3Q7FcZXfqthHvgAzDiHsc= dummy@gitlab.com"›5164 is expected to allow :key to be ‹"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETnVTgzqC1gatgSlC4zH6aYt2CAQzgJOhDRvf59ohL6 dummy@gitlab.com"›5165 is expected to allow :key to be ‹"sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBDZ+f5tSRhlB7EN39f93SscTN5PUvbD3UQsNrlE1ZdbwPMMRul2zlPiUvwAvnJitW0jlD/vwZOW2YN+q+iZ5c0MAAAAEc3NoOg== dummy@gitlab.com"›5166 is expected to allow :key to be ‹"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEX/dQ0v4127bEo8eeG1EV0ApO2lWbSnN6RWusn/NjqIAAAABHNzaDo= dummy@gitlab.com"›5167 is expected not to allow :key to be ‹"foo-bar"›5168 key format5169 does not allow the key that begins with an algorithm name that is unsupported5170 allows the key that begins with supported algorithm name 'ssh-rsa'5171 allows the key that begins with supported algorithm name 'ssh-dss'5172 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp256'5173 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp384'5174 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp521'5175 allows the key that begins with supported algorithm name 'ssh-ed25519'5176 allows the key that begins with supported algorithm name 'sk-ecdsa-sha2-nistp256@openssh.com'5177 allows the key that begins with supported algorithm name 'sk-ssh-ed25519@openssh.com'5178 validation of banned keys5179 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"5180 does not allow banned keys5181 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBnZQ+6nhlPX/JnX5i5hXpljJ89bSnnrsSs51hSPuoJGmoKowBddISK7s10AIpO0xAWGcr8PUr2FOjEBbDHqlRxoXF0Ocms9xv3ql9EYUQ5+U+M6BymWhNTFPOs6gFHUl8Bw3t6c+SRKBpfRFB0yzBj9d093gSdfTAFoz+yLo4vRw=="5182 does not allow banned keys5183 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvIhC5skTzxyHif/7iy3yhxuK6/OB13hjPqrskogkYFrcW8OK4VJT+5+Fx7wd4sQCnVn8rNqahw/x6sfcOMDI/Xvn4yKU4t8TnYf2MpUVr4ndz39L5Ds1n7Si1m2suUNxWbKv58I8+NMhlt2ITraSuTU0NGymWOc8+LNi+MHXdLk= SCCP Superuser"5184 does not allow banned keys5185 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"5186 does not allow banned keys5187 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"5188 does not allow banned keys5189 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAn8LoId2N5i28cNKuEWWea3yt0I/LdT/NROrF44WZewtxch+DIwteQhM1qL6EKUSqz3Q2geX1crpOsNnyh67xy5lNo086u/QewOCSRAUGrQCXqFQ4JU8ny/qugWALQHjbIaPHj/3zMK09r4cpTSeAU7CW5nQyTKGmh7v9CAfWfcs= adam@localhost.localdomain"5190 does not allow banned keys5191 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAJTDsX+8olPZeyr58g9XE0L8PKT5030NZBPlE7np4hBqx36HoWarWq1Csn8M57dWN9StKbs03k2ggY6sYJK5AW2EWar70um3pYjKQHiZq7mITmitsozFN/K7wu2e2iKRgquUwH5SuYoOJ29n7uhaILXiKZP4/H/dDudqPRSY6tJPAAAAFQDtuWH90mDbU2L/Ms2lfl/cja/wHwAAAIAMBwSHZt2ysOHCFe1WLUvdwVDHUqk3QHTskuuAnMlwMtSvCaUxSatdHahsMZ9VCHjoQUx6j+TcgRLDbMlRLnwUlb6wpniehLBFk+qakGcREqks5NxYzFTJXwROzP72jPvVgQyOZHWq81gCild/ljL7hmrduCqYwxDIz4o7U92UKQAAAIBmhSl9CVPgVMv1xO8DAHVhM1huIIK8mNFrzMJz+JXzBx81ms1kWSeQOC/nraaXFTBlqiQsvB8tzr4xZdbaI/QzVLKNAF5C8BJ4ScNlTIx1aZJwyMil8Nzb+0YAsw5Ja+bEZZvEVlAYnd10qRWrPeEY1txLMmX3wDa+JvJL7fmuBg=="5192 does not allow banned keys5193 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAMq5EcIFdfCjJakyQnP/BBp9oc6mpaZVguf0Znp5C40twiG1lASQJZlM1qOB/hkBWYeBCHUkcOLEnVXSZzB62L+W/LGKodqnsiQPRr57AA6jPc6mNBnejHai8cSdAl9n/0s2IQjdcrxM8CPq2uEyfm0J3AV6Lrbbxr5NgE5xxM+DAAAAFQCmFk/M7Rx2jexsJ9COpHkHwUjcNQAAAIAdg18oByp/tjjDKhWhmmv+HbVIROkRqSxBvuEZEmcWlg38mLIT1bydfpSou/V4rI5ctxwCfJ1rRr66pw6GwCrz4fXmyVlhrj7TrktyQ9+zRXhynF4wdNPWErhNHb8tGlSOFiOBcUTlouX3V/ka6Dkd6ZQrZLQFaH+gjfyTZZ82HQAAAIEArsJgp7RLPOsCeLqoia/eljseBFVDazO5Q0ysUotTw9wgXGGVWREwm8wNggFNb9eCiBAAUfVZVfhVAtFT0pBf/eIVLPXyaMw3prBt7LqeBrbagODc3WAAdMTPIdYYcOKgv+YvTXa51zG64v6pQOfS8WXgKCzDl44puXfYeDk5lVQ="5194 does not allow banned keys5195 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAKwKBw7D4OA1H/uD4htdh04TBIHdbSjeXUSnWJsce8C0tvoB01Yarjv9TFj+tfeDYVWtUK1DA1JkyqSuoAtDANJzF4I6Isyd0KPrW3dHFTcg6Xlz8d3KEaHokY93NOmB/xWEkhme8b7Q0U2iZie2pgWbTLXV0FA+lhskTtPHW3+VAAAAFQDRyayUlVZKXEweF3bUe03zt9e8VQAAAIAEPK1k3Y6ErAbIl96dnUCnZjuWQ7xXy062pf63QuRWI6LYSscm3f1pEknWUNFr/erQ02pkfi2eP9uHl1TI1ql+UmJX3g3frfssLNZwWXAW0m8PbY3HZSs+f5hevM3ua32pnKDmbQ2WpvKNyycKHi81hSI14xMcdblJolhN5iY8/wAAAIAjEe5+0m/TlBtVkqQbUit+s/g+eB+PFQ+raaQdL1uztW3etntXAPH1MjxsAC/vthWYSTYXORkDFMhrO5ssE2rfg9io0NDyTIZt+VRQMGdi++dH8ptU+ldl2ZejLFdTJFwFgcfXz+iQ1mx6h9TPX1crE1KoMAVOj3yKVfKpLB1EkA== root@lbslave"5196 does not allow banned keys5197 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAN3AITryJMQyOKZjAky+mQ/8pOHIlu4q8pzmR0qotKaLm2yye5a0PY2rOaQRAzi7EPheBXbqTb8a8TrHhGXI5P7GUHaJho5HhEnw+5TwAvP72L7LcPwxMxj/rLcR/jV+uLMsVeJVWjwJcUv83yzPXoVjK0hrIm+RLLeuTM+gTylHAAAAFQD5gBdXsXAiTz1atzMg3xDFF1zlowAAAIAlLy6TCMlOBM0IcPsvP/9bEjDj0M8YZazdqt4amO2IaNUPYt9/sIsLOQfxIj8myDK1TOp8NyRJep7V5aICG4f3Q+XktlmLzdWn3sjvbWuIAXe1opjG2T69YhxfHZr8Wn7P4tpCgyqM4uHmUKrfnBzQQ9vkUUWsZoUXM2Z7vUXVfQAAAIAU6eNlphQWDwx0KOBiiYhF9BM6kDbQlyw8333rAG3G4CcjI2G8eYGtpBNliaD185UjCEsjPiudhGil/j4Zt/+VY3aGOLoi8kqXBBc8ZAML9bbkXpyhQhMgwiywx3ciFmvSn2UAin8yurStYPQxtXauZN5PYbdwCHPS7ApIStdpMA== wood@endec1"5198 does not allow banned keys5199 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAISAE3CAX4hsxTw0dRc0gx8nQ41r3Vkj9OmG6LGeKWRmpy7C6vaExuupjxid76fd4aS56lCUEEoRlJ3zE93qoK9acI6EGqGQFLuDZ0fqMyRSX+ilf+1HDo/TRyuraggxp9Hj9LMpZVbpFATMm0+d9Xs7eLmaJjuMsowNlOf8NFdHAAAAFQCwdvqOAkR6QhuiAapQ/9iVuR0UAQAAAIBpLMo4dhSeWkChfv659WLPftxRrX/HR8YMD/jqa3R4PsVM2g6dQ1191nHugtdV7uaMeOqOJ/QRWeYM+UYwT0Zgx2LqvgVSjNDfdjk+ZRY8x3SmExFi62mKFoTGSOCXfcAfuanjaoF+sepnaiLUd+SoJShGYHoqR2QWiysTRqknlwAAAIBLEgYmr9XCSqjENFDVQPFELYKT7Zs9J87PjPS1AP0qF1OoRGZ5mefK6X/6VivPAUWmmmev/BuAs8M1HtfGeGGzMzDIiU/WZQ3bScLB1Ykrcjk7TOFD6xrnk/inYAp5l29hjidoAONcXoHmUAMYOKqn63Q2AsDpExVcmfj99/BlpQ=="5200 does not allow banned keys5201 Methods5202 is expected to respond to #projects5203 is expected to respond to #publishable_key5204 #publishable_keys5205 replaces SSH key comment with simple identifier of username + hostname5206 #update_last_used_at5207 updates the last used timestamp5208 scopes5209 .for_user5210 returns keys of the specified user only5211 .order_last_used_at_desc5212 sorts by last_used_at descending, with null values at last5213 expiration scopes5214 .expired_today_and_not_notified5215 returns keys that expire today and have not been notified5216 .expiring_soon_and_not_notified5217 returns keys that will expire soon5218 usage type scopes5219 auth scope returns auth and auth_and_signing keys5220 signing scope returns signing and auth_and_signing keys5221 validation of uniqueness (based on fingerprint uniqueness)5222 accepts the key once5223 does not accept the exact same key twice5224 does not accept a duplicate key with a different comment5225 #ensure_sha256_fingerprint!5226 with a valid SHA256 fingerprint5227 does nothing5228 with a missing SHA256 fingerprint5229 fingerprints are present5230 with an invalid public key5231 does not throw an exception5232 fingerprint generation5233 generates both md5 and sha256 fingerprints5234 with FIPS mode5235 generates only sha256 fingerprint5236 validate it is a fingerprintable key5237 accepts the fingerprintable key5238 rejects the unfingerprintable key (not a key)5239 factory: :key, characters: ["\n", "\r\n"], expected_sections: 35240 accepts a key with blank space characters after stripping them5241 factory: :key, characters: [" ", " "], expected_sections: 35242 accepts a key with blank space characters after stripping them5243 factory: :key_without_comment, characters: [" ", " "], expected_sections: 25244 accepts a key with blank space characters after stripping them5245 validate it meets key restrictions5246 factory: :rsa_key_2048, minimum: 0, result: true5247 is expected to eq true5248 factory: :dsa_key_2048, minimum: 0, result: true5249 is expected to eq true5250 factory: :ecdsa_key_256, minimum: 0, result: true5251 is expected to eq true5252 factory: :ed25519_key_256, minimum: 0, result: true5253 is expected to eq true5254 factory: :ecdsa_sk_key_256, minimum: 0, result: true5255 is expected to eq true5256 factory: :ed25519_sk_key_256, minimum: 0, result: true5257 is expected to eq true5258 factory: :rsa_key_2048, minimum: 1024, result: true5259 is expected to eq true5260 factory: :rsa_key_2048, minimum: 2048, result: true5261 is expected to eq true5262 factory: :rsa_key_2048, minimum: 4096, result: false5263 is expected to eq false5264 factory: :dsa_key_2048, minimum: 1024, result: true5265 is expected to eq true5266 factory: :dsa_key_2048, minimum: 2048, result: true5267 is expected to eq true5268 factory: :dsa_key_2048, minimum: 4096, result: false5269 is expected to eq false5270 factory: :ecdsa_key_256, minimum: 256, result: true5271 is expected to eq true5272 factory: :ecdsa_key_256, minimum: 384, result: false5273 is expected to eq false5274 factory: :ed25519_key_256, minimum: 256, result: true5275 is expected to eq true5276 factory: :ed25519_key_256, minimum: 384, result: false5277 is expected to eq false5278 factory: :ecdsa_sk_key_256, minimum: 256, result: true5279 is expected to eq true5280 factory: :ecdsa_sk_key_256, minimum: 384, result: false5281 is expected to eq false5282 factory: :ed25519_sk_key_256, minimum: 256, result: true5283 is expected to eq true5284 factory: :ed25519_sk_key_256, minimum: 384, result: false5285 is expected to eq false5286 factory: :rsa_key_2048, minimum: -1, result: false5287 is expected to eq false5288 factory: :dsa_key_2048, minimum: -1, result: false5289 is expected to eq false5290 factory: :ecdsa_key_256, minimum: -1, result: false5291 is expected to eq false5292 factory: :ed25519_key_256, minimum: -1, result: false5293 is expected to eq false5294 factory: :ecdsa_sk_key_256, minimum: -1, result: false5295 is expected to eq false5296 factory: :ed25519_sk_key_256, minimum: -1, result: false5297 is expected to eq false5298 callbacks5299 authorized keys file is enabled5300 adds new key to authorized_file5301 removes key from authorized_file5302 authorized_keys file is disabled5303 does not add the key on creation5304 does not remove the key on destruction5305 #key=5306 strips white spaces5307 invalidates the public_key attribute5308 #refresh_user_cache5309 when the key belongs to a user5310 refreshes the keys count cache for the user5311 when the key does not belong to a user5312 does nothing5313 #signing?5314 returns whether a key can be used for signing5315Gitlab::Ci::Config::Entry::Bridge5316 behaves like with inheritable CI config5317 does prepend an Inheritable mixin5318 all inheritable entries are covered5319 all entries do have inherit flag5320 for non-inheritable entries5321 entry_key: :stage5322 inheritable_class does not define entry5323 entry_key: :only5324 inheritable_class does not define entry5325 entry_key: :except5326 inheritable_class does not define entry5327 entry_key: :rules5328 inheritable_class does not define entry5329 entry_key: :variables5330 inheritable_class does not define entry5331 entry_key: :inherit5332 inheritable_class does not define entry5333 entry_key: :trigger5334 inheritable_class does not define entry5335 entry_key: :needs5336 inheritable_class does not define entry5337 entry_key: :parallel5338 inheritable_class does not define entry5339 .matching?5340 when config is not a hash5341 is expected to be falsey5342 when config is a regular job5343 is expected to be falsey5344 with rules5345 is expected to be falsey5346 when config is a bridge job5347 is expected to be truthy5348 with rules5349 is expected to be truthy5350 when config is a hidden job5351 is expected to be falsey5352 .new5353 when trigger config is a non-empty string5354 #valid?5355 is expected to be valid5356 #value5357 is returns a bridge job configuration5358 when bridge trigger is a hash5359 #valid?5360 is expected to be valid5361 #value5362 is returns a bridge job configuration hash5363 when bridge configuration contains trigger, when, extends, stage, only, except, and variables5364 is expected to be valid5365 when bridge configuration uses rules5366 is expected to be valid5367 when bridge configuration uses rules with job:when5368 is expected to be valid5369 when bridge configuration uses rules with only5370 is expected not to be valid5371 when bridge configuration uses rules with except5372 is expected not to be valid5373 when bridge has only job needs5374 #valid?5375 is expected not to be valid5376 when bridge config contains unknown keys5377 #valid?5378 is expected not to be valid5379 #errors5380 is returns an error about unknown config key5381 when bridge config contains build-specific attributes5382 #valid?5383 is expected not to be valid5384 #errors5385 returns an error message5386 when bridge config contains exit_codes5387 #valid?5388 is expected not to be valid5389 #errors5390 returns an error message5391 when bridge config contains parallel5392 when parallel config is a number5393 #valid?5394 is expected not to be valid5395 #errors5396 returns an error message5397 when parallel config is a matrix5398 #valid?5399 is expected to be valid5400 #value5401 is returns a bridge job configuration5402 when bridge trigger contains forward5403 #valid?5404 is expected to be valid5405 #value5406 returns a bridge job configuration hash5407 #manual_action?5408 when job is a manual action5409 is expected to be manual action5410 when job is not a manual action5411 is expected not to be manual action5412 #ignored?5413 when job is a manual action5414 when it is not specified if job is allowed to fail5415 is expected to be ignored5416 when job is allowed to fail5417 is expected to be ignored5418 when job is not allowed to fail5419 is expected not to be ignored5420 when job is not a manual action5421 when it is not specified if job is allowed to fail5422 is expected not to be ignored5423 when job is allowed to fail5424 is expected to be ignored5425 when job is not allowed to fail5426 is expected not to be ignored5427 #when5428 when bridge is a manual action5429 is expected to eq "manual"5430 when bridge has no `when` attribute5431 is expected to be nil5432 when the `when` keyword is not a string5433 when it is an array5434 returns error5435 when it is a boolean5436 returns error5437Todos::Destroy::GroupPrivateService5438 #execute5439 when a group set to private5440 removes todos only for users who are not group users5441 with nested groups5442 removes todos only for users who are not group users5443 when group is not private5444 does not remove any todos5445Ci::BuildMetadata5446 is expected to belong to build required: false5447 is expected to belong to project required: false5448 behaves like having unique enum values5449 has unique values in "timeout_source"5450 #update_timeout_state5451 when job, project and runner timeouts are set5452 when job timeout is lower then runner timeout5453 behaves like sets timeout5454 sets project_timeout_source5455 sets project timeout5456 when runner timeout is lower then job timeout5457 behaves like sets timeout5458 sets project_timeout_source5459 sets project timeout5460 when job, project timeout values are set and runner is assigned5461 when runner has no timeout set5462 behaves like sets timeout5463 sets project_timeout_source5464 sets project timeout5465 when only job and project timeouts are defined5466 when job timeout is lower then project timeout5467 behaves like sets timeout5468 sets project_timeout_source5469 sets project timeout5470 when project timeout is lower then job timeout5471 behaves like sets timeout5472 sets project_timeout_source5473 sets project timeout5474 when only project and runner timeouts are defined5475 when runner timeout is lower then project timeout5476 behaves like sets timeout5477 sets project_timeout_source5478 sets project timeout5479 when project timeout is lower then runner timeout5480 behaves like sets timeout5481 sets project_timeout_source5482 sets project timeout5483 when only job and runner timeouts are defined5484 when runner timeout is lower them job timeout5485 behaves like sets timeout5486 sets project_timeout_source5487 sets project timeout5488 when job timeout is lower them runner timeout5489 behaves like sets timeout5490 sets project_timeout_source5491 sets project timeout5492 when only job timeout is defined and runner is assigned, but has no timeout set5493 behaves like sets timeout5494 sets project_timeout_source5495 sets project timeout5496 when only one timeout value is defined5497 when only project timeout value is defined5498 behaves like sets timeout5499 sets project_timeout_source5500 sets project timeout5501 validations5502 when attributes are valid5503 returns no errors5504 when data is invalid5505 returns errors5506 set_cancel_gracefully5507 sets cancel_gracefully5508 returns false5509 loose foreign key on ci_builds_metadata.project_id5510 behaves like cleanup by a loose foreign key5511 cleans up (delete or nullify) the model5512 #enable_debug_trace!5513 when debug_trace_enabled is false5514 sets debug_trace_enabled to true5515 when debug_trace_enabled is true5516 does not set debug_trace_enabled to true5517 partitioning5518 with job5519 copies the partition_id from job5520 when it is already set5521 does not change the partition_id value5522 without job5523 is expected to validate that :partition_id cannot be empty/falsy5524 does not change the partition_id value5525 jsonb fields serialization5526 changing other fields does not change config_options5527 accessing config_options does not change it5528Gitlab::SQL::Pattern5529 .fuzzy_search5530 query: "foo", columns: [#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f35c91347e0 @name="issues", @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f35c91346c8 @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)>, @table_alias=nil>, name="title">], expected: [:issue1]5531 finds the expected issues5532 query: "foo", columns: [:title], expected: [:issue1]5533 finds the expected issues5534 query: "foo", columns: ["title"], expected: [:issue1]5535 finds the expected issues5536 query: "foo", columns: [:description], expected: [:issue2]5537 finds the expected issues5538 query: "foo", columns: [:title, :description], expected: [:issue1, :issue2]5539 finds the expected issues5540 query: "bar", columns: [:title, :description], expected: [:issue1]5541 finds the expected issues5542 query: "baz", columns: [:title, :description], expected: [:issue2]5543 finds the expected issues5544 query: "qux", columns: [:title, :description], expected: []5545 finds the expected issues5546 query: "oh", columns: [:title, :description], expected: [:issue3]5547 finds the expected issues5548 query: "OH", columns: [:title, :description], expected: [:issue3]5549 finds the expected issues5550 query: "ah", columns: [:title, :description], expected: [:issue3]5551 finds the expected issues5552 query: "AH", columns: [:title, :description], expected: [:issue3]5553 finds the expected issues5554 query: "oh", columns: [:title], expected: [:issue3]5555 finds the expected issues5556 query: "ah", columns: [:description], expected: [:issue3]5557 finds the expected issues5558 query: "", columns: [:title], expected: [:issue1, :issue2, :issue3]5559 finds the expected issues5560 query: ["a", "b"], columns: [:title], expected: [:issue1, :issue2, :issue3]5561 finds the expected issues5562 .to_pattern5563 when a query is shorter than 3 chars5564 returns exact matching pattern5565 and ignore_minimum_char_limit is true5566 returns partial matching pattern5567 when a query with a escape character is shorter than 3 chars5568 returns sanitized exact matching pattern5569 and ignore_minimum_char_limit is true5570 returns sanitized partial matching pattern5571 when a query is equal to 3 chars5572 returns partial matching pattern5573 when a query with a escape character is equal to 3 chars5574 returns partial matching pattern5575 when a query is longer than 3 chars5576 returns partial matching pattern5577 when a query with a escape character is longer than 3 chars5578 returns sanitized partial matching pattern5579 .select_fuzzy_terms5580 with a word equal to 3 chars5581 returns array containing a word5582 with a word shorter than 3 chars5583 returns empty array5584 with two words both equal to 3 chars5585 returns array containing two words5586 with two words divided by two spaces both equal to 3 chars5587 returns array containing two words5588 with two words equal to 3 chars and shorter than 3 chars5589 returns array containing a word5590 .split_query_to_search_terms5591 with words separated by spaces5592 returns array containing individual words5593 with a multi-word surrounded by double quote5594 returns array containing a multi-word5595 with a multi-word surrounded by double quote and two words5596 returns array containing a multi-word and two words5597 with a multi-word surrounded by double quote missing a spece before the first double quote5598 returns array containing two words with double quote5599 with a multi-word surrounded by double quote missing a spece after the second double quote5600 returns array containing two words with double quote5601 with two multi-word surrounded by double quote and two words5602 returns array containing two multi-words and two words5603 .fuzzy_arel_match5604 with a word equal to 3 chars5605 returns a single ILIKE condition5606 with a word shorter than 3 chars5607 returns a single equality condition5608 uses LOWER instead of ILIKE when LOWER is enabled5609 with two words both equal to 3 chars5610 returns a joining LIKE condition using a AND5611 with two words both shorter than 3 chars5612 returns a single ILIKE condition5613 with two words, one shorter 3 chars5614 returns a single ILIKE condition using the longer word5615 with a multi-word surrounded by double quote and two words5616 returns a joining LIKE condition using a AND5617 when passing an Arel column5618 returns a condition with the table and column name5619Banzai::ReferenceParser::MergeRequestParser5620 #nodes_visible_to_user5621 when the link has a data-issue attribute5622 behaves like referenced feature visibility5623 when feature is disabled5624 does not create reference5625 when feature is enabled only for team members5626 does not create reference for non member5627 creates reference for member5628 when feature is enabled5629 creates reference5630 #referenced_by5631 when the link has a data-merge-request attribute5632 using an existing merge request ID5633 returns an Array of merge requests5634 using a non-existing merge request ID5635 returns an empty Array5636 when checking multiple merge requests on another project5637 behaves like no N+1 queries5638 avoids N+1 queries in #records_for_nodes5639 behaves like no project N+1 queries5640 avoids N+1 queries in #nodes_visible_to_user5641 #can_read_reference?5642 is expected to be truthy5643 when merge request belongs to the private project5644 prevents user from reading merge request references5645 when user has access to the project5646 is expected to be truthy5647 with memoization5648 when project is the same5649 calls #can? only once5650 when merge requests belong to different projects5651 calls #can? for each project5652Gitlab::Email::Handler::CreateIssueHandler5653 behaves like reply processing shared examples5654 when the user could not be found5655 raises a UserNotFoundError5656 when the user is not authorized to the project5657 raises a ProjectNotFound5658 when email key5659 matches the new format5660 matches the legacy format5661 doesn't match either format5662 when everything is fine5663 behaves like a new issue5664 creates a new issue5665 creates a new issue with legacy email address5666 behaves like a new issue5667 creates a new issue5668 when the reply is blank5669 creates a new issue5670 when there are quotes in email5671 creates a new issue5672 when all lines of email are quotes5673 creates email with correct body5674 something is wrong5675 raises a RateLimitedService::RateLimitedError5676 when the issue could not be saved5677 raises an InvalidIssueError5678 when we can't find the incoming_email_token5679 raises an UserNotFoundError5680 when project is private5681 raises a ProjectNotFound if the user is not a member5682 when project ID is invalid5683 raises a ProjectNotFound5684Issues::DuplicateService5685 #execute5686 when the issues passed are the same5687 does nothing5688 when the user cannot update the duplicate issue5689 does nothing5690 when the user cannot comment on the canonical issue5691 does nothing5692 when the user can mark the issue as a duplicate5693 closes the duplicate issue5694 adds a system note to the duplicate issue5695 adds a system note to the canonical issue5696 updates duplicate issue with canonical issue id5697 relates the duplicate issues5698ProjectImportState5699 associations5700 is expected to belong to project required: false5701 validations5702 is expected to validate that :project cannot be empty/falsy5703 checksums attribute5704 when the checksums attribute has invalid fields5705 adds errors5706 when the checksums attribute has valid fields5707 does not add errors5708 Project import job5709 imports a project5710 records job and correlation IDs5711 #relation_hard_failures5712 returns hard relation failures related to this import5713 limits returned collection to given maximum5714 #mark_as_failed5715 logs error when update column fails5716 updates last_error with error message5717 removes project import data5718 #human_status_name5719 when import_state exists5720 returns the humanized status name5721 #expire_etag_cache5722 when project import type has realtime changes endpoint5723 expires revelant etag cache5724 when project import type does not have realtime changes endpoint5725 does not touch etag caches5726 import state transitions5727 state transition: [:started] => [:finished]5728 resets last_error5729 enqueues housekeeping when an import of a fresh project is completed5730 does not perform housekeeping when project repository does not exist5731 does not enqueue housekeeping when project does not have a valid import type5732 state transition: [:none, :scheduled, :started] => [:canceled]5733 updates the import status5734 unsets the JID5735 removes import data5736 state transition: started: [:finished, :canceled, :failed]5737 import_type: "github", import_status: :started, transition: :finish, expected_checksums: {"fetched"=>{}, "imported"=>{}}5738 updates (or does not update) checksums5739 import_type: "github", import_status: :started, transition: :cancel, expected_checksums: {"fetched"=>{}, "imported"=>{}}5740 updates (or does not update) checksums5741 import_type: "github", import_status: :started, transition: :fail_op, expected_checksums: {"fetched"=>{}, "imported"=>{}}5742 updates (or does not update) checksums5743 import_type: "github", import_status: :scheduled, transition: :cancel, expected_checksums: {}5744 updates (or does not update) checksums5745 import_type: "gitlab_project", import_status: :started, transition: :cancel, expected_checksums: {}5746 updates (or does not update) checksums5747 clearing `jid` after finish5748 without an JID5749 does nothing5750 with a JID5751 unsets the JID5752 callbacks5753 after_commit :expire_etag_cache5754 expires etag cache5755Gitlab::DataBuilder::Build5756 .build5757 is expected to be a kind of Hash5758 is expected to eq "master"5759 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"5760 is expected to eq false5761 is expected to eq 7575762 is expected to eq "running"5763 is expected to eq 2023-05-15 08:50:29.000000000 +00005764 is expected to eq 2023-05-15 08:51:29.000000000 +00005765 is expected to eq nil5766 is expected to eq 30573.05767 is expected to eq 60.05768 is expected to eq false5769 is expected to eq "unknown_failure"5770 is expected to eq 6235771 is expected to eq "Sidney Jones1297 / Project-699 Name"5772 is expected to eq 1795773 is expected to eq 05774 is expected to eq "Build pipeline"5775 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/4c0a5b929f320541c26f69c363c0faa9?s=80&d=identicon", :email=>"user1176@example.org", :id=>1204, :name=>"Sidney Jones1296", :username=>"user503"}5776 is expected to eq 1795777 is expected to eq 1255778 is expected to contain exactly "tag1" and "tag2"5779 is expected to eq "My runner73"5780 is expected to eq "instance_type"5781 is expected to eq true5782 is expected to be nil5783 does not exceed number of expected queries5784 when job_webhook_retries_count feature flag is disabled5785 is expected not to have key :retries_count5786 does not exceed number of expected queries5787 commit author_url5788 when no commit present5789 sets to mailing address of git_author_email5790 when commit present but has no author5791 sets to mailing address of git_author_email5792 when commit and author are present5793 sets to GitLab user url5794 with environment5795 is expected to eq "staging"5796 is expected to eq "stop"5797GitlabSchema5798 uses batch loading5799 enables the generic instrumenter5800 has the base mutation5801 has the base query5802 paginates active record relations using `Pagination::Keyset::Connection`5803 paginates ExternallyPaginatedArray using `Pagination::ExternallyPaginatedArrayConnection`5804 sets an appropriate validation timeout5805 .execute5806 setting query `max_complexity` and `max_depth`5807 with no context5808 is expected to have attributes {:max_complexity => 200, :max_depth => 15}5809 with no :current_user5810 is expected to have attributes {:max_complexity => 200, :max_depth => 15}5811 with anonymous user5812 is expected to have attributes {:max_complexity => 200, :max_depth => 15}5813 with a logged in user5814 sets authenticated user limits5815 with an admin user5816 sets admin/authenticated user limits5817 when limits passed as kwargs5818 sets limits from the kwargs5819 .id_from_object5820 returns a global id5821 raises a meaningful error if a global id couldn't be generated5822 .object_from_id5823 raises the correct error on invalid input5824 with subclasses of `ApplicationRecord`5825 returns the correct record5826 returns the correct record, of the expected type5827 fails if the type does not match5828 batchloads the queries5829 with classes that are not ActiveRecord subclasses and have implemented .lazy_find5830 returns the correct record5831 batchloads the queries5832 with other classes5833 falls back to a regular find5834 validate_max_errors5835 reports at most 5 errors5836 for gid parsing5837 .parse_gid5838 parses the gid5839 when gid is malformed5840 raises an error5841 when using expected_type5842 accepts a single type5843 accepts an ancestor type5844 rejects an unknown type5845 when expected_type is an array5846 when global_id is of type TestOne5847 returns an object of an expected type5848 when global_id is of type TestTwo5849 returns an object of an expected type5850 when global_id is of type TestThree5851 rejects an unknown type5852 .parse_gids5853 parses the gids5854Notes::BuildService5855 #execute5856 when in_reply_to_discussion_id is specified5857 when a note with that original discussion ID exists5858 sets the note up to be in reply to that note5859 when discussion is resolved5860 resolves the note5861 when a note with that discussion ID exists5862 sets the note up to be in reply to that note5863 when no note with that discussion ID exists5864 sets an error5865 when user has no access to discussion5866 sets an error5867 personal snippet note5868 when a snippet is public5869 creates a reply note5870 when a snippet is private5871 creates a reply note when the author replies5872 sets an error when another user replies5873 when a snippet is internal5874 creates a reply note when the author replies5875 creates a reply note when a regular user replies5876 sets an error when an external user replies5877 when replying to individual note5878 sets the note up to be in reply to that note5879 when noteable does not support replies5880 builds another individual note5881 confidential comments5882 when creating a new confidential comment5883 reporter5884 behaves like user allowed to set comment as confidential5885 is expected to be truthy5886 issuable author5887 behaves like user not allowed to set comment as confidential5888 is expected to be falsey5889 issuable assignee5890 behaves like user not allowed to set comment as confidential5891 is expected to be falsey5892 admin5893 behaves like user allowed to set comment as confidential5894 is expected to be truthy5895 external5896 behaves like user not allowed to set comment as confidential5897 is expected to be falsey5898 guest5899 behaves like user not allowed to set comment as confidential5900 is expected to be falsey5901 when replying to a confidential comment5902 with reporter access5903 behaves like confidential set to `true`5904 `confidential` param is ignored to match the parent note confidentiality5905 with admin access5906 behaves like confidential set to `true`5907 `confidential` param is ignored to match the parent note confidentiality5908 with noteable author5909 behaves like returns `Discussion to reply to cannot be found` error5910 is expected to equal true5911 with noteable assignee5912 behaves like returns `Discussion to reply to cannot be found` error5913 is expected to equal true5914 with guest access5915 behaves like returns `Discussion to reply to cannot be found` error5916 is expected to equal true5917 with external user5918 behaves like returns `Discussion to reply to cannot be found` error5919 is expected to equal true5920 when replying to a public comment5921 `confidential` param is ignored and set to `false`5922 when noteable is not set5923 builds a note without saving it5924Gitlab::Pagination::Keyset::Paginator5925 pagination5926 when per_page is greater than the record count5927 is expected to eq [#<Project id:633 namespace715/project-712>>, #<Project id:636 namespace718/project-715>>, #<Project ...ect-714>>, #<Project id:634 namespace716/project-713>>, #<Project id:637 namespace719/project-716>>]5928 is expected not to have next page5929 is expected not to have previous page5930 has no next and previous cursor values5931 when 0 records are returned5932 is expected to be empty5933 is expected not to have next page5934 is expected not to have previous page5935 when page size is smaller than the record count5936 is expected to eq [#<Project id:633 namespace715/project-712>>, #<Project id:636 namespace718/project-715>>]5937 is expected to have next page5938 is expected not to have previous page5939 has next page cursor5940 does not have previous page cursor5941 when on the second page5942 is expected to eq [#<Project id:635 namespace717/project-714>>, #<Project id:634 namespace716/project-713>>]5943 is expected to have next page5944 is expected to have previous page5945 and then going back to the first page5946 is expected to eq [#<Project id:633 namespace715/project-712>>, #<Project id:636 namespace718/project-715>>]5947 is expected to have next page5948 is expected not to have previous page5949 when jumping to the last page5950 is expected to eq [#<Project id:634 namespace716/project-713>>, #<Project id:637 namespace719/project-716>>]5951 is expected not to have next page5952 is expected to have previous page5953 when paginating backwards5954 is expected to eq [#<Project id:636 namespace718/project-715>>, #<Project id:635 namespace717/project-714>>]5955 is expected to have next page5956 is expected to have previous page5957 when jumping to the first page5958 is expected to eq [#<Project id:633 namespace715/project-712>>, #<Project id:636 namespace718/project-715>>]5959 is expected to have next page5960 is expected not to have previous page5961 default keyset direction parameter5962 exposes the direction parameter in the cursor5963 when unsupported order is given5964 raises error5965 when use_union_optimization option is true and ordering by two columns5966 uses UNION queries5967Types::BaseField5968 adds a formatted `deprecated_reason` to the subject5969 appends to the description if given5970 does not append to the description if it is absent5971 adds information about the replacement if provided5972 supports named reasons: renamed5973 supports named reasons: alpha5974 supports :alpha5975 does not allow :alpha and :deprecated together5976 authorized?5977 defaults to true5978 tests the field authorization, if provided5979 tests the field authorization, if provided, when it succeeds5980 only tests the resolver authorization if it authorizes_object?5981 tests the resolver authorization, if provided5982 tests field authorization before resolver authorization, when field auth fails5983 tests field authorization before resolver authorization, when field auth succeeds5984 when considering complexity5985 defaults to 15986 has specified value5987 #base_complexity5988 with no gitaly calls5989 defaults to 15990 with a gitaly call5991 adds 1 to the default value5992 when field has a resolver5993 when a valid complexity is already set5994 uses this complexity5995 and is a connection5996 sets complexity depending on arguments for resolvers5997 sets complexity depending on number load limits for resolvers5998 and is not a connection5999 sets complexity as normal6000 calls_gitaly6001 defaults to false6002 for fields with a resolver6003 adds 1 if true6004 for fields without a resolver6005 adds 1 if true6006 with declared constant complexity value6007 has complexity set to that constant6008 does not raise an error even with Gitaly calls6009 #resolve6010 late_extensions is given6011 registers the late extensions after the regular extensions6012 validations6013 raises an informative error if `deprecation_reason` is used6014 raises an error if a required property is missing6015 raises an error if milestone is not a String6016 visible?6017 defaults to true6018 when subject is deprecated6019 defaults to true6020 returns false if `remove_deprecated` is true in context6021Gitlab::Ci::Variables::Builder6022 #scoped_variables6023 is expected to be an instance of Gitlab::Ci::Variables::Collection6024 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SL...=>"user523"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones1339"}]6025 when FF `ci_remove_legacy_predefined_variables` is disabled6026 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SL...=>"user523"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones1339"}]6027 variables ordering6028 returns variables in order depending on resource hierarchy6029 overrides duplicate keys depending on resource hierarchy6030 with schedule variables6031 includes schedule variables6032 with release variables6033 includes release variables6034 when there is no release6035 does not include release variables6036 #user_variables6037 with user6038 is expected to eq {"GITLAB_USER_EMAIL"=>"user1219@example.org", "GITLAB_USER_ID"=>"1235", "GITLAB_USER_LOGIN"=>"user523", "GITLAB_USER_NAME"=>"Sidney Jones1339"}6039 without user6040 is expected to be empty6041 #kubernetes_variables6042 is expected to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}6043 calls the GenerateKubeconfigService with the correct arguments6044 includes #deployment_variables and merges the KUBECONFIG values6045 generated config is invalid6046 is expected not to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}6047 when environment is not nil6048 passes the environment when generating the KUBECONFIG6049 #deployment_variables6050 environment is nil6051 is expected to be empty6052 #secret_instance_variables6053 when ref is branch6054 when ref is protected6055 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35d16b0608 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f35d1687118 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6056 when ref is not protected6057 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35c77f9af0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6058 when ref is tag6059 when ref is protected6060 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b997aab8 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b9973880 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6061 when ref is not protected6062 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b32ca228 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6063 when ref is merge request6064 when ref is protected6065 does not return protected variables as it is not supported for merge request pipelines6066 when ref is not protected6067 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b3ea8608 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6068 #secret_group_variables6069 when ref is branch6070 when ref is protected6071 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b48d4460 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b48cfa28 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6072 when ref is not protected6073 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b4f368a8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6074 when ref is tag6075 when ref is protected6076 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b5bd6c20 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b5bd6090 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6077 when ref is not protected6078 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b6562fc8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6079 when ref is merge request6080 when ref is protected6081 does not return protected variables as it is not supported for merge request pipelines6082 when ref is not protected6083 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35b8198698 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6084 variables memoization6085 with protected environments6086 memoizes the result by environment6087 with unprotected environments6088 memoizes the result by environment6089 #secret_project_variables6090 when ref is branch6091 when ref is protected6092 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f359a8620f0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f359a861588 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6093 when ref is not protected6094 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35edd8fca0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6095 when ref is tag6096 when ref is protected6097 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35e07bf6e8 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f35e07be2e8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6098 when ref is not protected6099 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35dbf18408 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6100 when ref is merge request6101 when ref is protected6102 does not return protected variables as it is not supported for merge request pipelines6103 when ref is not protected6104 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f35d007ad48 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>6105 variables memoization6106 with protected environments6107 memoizes the result by environment6108 with unprotected environments6109 memoizes the result by environment6110 #config_variables6111 without project6112 is expected to eq 06113 without repository6114 is expected to be nil6115 with protected variables6116 does not include protected variables6117 with scoped variables6118 does not include scoped variables6119 variables ordering6120 returns variables in order depending on resource hierarchy6121 overrides duplicate keys depending on resource hierarchy6122EnvironmentEntity6123 exposes latest deployment6124 exposes core elements of environment6125 exposes folder path6126 doesn't expose metrics path6127 when there is a successful deployment6128 exposes it as the latest deployment6129 does not expose it as an upcoming deployment6130 when the deployment pipeline has the other manual job6131 exposes the manual job in the latest deployment6132 when there is a running deployment6133 does not expose it as the latest deployment6134 exposes it as an upcoming deployment6135 when the deployment pipeline has the other manual job6136 does not expose the manual job in the latest deployment6137 when metrics dashboard feature is available6138 metrics disabled6139 doesn't expose metrics path6140 metrics enabled6141 exposes metrics path6142 with deployment platform6143 when deployment platform is a cluster6144 includes cluster_type6145 with auto_stop_in6146 exposes auto stop related information6147 with deployment service ready6148 exposes rollout_status6149 with deployment service not ready6150 does not expose rollout_status6151AddressableUrlValidator6152 #validate6153 with no options6154 allows http,https schemes by default6155 checks that the url structure is valid6156 with schemes6157 allows urls with the defined schemes6158 add error if the url scheme does not match the selected ones6159 validations6160 returns error when url is nil6161 returns error when url is empty6162 allows urls with encoded CR or LF characters6163 does not allow urls with CR or LF characters6164 provides all arguments to UrlBlocker.validate!6165 by default6166 does not block urls pointing to localhost6167 does not block urls pointing to the local network6168 does block nil urls6169 does block blank urls6170 strips urls6171 allows urls that cannot be resolved6172 when message is set6173 does block nil url with provided error message6174 when blocked_message is set6175 blocks url with provided error message6176 when allow_nil is set to true6177 does not block nil urls6178 when allow_blank is set to true6179 does not block blank urls6180 when allow_localhost is set to false6181 blocks urls pointing to localhost6182 when allow_setting_local_requests is set to true6183 does not block urls pointing to localhost6184 when allow_local_network is set to false6185 blocks urls pointing to the local network6186 when allow_setting_local_requests is set to true6187 does not block urls pointing to local network6188 when ports is6189 empty6190 does not block any port6191 set6192 blocks urls with a different port6193 when enforce_user is6194 true6195 checks user format6196 false (default)6197 does not check user format6198 when ascii_only is6199 true6200 prevents unicode characters6201 false (default)6202 does not prevent unicode characters6203 when deny_all_requests_except_allowed is6204 true6205 prevents the url6206 false6207 allows the url6208 not given6209 when app setting is true6210 prevents the url6211 when app setting is false6212 allows the url6213 when enforce_sanitization is6214 true6215 prevents unsafe urls6216 prevents unsafe internal urls6217 allows safe urls6218 false6219 allows unsafe urls6220 when dns_rebind_protection is6221 true6222 raises error6223 false6224 allows urls that cannot be resolved6225Gitlab::Ci::Build::AutoRetry6226 #allowed?6227 description: "retries are disabled", retry_count: 0, options: {:max=>0}, failure_reason: nil, result: false6228 is expected to eq false6229 description: "max equals count", retry_count: 2, options: {:max=>2}, failure_reason: nil, result: false6230 is expected to eq false6231 description: "max is higher than count", retry_count: 1, options: {:max=>2}, failure_reason: nil, result: true6232 is expected to eq true6233 description: "max is a string", retry_count: 1, options: {:max=>"2"}, failure_reason: nil, result: true6234 is expected to eq true6235 description: "matching failure reason", retry_count: 0, options: {:when=>["api_failure"], :max=>2}, failure_reason: :api_failure, result: true6236 is expected to eq true6237 description: "not matching with always", retry_count: 0, options: {:when=>["always"], :max=>2}, failure_reason: :api_failure, result: true6238 is expected to eq true6239 description: "not matching reason", retry_count: 0, options: {:when=>["script_error"], :max=>2}, failure_reason: :api_failure, result: false6240 is expected to eq false6241 description: "scheduler failure override", retry_count: 1, options: {:when=>["scheduler_failure"], :max=>1}, failure_reason: :scheduler_failure, result: false6242 is expected to eq false6243 description: "default for scheduler failure", retry_count: 1, options: {}, failure_reason: :scheduler_failure, result: true6244 is expected to eq true6245 description: "quota is exceeded", retry_count: 0, options: {:max=>2}, failure_reason: :ci_quota_exceeded, result: false6246 is expected to eq false6247 description: "no matching runner", retry_count: 0, options: {:max=>2}, failure_reason: :no_matching_runner, result: false6248 is expected to eq false6249 description: "missing dependencies", retry_count: 0, options: {:max=>2}, failure_reason: :missing_dependency_failure, result: false6250 is expected to eq false6251 description: "forward deployment failure", retry_count: 0, options: {:max=>2}, failure_reason: :forward_deployment_failure, result: false6252 is expected to eq false6253 description: "environment creation failure", retry_count: 0, options: {:max=>2}, failure_reason: :environment_creation_failure, result: false6254 is expected to eq false6255 when build is not retryable6256 is expected to eq false6257 #options_retry_max6258 with retries max config option6259 returns the number of configured max retries6260 without retries max config option6261 returns nil6262 when build is degenerated6263 returns nil6264 with integer only config option6265 returns the number of configured max retries6266 #options_retry_when6267 with retries when config option6268 returns the configured when6269 without retries when config option6270 returns always array6271 with integer only config option6272 returns always array6273 with retry[:when] set to nil6274 returns always array6275BulkImports::Clients::HTTP6276 #get6277 performs network request6278 error handling6279 when error occurred6280 raises BulkImports::NetworkError6281 when response is not success6282 raises BulkImports::NetworkError6283 #each_page6284 with a block6285 yields every retrieved page to the supplied block6286 without a block6287 returns an Enumerator6288 when the request is asynchronous6289 sets a timeout that is double the default read timeout6290 #post6291 performs network request6292 error handling6293 when error occurred6294 raises BulkImports::NetworkError6295 when response is not success6296 raises BulkImports::NetworkError6297 #head6298 performs network request6299 error handling6300 when error occurred6301 raises BulkImports::NetworkError6302 when response is not success6303 raises BulkImports::NetworkError6304 #stream6305 performs network request with stream_body option6306 #instance_version6307 returns version as an instance of Gitlab::VersionInfo6308 when /version endpoint is not available6309 requests /metadata endpoint6310 when /metadata endpoint returns a 4016311 raises a BulkImports:Error6312 when /metadata endpoint returns a 4036313 raises a BulkImports:Error6314 when /metadata endpoint returns a 4046315 raises a BulkImports:Error6316 when /metadata endpoint returns any other BulkImports::NetworkError6317 raises a BulkImports:NetworkError6318 #validate_instance_version!6319 when instance version is greater than or equal to the minimum major version6320 is expected to eq true6321 when instance version is less than the minimum major version6322 is expected to raise BulkImports::Error6323 #validate_import_scopes!6324 when the source_version is < 15.56325 skips validation6326 when source version is 15.5 or higher6327 when an HTTP error is raised6328 raises BulkImports::NetworkError6329 when scopes are valid6330 returns true6331 when scopes are invalid6332 raises a BulkImports error6333 #instance_enterprise6334 returns source instance enterprise information6335 when enterprise information is missing6336 defaults to true6337 #compatible_for_project_migration?6338 when instance version is lower the the expected minimum6339 returns false6340 when instance version is at least the expected minimum6341 returns true6342 when url is relative6343 performs network request to a relative gitlab url6344Banzai::Filter::SanitizationFilter6345 behaves like default allowlist6346 sanitizes tags that are not allowed6347 sanitizes tag attributes6348 sanitizes javascript in attributes6349 sanitizes mixed-cased javascript in attributes6350 allows whitelisted HTML tags from the user6351 sanitizes `class` attribute on any element6352 sanitizes `id` attribute on any element6353 custom allowlist6354 customizes the allowlist only once6355 customizes the allowlist only once for different instances6356 sanitizes `class` attribute from all elements6357 sanitizes `class` attribute from non-highlight spans6358 allows `text-align` property in `style` attribute on table elements6359 disallows other properties in `style` attribute on table elements6360 disallows `text-align` property in `style` attribute on other elements6361 allows `span` elements6362 allows `abbr` elements6363 disallows the `name` attribute globally, allows on `a`6364 allows `summary` elements6365 allows `details` elements6366 allows `rel=license` in links6367 allows `data-math-style` attribute on `code` and `pre` elements6368 allows the `data-sourcepos` attribute globally6369 behaves like XSS prevention6370 disallows protocol-based JS injection: simple, no spaces6371 disallows protocol-based JS injection: simple, spaces before6372 disallows protocol-based JS injection: simple, spaces after6373 disallows protocol-based JS injection: simple, spaces before and after6374 disallows protocol-based JS injection: preceding colon6375 disallows protocol-based JS injection: UTF-8 encoding6376 disallows protocol-based JS injection: long UTF-8 encoding6377 disallows protocol-based JS injection: long UTF-8 encoding without semicolons6378 disallows protocol-based JS injection: hex encoding6379 disallows protocol-based JS injection: long hex encoding6380 disallows protocol-based JS injection: hex encoding without semicolons6381 disallows protocol-based JS injection: null char6382 disallows protocol-based JS injection: invalid URL char6383 disallows protocol-based JS injection: Unicode6384 disallows protocol-based JS injection: spaces and entities6385 disallows protocol whitespace6386 disallows data links6387 disallows vbscript links6388 behaves like sanitize link6389 removes `rel` attribute from `a` elements6390 disallows invalid URIs6391 allows non-standard anchor schemes6392 allows relative links6393 footnotes6394 allows correct footnote id property on links6395 allows correct footnote id property on li element6396 removes invalid id for footnote links6397 removes invalid id for footnote li6398Projects::Settings::DeployKeysPresenter6399 inherits from Gitlab::View::Presenter::Simple6400 deploy key groups6401 with enabled keys6402 returns correct deploy keys6403 with available keys6404 returns correct deploy keys6405 with available project keys6406 returns correct deploy keys6407 with available public keys6408 returns correct deploy keys6409 #enabled_keys6410 returns currently enabled keys6411 does not contain enabled_keys inside available_keys6412 returns the enabled_keys size6413 #available_keys/#available_project_keys6414 returns the current available_keys6415 returns the current available_project_keys6416 returns the available_project_keys size6417 prevent N + 1 queries6418 returns correct counts6419 does not increase the query count6420Clusters::Agents::Authorizations::CiAccess::RefreshService6421 # order random6422 #execute6423 group authorization6424 refreshes authorizations for the agent6425 config contains too many groups6426 authorizes groups up to the limit6427 config contains no groups6428 removes all authorizations6429 config contains groups outside of the configuration project hierarchy6430 removes all authorizations6431 configuration project does not belong to a group6432 removes all authorizations6433 project authorization6434 refreshes authorizations for the agent6435 project does not belong to a group, and is in the same namespace as the agent6436 creates an authorization record for the project6437 project does not belong to a group, and is authorizing itself6438 creates an authorization record for the project6439 config contains too many projects6440 authorizes projects up to the limit6441 config contains no groups6442 removes all authorizations6443 config contains groups outside of the configuration project hierarchy6444 removes all authorizations6445 configuration project does not belong to a group6446 removes all authorizations6447Todos::Destroy::ProjectPrivateService6448 #execute6449 when a project set to private6450 removes issue todos for a user who is not a member6451 when project is not private6452 does not remove any todos6453Gitlab::Database::BulkUpdate6454 is possible to update all objects in a single query6455 is possible to update heterogeneous sets6456 error states6457 does not raise errors on valid inputs6458 expects a non-empty list of column names6459 expects all columns to be symbols6460 expects all columns to be valid columns on the tables6461 refuses to set ID6462 expects a non-empty mapping6463 expects all map values to be Hash instances6464 validates prepared_statements support6465 prepared_statements: false6466 sets multiple values6467 prepared_statements: true6468 sets multiple values6469Analytics::CycleAnalytics::Aggregation6470 associations6471 is expected to belong to namespace required: true6472 validations6473 is expected not to validate that :namespace cannot be empty/falsy6474 is expected not to validate that :enabled cannot be empty/falsy6475 validates the array length of incremental_runtimes_in_seconds6476 validates the array length of incremental_processed_records6477 validates the array length of full_runtimes_in_seconds6478 validates the array length of full_processed_records6479 behaves like value stream analytics namespace models6480 when ProjectNamespace is given6481 is valid6482 when Namespace is given6483 fails6484 attribute updater methods6485 #cursor_for6486 returns empty cursors6487 when cursor is not empty6488 returns the cursor values6489 #consistency_check_cursor_for6490 returns empty cursor6491 returns the cursor value for IssueStageEvent6492 returns the cursor value for MergeRequestStageEvent6493 #refresh_last_run6494 updates the run_at column6495 #reset_full_run_cursors6496 resets all full run cursors to nil6497 #set_cursor6498 sets the cursor values for the given mode6499 #set_stats6500 appends stats to the runtime and processed_records attributes6501 #safe_create_for_namespace6502 creates the aggregation record6503 when non top-level group is given6504 creates the aggregation record for the top-level group6505 when the record is already present6506 does nothing6507 when the aggregation was disabled for some reason6508 re-enables the aggregation6509 #load_batch6510 loads records in priority order6511 when loading batch for last_consistency_check_updated_at6512 loads records in priority order6513 #estimated_next_run_at6514 when aggregation was not yet executed for the given group6515 is expected to eq nil6516 when aggregation was already run6517 returns the duration between the previous run timestamp and the earliest last_incremental_run_at6518 when the aggregation has persisted previous runtimes6519 adds the runtime to the estimation6520 when no records are present in the DB6521 returns nil6522 when only one aggregation record present6523 returns the minutes until the next aggregation6524Gitlab::Ci::Build::Artifacts::Metadata::Entry6525 /file/with/absolute_path6526 is expected to be file6527 is expected to have parent6528 #basename6529 is expected to eq "absolute_path"6530 path/dir_1/6531 is expected to have parent6532 is expected to be directory6533 #basename6534 is expected to eq "dir_1/"6535 #name6536 is expected to eq "dir_1"6537 #parent6538 is expected to eq Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/6539 #children6540 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6541 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1, Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b, and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/6542 #files6543 is expected to all be file6544 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6545 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1 and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b6546 #directories6547 without options6548 is expected to all be directory6549 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6550 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/6551 with option parent: true6552 is expected to all be directory6553 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6554 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/ and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/6555 #nodes6556 is expected to eq 26557 #exists?6558 is expected to equal true6559 #empty?6560 is expected to equal false6561 #total_size6562 is expected to eq 306563 empty path6564 is expected not to have parent6565 #children6566 is expected to eq 36567 path/dir_1/subdir/subfile6568 #nodes6569 is expected to eq 46570 #blob6571 returns a blob representing the entry data6572 non-existent/6573 #empty?6574 is expected to equal true6575 #exists?6576 is expected to equal false6577 another_directory/6578 #empty?6579 is expected to equal true6580 #metadata6581 is expected to eq "/path/file1"6582Gitlab::Redis::Cache6583 .config_file_name6584 when there is no config file anywhere6585 is expected to be nil6586 .store6587 with old format6588 behaves like redis store6589 instantiates Redis::Store6590 with the namespace6591 uses specified namespace6592 with new format6593 behaves like redis store6594 instantiates Redis::Store6595 with the namespace6596 uses specified namespace6597 .params6598 withstands mutation6599 when url contains unix socket reference6600 with old format6601 returns path key instead6602 with new format6603 returns path key instead6604 when url is host based6605 with old format6606 returns hash with host, port, db, and password6607 with new format6608 rails_env: "development", host: "development-host"6609 returns hash with host, port, db, and password6610 rails_env: "test", host: "test-host"6611 returns hash with host, port, db, and password6612 rails_env: "production", host: "production-host"6613 returns hash with host, port, db, and password6614 with redis cluster format6615 rails_env: "development", host: "development-master"6616 returns hash with cluster and password6617 rails_env: "test", host: "test-master"6618 returns hash with cluster and password6619 rails_env: "production", host: "production-master"6620 returns hash with cluster and password6621 .url6622 withstands mutation6623 when yml file with env variable6624 reads redis url from env variable6625 .version6626 returns a version6627 .with6628 when running on single-threaded runtime6629 instantiates a connection pool with size 56630 when running on multi-threaded runtime6631 instantiates a connection pool with a size based on the concurrency of the worker6632 when there is no config at all6633 can run an empty block6634 #db6635 with old format6636 returns the correct db6637 with new format6638 returns the correct db6639 with cluster-mode6640 returns the correct db6641 #sentinels6642 when sentinels are defined6643 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6644 returns an array of hashes with host and port keys6645 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6646 returns an array of hashes with host and port keys6647 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6648 returns an array of hashes with host and port keys6649 when sentinels are not defined6650 returns nil6651 when cluster is defined6652 returns nil6653 #sentinels?6654 when sentinels are defined6655 returns true6656 when sentinels are not defined6657 is expected to eq nil6658 when cluster is defined6659 returns false6660 #raw_config_hash6661 returns old-style single url config in a hash6662 returns cluster config without url key in a hash6663 #fetch_config6664 raises an exception when the config file contains invalid yaml6665 when redis.yml exists6666 uses config/redis.yml6667 when no config file exsits6668 returns nil6669 when resque.yml exists6670 returns the config from resque.yml6671 .active_support_config6672 has a default ttl of 8 hours6673 allows configuring the TTL through an env variable6674Gitlab::SidekiqStatus6675 with multi-store feature flags turned on6676 uses Gitlab::Redis::SidekiqStatus.with6677 behaves like tracking status in redis6678 .set6679 stores the job ID6680 allows overriding the expiration time6681 does not store anything with a nil expiry6682 .unset6683 removes the job ID6684 .all_completed?6685 returns true if all jobs have been completed6686 returns false if a job has not yet been completed6687 .running?6688 returns true if job is running6689 returns false if job is not found6690 .num_running6691 returns 0 if all jobs have been completed6692 returns 2 if two jobs are still running6693 .num_completed6694 returns 1 if all jobs have been completed6695 returns 1 if a job has not yet been completed6696 .completed_jids6697 returns the completed job6698 returns only the jobs completed6699 .job_status6700 returns an array of boolean values6701 handles an empty array6702 when both multi-store feature flags are off6703 uses Sidekiq.redis6704 behaves like tracking status in redis6705 .set6706 stores the job ID6707 allows overriding the expiration time6708 does not store anything with a nil expiry6709 .unset6710 removes the job ID6711 .all_completed?6712 returns true if all jobs have been completed6713 returns false if a job has not yet been completed6714 .running?6715 returns true if job is running6716 returns false if job is not found6717 .num_running6718 returns 0 if all jobs have been completed6719 returns 2 if two jobs are still running6720 .num_completed6721 returns 1 if all jobs have been completed6722 returns 1 if a job has not yet been completed6723 .completed_jids6724 returns the completed job6725 returns only the jobs completed6726 .job_status6727 returns an array of boolean values6728 handles an empty array6729 .key_for6730 returns the key for a job ID6731Commits::CherryPickService6732 #execute6733 behaves like successful cherry-pick6734 picks the commit into the branch6735 supports a custom commit message6736 when picking a merge-request6737 adds a system note6738 behaves like successful cherry-pick6739 picks the commit into the branch6740 supports a custom commit message6741Packages::UpdatePackageFileService6742 #execute6743 with object storage disabled6744 behaves like updating package file with valid parameters6745 with both parameters set6746 updates the package file accordingly6747 with only file_name set6748 updates the package file accordingly6749 with only package_id set6750 updates the package file accordingly6751 behaves like not updating package with invalid parameters6752 with blank parameters6753 raise an argument error6754 with non persisted package file6755 raise an argument error6756 with object storage enabled6757 behaves like updating package file with valid parameters6758 with both parameters set6759 updates the package file accordingly6760 with only file_name set6761 updates the package file accordingly6762 with only package_id set6763 updates the package file accordingly6764 behaves like not updating package with invalid parameters6765 with blank parameters6766 raise an argument error6767 with non persisted package file6768 raise an argument error6769ci/status/_badge6770 when rendering status for build6771 when user has ability to see details6772 has link to build details page6773 when user do not have ability to see build details6774 contains build status text6775 does not contain links6776 when rendering status for external job6777 when user has ability to see commit status details6778 status has external target url6779 contains valid commit status text6780 has link to external status page6781 status do not have external target url6782 contains valid commit status text6783 has link to external status page6784Routing::PseudonymizationHelper6785 when url has params to mask6786 with controller for MR6787 behaves like masked url6788 generates masked page url6789 with controller for issue6790 behaves like masked url6791 generates masked page url6792 with controller for groups with subgroups and project6793 behaves like masked url6794 generates masked page url6795 with controller for groups and subgroups6796 behaves like masked url6797 generates masked page url6798 with controller for blob with file path6799 behaves like masked url6800 generates masked page url6801 when assignee_username is present6802 behaves like masked url6803 generates masked page url6804 when author_username is present6805 behaves like masked url6806 generates masked page url6807 when some query params are not required to be masked6808 behaves like masked url6809 generates masked page url6810 when query string has keys with the same names as path params6811 behaves like masked url6812 generates masked page url6813 when url has no params to mask6814 returns unchanged url6815 when it raises exception6816 calls error tracking6817 sends error to sentry and returns nil6818 when feature flag is disabled6819 returns nil6820Packages::Nuget::ExtractionWorker6821 #perform6822 with valid package file6823 updates package and package file6824 with exisiting package6825 reuses existing package and updates package file6826 with invalid package file id6827 doesn't update package and package file6828 with package file not containing a nuspec file6829 behaves like handling the metadata error6830 updates package status to error6831 with package with an invalid package name6832 with6833 behaves like handling the metadata error6834 updates package status to error6835 with My/package6836 behaves like handling the metadata error6837 updates package status to error6838 with ../../../my_package6839 behaves like handling the metadata error6840 updates package status to error6841 with %2e%2e%2fmy_package6842 behaves like handling the metadata error6843 updates package status to error6844 with package with an invalid package version6845 with6846 behaves like handling the metadata error6847 updates package status to error6848 with 5556849 behaves like handling the metadata error6850 updates package status to error6851 with 1./2.36852 behaves like handling the metadata error6853 updates package status to error6854 with ../../../../../1.2.36855 behaves like handling the metadata error6856 updates package status to error6857 with %2e%2e%2f1.2.36858 behaves like handling the metadata error6859 updates package status to error6860 handles a processing an unaccounted for error6861 behaves like handling the metadata error6862 updates package status to error6863Repositories::HousekeepingService6864 behaves like housekeeps repository6865 with a clean redis state6866 #execute6867 enqueues a sidekiq job6868 yields the block if given6869 resets counter after execution6870 runs the task specifically requested6871 when no lease can be obtained6872 does not enqueue a job6873 does not reset pushes_since_gc6874 does not yield6875 task type6876 goes through all three housekeeping tasks, executing only the highest task when there is overlap6877 #needed?6878 when the count is low enough6879 when the count is high enough6880 when incremental repack period is not multiple of gc period6881 #increment!6882 increments the pushes_since_gc counter6883 behaves like housekeeps repository6884 with a clean redis state6885 #execute6886 enqueues a sidekiq job6887 yields the block if given6888 resets counter after execution6889 runs the task specifically requested6890 when no lease can be obtained6891 does not enqueue a job6892 does not reset pushes_since_gc6893 does not yield6894 task type6895 goes through all three housekeeping tasks, executing only the highest task when there is overlap6896 #needed?6897 when the count is low enough6898 when the count is high enough6899 when incremental repack period is not multiple of gc period6900 #increment!6901 increments the pushes_since_gc counter6902Integrations::Assembla6903 behaves like Integrations::ResetSecretFields6904 #exposing_secrets_fields6905 returns an array of strings6906 #reset_secret_fields?6907 returns false if no exposing field has changed6908 returns true if any exposing field has changed6909 validation callback6910 when an exposing field has changed6911 clears all secret fields6912 when a secret field has been updated6913 does not clear this secret field6914 when a secret field has been updated with the same value6915 does not clear this secret field6916 when no exposing field has changed6917 does not clear any secret fields6918 Execute6919 calls Assembla API6920Gitlab::Auth::Ldap::User6921 #should_save?6922 marks existing ldap user as changed6923 marks existing non-ldap user if the email matches as changed6924 does not mark existing ldap user as changed6925 #valid_sign_in?6926 returns true6927 returns false if the GitLab user is not valid6928 find or create6929 finds the user if already existing6930 connects to existing non-ldap user if the email matches6931 connects to existing ldap user if the extern_uid changes6932 connects to existing ldap user if the extern_uid changes and email address has upper case characters6933 maintains an identity per provider6934 creates a new user if not found6935 when signup is disabled6936 creates the user6937 when user confirmation email is enabled6938 creates and confirms the user anyway6939 when the current minimum password length is different from the default minimum password length6940 creates the user6941 updating email6942 when LDAP sets an email6943 has a real email6944 has email set as synced6945 has email set as read-only6946 has synced attributes provider set to ldapmain6947 when LDAP doesn't set an email6948 has a temp email6949 has email set as not synced6950 does not have email set as read-only6951 blocking6952 signup6953 dont block on create6954 is expected not to be blocked6955 block on create6956 is expected to be blocked6957 sign-in6958 dont block on create6959 is expected not to be blocked6960 block on create6961 is expected not to be blocked6962Enumerator#next patch fix6963 Enumerator6964 #next6965 normal yield6966 returns yielded value6967 end of iteration6968 does not fix up StopIteration6969 nested enum object6970 fixes up StopIteration thrown by another instance of #next6971 arguments error6972 does not fix up ArgumentError6973 error6974 fixes up StopIteration6975 fixes up ArgumentError6976 adds backtrace from other errors6977 #next_values6978 normal yield6979 returns yielded value6980 end of iteration6981 does not fix up StopIteration6982 nested enum object6983 fixes up StopIteration thrown by another instance of #next6984 arguments error6985 does not fix up ArgumentError6986 error6987 fixes up StopIteration6988 fixes up ArgumentError6989 adds backtrace from other errors6990 #peek6991 normal yield6992 returns yielded value6993 end of iteration6994 does not fix up StopIteration6995 nested enum object6996 fixes up StopIteration thrown by another instance of #next6997 arguments error6998 does not fix up ArgumentError6999 error7000 fixes up StopIteration7001 fixes up ArgumentError7002 adds backtrace from other errors7003 #peek_values7004 normal yield7005 returns yielded value7006 end of iteration7007 does not fix up StopIteration7008 nested enum object7009 fixes up StopIteration thrown by another instance of #next7010 arguments error7011 does not fix up ArgumentError7012 error7013 fixes up StopIteration7014 fixes up ArgumentError7015 adds backtrace from other errors7016WebIdeTerminalEntity7017 is expected to have key :id7018 is expected to have key :status7019 is expected to have key :show_path7020 is expected to have key :cancel_path7021 is expected to have key :retry_path7022 is expected to have key :terminal_path7023 is expected to have key :services7024 is expected to have key :proxy_websocket_path7025 when feature flag build_service_proxy is disabled7026 is expected not to have key :proxy_websocket_path7027Integrations::Test::ProjectService7028 #execute7029 without event specified7030 tests the integration with default data7031 with Integrations::PipelinesEmail7032 behaves like tests for integration with pipeline data7033 tests the integration with pipeline data7034 with event specified7035 event not supported by integration7036 returns error message7037 push7038 executes integration7039 tag_push7040 executes integration7041 note7042 returns error message if not enough data7043 executes integration7044 issue7045 behaves like a test of an integration that operates on issues7046 returns error message if not enough data7047 executes integration7048 confidential_issue7049 behaves like a test of an integration that operates on issues7050 returns error message if not enough data7051 executes integration7052 merge_request7053 returns error message if not enough data7054 executes integration7055 deployment7056 returns error message if not enough data7057 executes integration7058 pipeline7059 returns error message if not enough data7060 executes integration7061 wiki_page7062 returns error message if wiki disabled7063 returns error message if not enough data7064 executes integration7065Sidebars::Projects::SuperSidebarPanel7066 # order random7067 implements #super_sidebar_context_header7068 behaves like a panel with all menu_items categorized7069 has no uncategorized menu_items7070 #renderable_menus7071 is exposed as a renderable menu7072 behaves like a panel with uniquely identifiable menu items7073 all menu_items have unique item_id7074 all menu_items have an item_id7075Resolvers::ProjectPackagesResolver7076 #resolve7077 behaves like group and projects packages resolver7078 without sort7079 returns the proper packages7080 with sorting and filtering7081 CREATED_DESC7082 is expected to eq [#<Packages::Package id: 29, project_id: 749, created_at: "2023-05-15 16:23:17.913430837 +0000", upda...sion: "1.0.0", package_type: "conan", creator_id: 1419, status: "default", last_downloaded_at: nil>]7083 NAME_DESC7084 is expected to eq [#<Packages::Package id: 29, project_id: 749, created_at: "2023-05-15 16:23:17.913430837 +0000", upda...sion: "1.0.0", package_type: "conan", creator_id: 1419, status: "default", last_downloaded_at: nil>]7085 VERSION_DESC7086 is expected to eq [#<Packages::Package id: 29, project_id: 749, created_at: "2023-05-15 16:23:17.913430837 +0000", upda...sion: "1.0.0", package_type: "conan", creator_id: 1419, status: "default", last_downloaded_at: nil>]7087 TYPE_ASC7088 is expected to eq [#<Packages::Package id: 29, project_id: 749, created_at: "2023-05-15 16:23:17.913430837 +0000", upda...sion: "1.0.0", package_type: "conan", creator_id: 1419, status: "default", last_downloaded_at: nil>]7089 CREATED_ASC7090 is expected to eq [#<Packages::Package id: 27, project_id: 749, created_at: "2023-05-14 17:23:17.454699996 +0000", upda...ersion: "2.0.0", package_type: "maven", creator_id: 1419, status: "error", last_downloaded_at: nil>]7091 NAME_ASC7092 is expected to eq [#<Packages::Package id: 27, project_id: 749, created_at: "2023-05-14 17:23:17.454699996 +0000", upda...ersion: "2.0.0", package_type: "maven", creator_id: 1419, status: "error", last_downloaded_at: nil>]7093 VERSION_ASC7094 is expected to eq [#<Packages::Package id: 27, project_id: 749, created_at: "2023-05-14 17:23:17.454699996 +0000", upda...ersion: "2.0.0", package_type: "maven", creator_id: 1419, status: "error", last_downloaded_at: nil>]7095 TYPE_DESC7096 is expected to eq [#<Packages::Package id: 27, project_id: 749, created_at: "2023-05-14 17:23:17.454699996 +0000", upda...ersion: "2.0.0", package_type: "maven", creator_id: 1419, status: "error", last_downloaded_at: nil>]7097 filter by package_name7098 is expected to eq [#<Packages::Package id: 27, project_id: 749, created_at: "2023-05-14 17:23:17.454699996 +0000", upda...sion: "1.0.0", package_type: "conan", creator_id: 1419, status: "default", last_downloaded_at: nil>]7099 filter by package_type7100 is expected to eq [#<Packages::Package id: 27, project_id: 749, created_at: "2023-05-14 17:23:17.454699996 +0000", upda...sion: "1.0.0", package_type: "conan", creator_id: 1419, status: "default", last_downloaded_at: nil>]7101 filter by status7102 is expected to eq [#<Packages::Package id: 29, project_id: 749, created_at: "2023-05-15 16:23:17.913430837 +0000", upda...ersion: "2.0.0", package_type: "maven", creator_id: 1419, status: "error", last_downloaded_at: nil>]7103 include_versionless7104 is expected to include #<Packages::Package id: 31, project_id: 749, created_at: "2023-05-15 17:22:18.273832328 +0000", updat..., version: nil, package_type: "maven", creator_id: 1419, status: "default", last_downloaded_at: nil>7105Packages::CreateDependencyService7106 #execute7107 when packages are published7108 creates dependencies and links7109 with repeated packages7110 creates dependencies and links7111 with dependencies bulk insert conflicts7112 creates dependences and links7113 with existing dependencies7114 reuses them7115 with a dependency not described with a hash7116 creates dependencies and links7117BoardPolicy7118 group board7119 user has access7120 is expected to be allowed :read_issue7121 user does not have access7122 is expected not to be allowed :read_issue7123 project board7124 user has access7125 is expected to be allowed :read_issue7126 user does not have access7127 is expected not to be allowed :read_issue7128 create_non_backlog_issues7129 for project boards7130 when user can admin project issues7131 allows to add non backlog issues from issue board7132 when user cannot admin project issues7133 does not allow to add non backlog issues from issue board7134 for group boards7135 when user is at least reporter in one of the child projects7136 allows to add non backlog issues from issue board7137 when user is not a reporter from any child projects7138 does not allow to add non backlog issues from issue board7139Types::MergeRequestType7140 is expected to expose permissions using Types::PermissionTypes::MergeRequest7141 is expected to require graphql authorizations :read_merge_request7142 is expected to include Types::Notes::NoteableInterface7143 is expected to include Types::CurrentUserTodos7144 is expected to include Types::TodoableInterface7145 has the expected fields7146 #pipelines7147 is expected to have attributes {:max_page_size => 500}7148 #diff_stats_summary7149 when MR metrics has additions and deletions7150 pulls out data from metrics object7151 #diverged_from_target_branch7152 delegates the diverged_from_target_branch? call to the merge request entity7153 merge_status_enum7154 has the type MergeStatus7155 when the the DB value is preparing7156 serializes correctly7157 when the the DB value is unchecked7158 serializes correctly7159 when the the DB value is cannot_be_merged_recheck7160 serializes correctly7161 when the the DB value is checking7162 serializes correctly7163 when the the DB value is cannot_be_merged_rechecking7164 serializes correctly7165 when the the DB value is can_be_merged7166 serializes correctly7167 when the the DB value is cannot_be_merged7168 serializes correctly7169 #merge_user7170 when MR is merged7171 is not nil7172 when MR is set to merge when pipeline succeeds7173 is not nil7174SnippetBlobPresenter7175 #rich_data7176 with PersonalSnippet7177 when blob is binary7178 returns the HTML associated with the binary7179 with markdown format7180 returns rich markdown content7181 with notebook format7182 returns rich notebook content7183 with openapi format7184 returns rich openapi content7185 with svg format7186 returns rich svg content7187 with other format7188 does not return no rich content7189 route helpers7190 #raw_path7191 behaves like snippet blob raw path7192 for PersonalSnippets7193 returns the raw personal snippet blob path7194 for ProjectSnippets7195 returns the raw project snippet blob path7196 with a snippet without a repository7197 with ProjectSnippet7198 returns the raw project snippet path7199 with PersonalSnippet7200 returns the raw personal snippet path7201 #raw_plain_data7202 with a plain file7203 shows raw data for non binary files7204 with a binary file7205 returns nil7206 #raw_url7207 behaves like snippet blob raw url7208 for PersonalSnippets7209 returns the raw personal snippet blob url7210 for ProjectSnippets7211 returns the raw project snippet blob url7212 with a snippet without a repository7213 with ProjectSnippet7214 returns the raw project snippet url7215 with PersonalSnippet7216 returns the raw personal snippet url7217Mutations::Ci::Runner::Update7218 is expected to require graphql authorizations :update_runner7219 #resolve7220 when the user cannot admin the runner7221 generates an error7222 when required arguments are missing7223 raises an error7224 when user can update runner7225 with valid arguments7226 updates runner with correct values7227 with associatedProjects argument7228 with id set to project runner7229 updates runner attributes and project relationships7230 with missing permissions on one of the new projects7231 does not update runner7232 with an empty list of projects7233 removes project relationships7234 with id set to instance runner7235 raises error7236 with non-existing project ID in associatedProjects argument7237 does not change associated projects7238 with out-of-range maximum_timeout and missing tag_list7239 returns a descriptive error7240 with too long maintenance note7241 returns a descriptive error7242Gitlab::Profiler7243 .profile7244 returns a profile result7245 uses the custom logger given7246 sends a POST request when data is passed7247 uses the private_token for auth if given7248 uses the user for auth if given7249 uses the private_token for auth if both it and user are set7250 generates sampling data7251 saves sampling data with a randomly-generated filename7252 .create_custom_logger7253 does nothing when nil is passed7254 the new logger7255 does not affect the existing logger7256 strips out the private token7257 tracks model load times by model7258 logs the backtrace, ignoring lines as appropriate7259 .with_custom_logger7260 when the logger is set7261 uses the replacement logger for the duration of the block7262 returns the result of the block7263 when the logger is nil7264 returns the result of the block7265 does not modify the standard Rails loggers7266 .with_user7267 when the user is set7268 overrides auth in ApplicationController to use the given user7269 cleans up ApplicationController afterwards7270 when the user is nil7271 does not define methods on ApplicationController7272 .log_load_times_by_model7273 logs the model, query count, and time by slowest first7274 does nothing when called with a logger that does not have load times7275projects/commits/_commit.html.haml7276 with different committer7277 renders committed by user7278 with a signed commit7279 does not display a loading spinner for GPG status7280 with ci status7281 when pipelines are disabled7282 does not display a ci status icon7283 when pipelines are enabled7284 when user has access7285 displays a ci status icon7286 when user does not have access7287 does not display a ci status icon7288Gitlab::Auth::Saml::IdentityLinker7289 with valid GitLab initiated request7290 linked identity exists7291 doesn't create new identity7292 sets #changed? to false7293 identity needs to be created7294 creates linked identity7295 sets identity provider7296 sets identity extern_uid7297 sets #changed? to true7298 with identity provider initiated request7299 attempting to link accounts raises an exception7300Projects::DeployTokens::CreateService7301 behaves like a deploy token creation service7302 #execute7303 when the deploy token is valid7304 creates a new DeployToken7305 creates a new ProjectDeployToken7306 returns a DeployToken7307 sets the creator_id as the id of the current_user7308 when expires at date is not passed7309 sets Forever.date7310 when username is empty string7311 converts it to nil7312 when username is provided7313 keeps the provided username7314 when the deploy token is invalid7315 does not create a new DeployToken7316 does not create a new ProjectDeployToken7317MergeRequestSerializer7318 widget merge request serialization7319 matches issue json schema7320 sidebar merge request serialization7321 matches merge_request_sidebar json schema7322 sidebar_extras merge request serialization7323 matches merge_request_sidebar_extras json schema7324 basic merge request serialization7325 matches basic merge request json schema7326 noteable merge request serialization7327 matches noteable merge request json schema7328 when merge_request is locked7329 matches noteable merge request json schema7330 when project is archived7331 matches noteable merge request json schema7332 poll cached widget merge request serialization7333 matches basic merge request json schema7334 poll widget merge request serialization7335 matches basic merge request json schema7336 no serializer7337 falls back to the widget entity7338LfsFileLock7339 is expected to belong to project required: false7340 is expected to belong to user required: false7341 is expected to validate that :project_id cannot be empty/falsy7342 is expected to validate that :user_id cannot be empty/falsy7343 is expected to validate that :path cannot be empty/falsy7344 #can_be_unlocked_by?7345 when it's forced7346 can be unlocked by the author7347 can be unlocked by a maintainer7348 can't be unlocked by other user7349 when it isn't forced7350 can be unlocked by the author7351 can't be unlocked by a maintainer7352 can't be unlocked by other user7353Projects::HashedStorage::BaseAttachmentService7354 #old_disk_path7355 is expected to respond to #old_disk_path7356 #new_disk_path7357 is expected to respond to #new_disk_path7358 #skipped?7359 is expected to respond to #skipped?7360 #target_path_discardable?7361 returns false7362 #discard_path!7363 renames target path adding a timestamp at the end7364 #move_folder!7365 when old_path is not a directory7366 adds information to the logger and returns true7367Tooling::Mappings::GraphqlBaseTypeMappings7368 # order random7369 #filter_files7370 when no files were changed7371 returns an empty array7372 when GraphQL files were changed7373 returns the path to the GraphQL files7374 when files are deleted7375 returns an empty array7376 #execute7377 when no GraphQL files were changed7378 does not change the output file7379 when some GraphQL files were changed7380 when none of those GraphQL types are included in other GraphQL types7381 does not change the output file7382 when the GraphQL types are included in other GraphQL types7383 writes the correct specs in the output7384 #filename_to_class_name7385 returns the correct class name7386 #types_hierarchies7387 when no types are implementing other types7388 returns nothing7389 when types are implementing other types7390 when FOSS7391 returns only FOSS types7392 when EE7393 returns the correct children types7394 when JH7395 returns the correct children types7396 #filename_to_spec_filename7397 when the spec file exists7398 returns the correct spec filename7399 when the spec file does not exist7400 returns nil7401Gitlab::ContentSecurityPolicy::ConfigLoader7402 .default_enabled7403 is enabled7404 when in production7405 is disabled7406 .default_directives7407 returns default directives7408 the images-src directive7409 can be loaded from anywhere7410 the media-src directive7411 can be loaded from anywhere7412 adds all websocket origins to support Safari7413 with insecure domain7414 with secure domain7415 with custom port7416 with custom port and secure domain7417 when CDN host is defined7418 adds CDN host to CSP7419 Zuora directives7420 when on SaaS7421 adds Zuora host to CSP7422 when is not Gitlab.com?7423 does not add Zuora host to CSP7424 when sentry is configured7425 when legacy sentry is configured7426 adds legacy sentry path to CSP7427 when sentry is configured7428 adds new sentry path to CSP7429 when sentry settings are from older schemas and sentry setting are missing7430 config is backwards compatible, does not add sentry path to CSP7431 when legacy sentry and sentry are both configured7432 adds both sentry paths to CSP7433 when CUSTOMER_PORTAL_URL is set7434 adds CUSTOMER_PORTAL_URL to CSP7435 letter_opener application URL7436 when in production7437 does not add letter_opener to CSP7438 when in development7439 adds letter_opener to CSP7440 Snowplow Micro event collector7441 when in production7442 does not add Snowplow Micro URL to connect-src7443 when in development7444 adds Snowplow Micro URL with trailing slash to connect-src7445 when not enabled using config7446 does not add Snowplow Micro URL to connect-src7447 when REVIEW_APPS_ENABLED is set7448 adds gitlab-org/gitlab merge requests API endpoint to CSP7449 #load7450 sets the policy properly7451 ignores malformed policy statements7452 returns default values for directives not defined by the user or with <default_value> and disables directives set to false7453Gitlab::ExceptionsApp7454 .call7455 for a 500 error7456 for an HTML request7457 fills in the request ID7458 HTML-escapes the request ID7459 returns an empty 500 when the 500.html page cannot be found7460 for a JSON request7461 does not include the request ID7462 for a 404 error7463 returns a 404 response that does not include the request ID7464UsersStarProjectsFinder7465 #execute7466 as same user7467 is expected to contain exactly #<UsersStarProject id: 2, project_id: 801, user_id: 1521, created_at: "2023-05-15 17:24:15.100910000 +0000", updated_at: "2023-05-15 17:24:15.100910000 +0000"> and #<UsersStarProject id: 1, project_id: 801, user_id: 1519, created_at: "2023-05-15 17:24:14.995095000 +0000", updated_at: "2023-05-15 17:24:14.995095000 +0000">7468 as other user7469 is expected to contain exactly #<UsersStarProject id: 4, project_id: 802, user_id: 1523, created_at: "2023-05-15 17:24:15.747258000 +0000", updated_at: "2023-05-15 17:24:15.747258000 +0000">7470 as no user7471 is expected to contain exactly #<UsersStarProject id: 7, project_id: 803, user_id: 1528, created_at: "2023-05-15 17:24:16.687282000 +0000", updated_at: "2023-05-15 17:24:16.687282000 +0000">7472 with active users only7473 ignores stars of non-active users7474Gitlab::Utils::UsernameAndEmailGenerator7475 # order random7476 check email domain7477 contains SecureRandom part7478 email name is the same as username7479 when conflicts7480 when username is reserved7481 when username is reserved by user7482 uniquifies username and email7483 when it conflicts with top-level group namespace7484 uniquifies username and email7485 when it conflicts with top-level group namespace that includes upcased characters7486 uniquifies username and email7487 when email is reserved7488 when it conflicts with confirmed primary email7489 uniquifies username and email7490 when it conflicts with unconfirmed primary email7491 uniquifies username and email7492 when it conflicts with confirmed secondary email7493 uniquifies username and email7494 when email and username is reserved7495 uniquifies username and email7496 email domain7497 defaults to `Gitlab.config.gitlab.host`7498 when specified7499 uses the specified email domain7500Types::Terraform::StateVersionType7501 is expected to eq "TerraformStateVersion"7502 is expected to require graphql authorizations :read_terraform_state7503 fields7504 is expected to have graphql fields :id, :created_by_user, :job, :download_path, :serial, :created_at, and :updated_at7505 is expected to be non null7506 is expected not to be non null7507 is expected not to be non null7508 is expected not to be non null7509 is expected not to be non null7510 is expected to be non null7511 is expected to be non null7512 query7513 returns job of the latest version7514 behaves like returning latest version7515 returns latest version of terraform state7516 when user cannot read jobs7517 does not return job of the latest version7518 behaves like returning latest version7519 returns latest version of terraform state7520Gitlab::Ci::Status::Stage::PlayManual7521 #action_icon7522 is expected to eq "play"7523 #action_button_title7524 is expected to eq "Play all manual"7525 #action_title7526 is expected to eq "Play all manual"7527 #action_path7528 is expected to eq "/namespace895/project-906/-/pipelines/222/stages/test/play_manual"7529 #action_method7530 is expected to eq :post7531 .matches?7532 when stage is skipped7533 is expected to be truthy7534 when stage is manual7535 is expected to be truthy7536 when stage is scheduled7537 is expected to be truthy7538 when stage is success7539 and does not have manual builds7540 is expected to be falsy7541Gitlab::APIAuthentication::TokenResolver7542 .new7543 with a valid type7544 creates a new instance7545 with an invalid type7546 raises a validation error7547 #resolve7548 with :personal_access_token_with_username7549 with valid credentials7550 behaves like an authorized request7551 returns the correct token7552 with an invalid username7553 behaves like an unauthorized request7554 raises an error7555 with no username7556 behaves like an unauthorized request7557 raises an error7558 with :job_token_with_username7559 with valid credentials7560 behaves like an authorized request7561 returns the correct token7562 when the job is not running7563 behaves like an unauthorized request7564 raises an error7565 with the wrong username7566 behaves like an anoymous request7567 returns nil7568 with an invalid job token7569 behaves like an unauthorized request7570 raises an error7571 with :deploy_token_with_username7572 with a valid deploy token7573 behaves like an authorized request7574 returns the correct token7575 with an invalid username7576 behaves like an unauthorized request7577 raises an error7578 when the the deploy token is restricted with external_authorization7579 with a valid deploy token7580 behaves like an unauthorized request7581 raises an error7582 with :personal_access_token7583 with valid credentials7584 behaves like an authorized request7585 returns the correct token7586 with :job_token7587 with valid credentials7588 behaves like an authorized request7589 returns the correct token7590 when the job is not running7591 behaves like an unauthorized request7592 raises an error7593 with an invalid job token7594 behaves like an unauthorized request7595 raises an error7596 with :deploy_token7597 with a valid deploy token7598 behaves like an authorized request7599 returns the correct token7600 with :personal_access_token_from_jwt7601 with valid credentials7602 behaves like an authorized request7603 returns the correct token7604 with :deploy_token_from_jwt7605 with valid credentials7606 behaves like an authorized request7607 returns the correct token7608 with :job_token_from_jwt7609 with valid credentials7610 behaves like an authorized request7611 returns the correct token7612 when the job is not running7613 behaves like an unauthorized request7614 raises an error7615 with an invalid job token7616 behaves like an unauthorized request7617 raises an error7618Gitlab::Ci::Config::Extendable::Entry7619 .new7620 when entry key is not included in the context hash7621 raises error7622 #value7623 reads a hash value from the context7624 #extensible?7625 when entry has inheritance defined7626 is extensible7627 when entry does not have inheritance specified7628 is not extensible7629 when entry value is not a hash7630 is not extensible7631 #extends_keys7632 when entry is extensible7633 returns symbolized extends key value7634 when entry is not extensible7635 returns nil7636 #ancestors7637 returns ancestors keys7638 #base_hashes!7639 when base hash is not extensible7640 returns unchanged base hashes7641 when base hash is extensible too7642 extends the base hashes first7643 mutates original context7644 #extend!7645 when extending a non-hash value7646 raises an error7647 when extending unknown key7648 raises an error7649 when extending a hash correctly7650 returns extended part of the hash7651 mutates original context7652 when extending multiple hashes correctly7653 returns extended part of the hash7654 mutates original context7655 when hash is not extensible7656 returns original key value7657 does not mutate orignal context7658 when circular depenency gets detected7659 raises an error7660 when nesting level is too deep7661 raises an error7662Gitlab::Auth::Ldap::Authentication7663 login7664 finds the user if authentication is successful7665 is false if the user does not exist7666 is false if authentication fails7667 fails if ldap is disabled7668 fails if no login is supplied7669 fails if no password is supplied7670Resolvers::Crm::ContactsResolver7671 #resolve7672 with unauthorized user7673 does not rise an error and returns no contacts7674 with authorized user7675 does not rise an error and returns all contacts in the correct order7676 without parent7677 returns no contacts7678 with a group parent7679 when no filter is provided7680 returns all the contacts in the default order7681 when a sort is provided7682 returns all the contacts in the correct order7683 when a sort is provided needing offset_pagination7684 returns all the contacts in the correct order7685 when filtering for all states7686 returns all the contacts in the correct order7687 when search term is provided7688 returns the correct contacts7689 when state is provided7690 returns the correct contacts7691 when ids are provided7692 returns the correct contacts7693projects/pages/new7694 with onboarding wizard feature enabled7695 shows the onboarding wizard7696 with onboarding wizard feature disabled7697 does not show the onboarding wizard7698 renders the usage instructions7699SystemCheck::App::GitUserDefaultSSHConfigCheck7700 only whitelists safe files7701 #skip?7702 user_exists: true, home_dir_exists: true7703 is expected to eq false7704 user_exists: true, home_dir_exists: false7705 is expected to eq true7706 user_exists: false, home_dir_exists: true7707 is expected to eq true7708 user_exists: false, home_dir_exists: false7709 is expected to eq true7710 #check?7711 fails if a forbidden file exists7712 succeeds if the SSH directory doesn't exist7713 succeeds if all the whitelisted files exist7714 #show_error7715 outputs error information7716Gitlab::ImportExport::Shared7717 with a repository on disk7718 #archive_path7719 uses a random hash to avoid conflicts7720 memoizes the path7721 #export_path7722 uses a random hash relative to project path7723 memoizes the path7724 with a group on disk7725 #base_path7726 uses hashed storage path7727 when exportable type is unsupported7728 #base_path7729 raises7730 #error7731 filters any full paths7732 tracks exception7733Banzai::Filter::TableOfContentsTagFilter7734 table of contents7735 [[_TOC_]] as tag7736 behaves like table of contents tag7737 replaces toc tag with ToC result7738 handles an empty ToC result7739 [[_toc_]] as tag7740 behaves like table of contents tag7741 replaces toc tag with ToC result7742 handles an empty ToC result7743 [TOC] as tag7744 behaves like table of contents tag7745 replaces toc tag with ToC result7746 handles an empty ToC result7747 [toc] as tag7748 behaves like table of contents tag7749 replaces toc tag with ToC result7750 handles an empty ToC result7751Packages::Go::VersionFinder7752 #execute7753 for the root module7754 behaves like #execute7755 returns v1.0.1, v1.0.2, v1.0.3, v1.0.47756 for the package7757 behaves like #execute7758 returns nothing7759 for the submodule7760 behaves like #execute7761 returns v1.0.3, v1.0.47762 for the root module v27763 behaves like #execute7764 returns v2.0.07765 for the bad module7766 with gomod checking enabled7767 behaves like #execute7768 returns nothing7769 with gomod checking disabled7770 behaves like #execute7771 returns v1.0.47772 #find7773 with a ref7774 returns a ref version7775 with a semver tag7776 returns a version with a semver7777 with a semver tag string7778 returns a version with a semver7779 with a commit7780 retruns a commit version7781 with a pseudo-version7782 returns a pseudo version7783 with a string that is not a semantic version7784 returns nil7785 with a pseudo-version that does not reference a commit7786 behaves like #find with an invalid argument7787 raises an argument exception: invalid pseudo-version: unknown commit7788 with a pseudo-version with a short sha7789 behaves like #find with an invalid argument7790 raises an argument exception: invalid pseudo-version: revision is shorter than canonical7791 with a pseudo-version with an invalid timestamp7792 behaves like #find with an invalid argument7793 raises an argument exception: invalid pseudo-version: does not match version-control timestamp7794projects/pipelines/show7795 when pipeline has errors7796DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/alert_component.html.haml:13)7797 shows errors7798DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/alert_component.html.haml:13)7799 does not render the pipeline tabs7800DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/alert_component.html.haml:13)7801 renders the pipeline editor button with correct link for users who can view7802DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/alert_component.html.haml:13)7803 renders the pipeline editor button with correct link for users who can not view7804 when pipeline is valid7805 does not show errors7806 renders the pipeline tabs7807Ci::VariablePresenter7808 inherits from Gitlab::View::Presenter::Delegated7809 #initialize7810 takes a variable and optional params7811 exposes variable7812 forwards missing methods to variable7813 #placeholder7814 is expected to eq "PROJECT_VARIABLE"7815 #form_path7816 is expected to eq "/namespace916/project-926/-/settings/ci_cd"7817 #edit_path7818 is expected to eq "/namespace917/project-927/-/variables"7819 #delete_path7820 is expected to eq "/namespace918/project-928/-/variables"7821Gitlab::Database::Partitioning::MonthlyStrategy7822 #current_partitions7823 detects both partitions7824 #missing_partitions7825 with existing partitions7826 detects the gap and the missing partition in May 20207827 detects the missing partitions at the end of the range and expects a partition for July 20207828 detects the missing partitions at the end of the range and expects a partition for August 20207829 creates partitions 6 months out from now (Sep 2020 through Feb 2021)7830 detects all missing partitions7831 when pruning partitions before June 20207832 does not include the missing partition from May 2020 because it would be dropped7833 detects the missing partition for 1 month ago (July 2020)7834 without existing partitions7835 detects the missing catch-all partition at the beginning7836 detects the missing partition for today and expects a partition for August 20207837 creates partitions 6 months out from now (Sep 2020 through Feb 20217838 detects all missing partitions7839 when pruning partitions before June 20207840 detects exactly the set of partitions from June 2020 to March 20217841 with a regular partition but no catchall (MINVALUE, to) partition7842 detects a missing catch-all partition to add before the existing partition7843 #extra_partitions7844 with existing partitions7845 without a time retention policy7846 has no extra partitions to prune7847 with a time retention policy that excludes no partitions7848 has no extra partitions to prune7849 with a time retention policy of 3 months7850 prunes the unbounded partition ending 2020-05-017851 with a time retention policy of 2 months7852 prunes the unbounded partition and the partition for May-June7853 when the retain_non_empty_partitions is true7854 prunes empty partitions7855 does not prune non-empty partitions7856Tooling::Danger::SidekiqArgs7857 # order random7858 #args_changed?7859 before: " - def perform", after: " + def perform(abc)", result: true7860 returns correct result7861 before: " - def perform", after: " + def perform(abc)", result: true7862 returns correct result7863 before: " - def perform(abc)", after: " + def perform(def)", result: true7864 returns correct result7865 before: " - def perform(abc, def)", after: " + def perform(abc)", result: true7866 returns correct result7867 before: " - def perform(abc, def)", after: " + def perform(def, abc)", result: true7868 returns correct result7869 before: " - def perform", after: " - def perform", result: false7870 returns correct result7871 before: " + def perform", after: " + def perform", result: false7872 returns correct result7873 before: " - def perform(abc)", after: " - def perform(abc)", result: false7874 returns correct result7875 before: " + def perform(abc)", after: " + def perform(abc)", result: false7876 returns correct result7877 before: " - def perform(abc)", after: " + def perform_foo(abc)", result: false7878 returns correct result7879 #add_comment_for_matched_line7880 when args are changed7881 adds suggestion at the correct lines7882 when args are not changed7883 does not add suggestion7884 #changed_worker_files7885 returns added, modified, and renamed_after files by default7886 with include_ee: :exclude7887 returns spec files without EE-specific files7888 with include_ee: :only7889 returns EE-specific spec files only7890WebHooks::DestroyService7891 #execute7892 when the user does not have permission7893 is an error7894 when the user does have permission7895 is successful7896 destroys the hook7897 does not destroy logs7898 schedules the destruction of logs7899 when the hook fails to destroy7900 is not a success7901BulkImports::Pipeline::Runner7902 pipeline runner7903 when entity is not marked as failed7904 runs pipeline extractor, transformer, loader7905 when extracted data has multiple pages7906 updates tracker information and runs pipeline again7907 when the exception BulkImports::NetworkError is raised7908 when exception is retriable7909 raises the exception BulkImports::RetryPipelineError7910 when exception is not retriable7911 behaves like failed pipeline7912 logs import failure7913 when pipeline is marked to abort on failure7914 logs a warn message and marks entity and tracker as failed7915 when pipeline is not marked to abort on failure7916 does not mark entity as failed7917 when a retriable BulkImports::NetworkError exception is raised while extracting the next page7918 raises the exception BulkImports::RetryPipelineError7919 when the exception StandardError is raised7920 behaves like failed pipeline7921 logs import failure7922 when pipeline is marked to abort on failure7923 logs a warn message and marks entity and tracker as failed7924 when pipeline is not marked to abort on failure7925 does not mark entity as failed7926 when entity is marked as failed7927 logs and returns without execution7928WorkItems::Widgets::DescriptionService::UpdateService7929 #update7930 when user has permission to update description7931 when user is work item author7932 behaves like sets work item description7933 correctly sets work item description value7934 when user is a project reporter7935 behaves like sets work item description7936 correctly sets work item description value7937 when description is nil7938 behaves like sets work item description7939 correctly sets work item description value7940 when description is empty7941 behaves like sets work item description7942 correctly sets work item description value7943 when description param is not present7944 behaves like does not set work item description7945 does not change work item description value7946 when widget does not exist in new type7947 resets the work item's description7948 when user does not have permission to update description7949 when user is a project guest7950 behaves like does not set work item description7951 does not change work item description value7952 with private project7953 when user is work item author7954 behaves like does not set work item description7955 does not change work item description value7956Gitlab::LegacyGithubImport::Client7957 convert OAuth2 client options to symbols7958 does not crash (e.g. GitlabSettings::MissingSetting) when verify_ssl config is not present7959 when config is missing7960 is still possible to get an Octokit client7961 is not be possible to get an OAuth2 client7962 allow SSL verification to be configurable on API7963 uses supplied value7964 #api_endpoint7965 when provider does not specity an API endpoint7966 uses GitHub root API endpoint7967 when provider specify a custom API endpoint7968 uses the custom API endpoint7969 when given a host7970 builds a endpoint with the given host and the default API version7971 when given an API version7972 does not use the API version without a host7973 when given a host and version7974 builds a endpoint with the given options7975 and hostname7976 builds a endpoint with the given options7977 #repository7978 returns repository data as a hash7979 #repos7980 returns the user's repositories as a hash7981 github rate limit7982 does not raise error when rate limit is disabled7983 when wait for rate limit is disabled7984 raises the error limit error when requested7985Gitlab::MarkupHelper7986 #markup?7987 returns true for textile files7988 returns true for rdoc files7989 returns true for org files7990 returns true for creole files7991 returns true for wiki files7992 returns true for mediawiki files7993 returns true for rst files7994 returns true for adoc files7995 returns true for ad files7996 returns true for asciidoc files7997 returns true for mdown files7998 returns true for md files7999 returns true for markdown files8000 returns false when given a non-markup filename8001 #gitlab_markdown?8002 returns true for mdown files8003 returns true for mkd files8004 returns true for mkdn files8005 returns true for md files8006 returns true for markdown files8007 returns false when given a non-markdown filename8008 #asciidoc?8009 returns true for adoc files8010 returns true for ad files8011 returns true for asciidoc files8012 returns true for ADOC files8013 returns false when given a non-asciidoc filename8014Security::CiConfiguration::SastBuildAction8015 with existing .gitlab-ci.yml8016 sast has not been included8017 template includes are array8018 generates the correct YML8019 template include is not an array8020 generates the correct YML8021 reports defaults have been overwritten8022 sast template include is not an array8023 generates the correct YML8024 with default values8025 generates the correct YML8026 reports defaults have not been overwritten8027 analyzer section8028 generates the correct YML8029 analyzers are disabled8030 writes SAST_EXCLUDED_ANALYZERS8031 all analyzers are enabled8032 does not write SAST_EXCLUDED_ANALYZERS8033 with update stage and SEARCH_MAX_DEPTH and set SECURE_ANALYZERS_PREFIX to default8034 generates the correct YML8035 with no existing variables8036 generates the correct YML8037 with no existing sast config8038 generates the correct YML8039 with no existing sast variables8040 generates the correct YML8041 with no .gitlab-ci.yml8042 autodevops disabled8043 with one empty parameter8044 generates the correct YML8045 with all parameters8046 generates the correct YML8047 with autodevops enabled8048 generates the correct YML8049WorkItems::Widgets::NotificationsService::UpdateService8050 # order random8051 #before_update_in_transaction8052 when update fails8053 when user lack update_subscription permissions8054 behaves like failing to update subscription8055 when user is subscribed with a subscription record8056 does not update the work item's subscription8057 when user is subscribed by being a participant8058 does not create subscription record or change subscription state8059 when notifications params are not present8060 behaves like failing to update subscription8061 when user is subscribed with a subscription record8062 does not update the work item's subscription8063 when user is subscribed by being a participant8064 does not create subscription record or change subscription state8065 when update is successful8066 when subscribing8067 behaves like updating notifications subscription successfully8068 updates existing subscription record8069 when unsubscribing8070 when user is subscribed with a subscription record8071 behaves like updating notifications subscription successfully8072 updates existing subscription record8073 when user is subscribed by being a participant8074 creates a subscription with expected value8075GraphHelper8076 #get_refs8077 filters our refs used by GitLab8078 #should_render_dora_charts8079 always returns false8080 #should_render_quality_summary8081 always returns false8082Mutations::Achievements::Delete8083 # order random8084 is expected to require graphql authorizations :admin_achievement8085 #resolve8086 when the user does not have permission8087 raises an error8088 when the user has permission8089 deletes the achievement8090 when the params are invalid8091 returns the validation error8092Packages::Composer::VersionParserService8093 #execute8094 tagname: nil, branchname: "master", expected_version: "dev-master"8095 is expected to eq "dev-master"8096 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"8097 is expected to eq "dev-my-feature"8098 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"8099 is expected to eq "dev-12-feature"8100 tagname: nil, branchname: "v1", expected_version: "1.x-dev"8101 is expected to eq "1.x-dev"8102 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"8103 is expected to eq "1.x-dev"8104 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"8105 is expected to eq "1.7.x-dev"8106 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"8107 is expected to eq "1.7.x-dev"8108 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"8109 is expected to eq "1.7.x-dev"8110 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"8111 is expected to eq "1.0.0"8112 tagname: "v1.0", branchname: nil, expected_version: "1.0"8113 is expected to eq "1.0"8114 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"8115 is expected to eq "1.0.1+meta"8116 tagname: "1.0", branchname: nil, expected_version: "1.0"8117 is expected to eq "1.0"8118 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"8119 is expected to eq "1.0.2"8120 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"8121 is expected to eq "1.0.2-beta2"8122 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"8123 is expected to eq "1.0.1+meta"8124WorkItems::Widgets::AwardEmoji8125 # order random8126 #upvotes8127 is expected to eq 18128 #type8129 is expected to eq :award_emoji8130 #downvotes8131 is expected to eq 18132 #award_emoji8133 is expected to contain exactly #<AwardEmoji id: 3, name: "star", user_id: 1603, awardable_type: "Issue", created_at: "2023-05-15 17:25:08.565539852 +0000", updated_at: "2023-05-15 17:25:08.565539852 +0000", awardable_id: 483>, #<AwardEmoji id: 4, name: "thumbsup", user_id: 1604, awardable_type: "Issue", created_at: "2023-05-15 17:25:08.701702267 +0000", updated_at: "2023-05-15 17:25:08.701702267 +0000", awardable_id: 483>, and #<AwardEmoji id: 5, name: "thumbsdown", user_id: 1605, awardable_type: "Issue", created_at: "2023-05-...-15 17:25:08.898209626 +0000", updated_at: "2023-05-15 17:25:08.898209626 +0000", awardable_id: 483>8134 .type8135 is expected to eq :award_emoji8136Aws::Role8137 is expected to belong to user required: false8138 is expected to validate that the length of :role_external_id is between 1 and 648139 custom validations8140 :role_arn8141 length is zero8142 is expected to be falsey8143 length is longer than 20488144 is expected to be falsey8145 ARN is valid8146 is expected to be truthy8147 ARN is nil8148 is expected to be truthy8149 callbacks8150 #ensure_role_external_id!8151 for a new record8152 calls #ensure_role_external_id!8153 for an existing record8154 does not call #ensure_role_external_id!8155 #ensure_role_external_id!8156 role_external_id is blank8157 generates an external ID and assigns it to the record8158 role_external_id is already set8159 does not change the existing external id8160Resolvers::Metrics::DashboardResolver8161 #resolve8162 for environment8163 use ActiveModel class to find matching dashboard8164 without parent object8165 returns nil8166 when metrics dashboard feature is unavailable8167 returns nil8168Gitlab::MailRoom::Authenticator8169 #verify_api_request8170 verify a valid token8171 returns the decoded payload8172 verify an invalid token8173 returns false8174 verify a valid token but wrong mailbox type8175 returns false8176 verify a valid token but wrong issuer8177 returns false8178 verify a valid token but expired8179 returns false8180 verify a valid token but wrong header field8181 returns false8182 verify headers for a disabled mailbox type8183 returns false8184 verify headers for a non-existing mailbox type8185 returns false8186 #secret8187 the secret is valid8188 returns the memorized secret from a file8189 the secret file is not configured8190 raises a SecretConfigurationError exception8191 the secret file not found8192 raises a SecretConfigurationError exception8193Gitlab::Kubernetes::ServiceAccount8194 is expected to eq "a_service_account"8195 is expected to eq "a_namespace"8196 #generate8197 builds a Kubeclient Resource81985-Minute-Production-App.gitlab-ci.yml8199 # order random8200 the created pipeline8201 creates only build job8202 when AWS variables are set8203 creates all jobs8204 when pipeline branch is protected8205 does not create a destroy job8206Ci::BridgePresenter8207 presents information about recoverable state8208 presents the detailed status for the user8209Packages::Nuget::MetadataExtractionService8210 #execute8211 with valid package file id8212 is expected to eq {:package_dependencies=>[{:name=>"Newtonsoft.Json", :target_framework=>".NETCoreApp3.0", :version=>"1...name=>"DummyProject.DummyPackage", :package_tags=>[], :package_types=>[], :package_version=>"1.0.0"}8213 with nuspec file8214 with dependencies8215 is expected to have key :package_dependencies8216 extracts dependencies8217 with package types8218 is expected to have key :package_types8219 extracts package types8220 with a nuspec file with metadata8221 is expected to eq ["bar", "foo", "tag1", "tag2", "tag3", "tag4", "tag5", "test"]8222 with a nuspec file with metadata8223 is expected to eq "https://opensource.org/licenses/MIT"8224 is expected to eq "https://gitlab.com/gitlab-org/gitlab"8225 is expected to eq "https://opensource.org/files/osi_keyhole_300X300_90ppi_0.png"8226 with invalid package file id8227 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "invalid package file"8228 linked to a non nuget package8229 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "invalid package file"8230 with a 0 byte package file id8231 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "invalid package file"8232 without the nuspec file8233 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "nuspec file not found"8234 with a too big nuspec file8235 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "nuspec file too big"8236 with a corrupted nupkg file with a wrong entry size8237 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "nuspec file has the wrong entry size: entry 'DummyProject.DummyPackage.nuspec' should be 255B, but is larger when inflated."8238ProgrammingLanguage8239 is expected to respond to #name8240 is expected to respond to #color8241 is expected to validate that :name cannot be empty/falsy8242 is expected to allow :color to be ‹"#000000"›8243 is expected not to allow :color to be ‹"000000"›8244 is expected not to allow :color to be ‹"#0z0000"›8245 .with_name_case_insensitive scope8246 accepts a single name parameter8247 accepts multiple names8248 .most_popular8249 returns the most popular programming languages8250Autocomplete::DeployKeysWithWriteAccessFinder8251 #execute8252 when project is missing8253 returns an empty ActiveRecord::Relation8254 when project is present8255 and current user cannot admin project8256 raises Gitlab::Access::AccessDeniedError8257 and current user can admin project8258 when deploy key does not have write access to project8259 returns an empty ActiveRecord::Relation8260 when deploy key has write access to project8261 returns the deploy keys8262IncidentManagement::PagerDuty::ProcessWebhookService8263 # order random8264 #execute8265 when PagerDuty webhook setting is active8266 when token is valid8267 when webhook payload has acceptable size8268 responds with Accepted8269 processes issues8270 when webhook payload is too big8271 responds with Bad Request8272 behaves like does not process incidents8273 does not process incidents8274 when webhook payload is blank8275 responds with Accepted8276 behaves like does not process incidents8277 does not process incidents8278 when token is invalid8279 responds with Unauthorized8280 behaves like does not process incidents8281 does not process incidents8282 when both tokens are nil8283 responds with Unauthorized8284 behaves like does not process incidents8285 does not process incidents8286 when PagerDuty webhook setting is not active8287 responds with Forbidden8288 behaves like does not process incidents8289 does not process incidents8290Gitlab::Issuable::Clone::AttributesRewriter8291 with missing target parent8292 raises an ArgumentError8293 setting labels8294 sets labels present in the new project and group labels8295 does not set any labels when not used on the original issue8296 setting milestones8297 sets milestone to nil when old issue milestone is not in the new project8298 copies the milestone when old issue milestone title is in the new project8299 copies the milestone when old issue milestone is a group milestone8300 when include_milestone is false8301 does not return any milestone8302 when target parent is a group8303 setting labels8304 keeps group labels and merges project labels where possible8305Database::BatchedBackgroundMigration::MainExecutionWorker8306 # order random8307 behaves like batched background migrations execution worker8308 is a limited capacity worker8309 defining the job attributes8310 defines the data_consistency as always8311 defines the feature_category as database8312 defines the idempotency as false8313 does not retry failed jobs8314 does not deduplicate jobs8315 defines the queue namespace8316 .perform_with_capacity8317 enqueues jobs without modifying provided arguments8318 .max_running_jobs8319 returns database_max_running_batched_background_migrations application setting8320 #max_running_jobs8321 returns database_max_running_batched_background_migrations application setting8322 #remaining_work_count8323 returns 08324 #perform_work8325 when the feature flag is disabled8326 does nothing8327 when the feature flag is enabled8328 when the provided database is sharing config8329 does nothing8330 when migration does not exist8331 does nothing8332 when migration exist8333 when the migration is no longer active8334 does not run the migration8335 when the interval has not elapsed8336 does not run the migration8337 when the migration is still active and the interval has elapsed8338 always cleans up the exclusive lease8339 runs the migration8340 when can not obtain lease on the table name8341 does nothing8342Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated8343 behaves like value stream analytics event8344 is expected to be a kind of String8345 is expected to be a kind of Symbol8346 is expected to include ApplicationRecord(abstract)8347 is expected to respond to #timestamp_projection8348 is expected to respond to #html_description8349 is expected to be a kind of Array8350 #apply_query_customization8351 expects an ActiveRecord::Relation object as argument and returns a modified version of it8352 #hash_code8353 returns a hash that uniquely identifies an event8354 does not differ when the same object is built with the same params8355 behaves like LEFT JOIN-able value stream analytics event8356 can use the event as LEFT JOIN8357 when looking at the record with data8358 contains the timestamp expression8359 when looking at the record without data8360 returns nil for the timestamp expression8361Gitlab::Ci::Status::Pipeline::Common8362 #has_action?8363 is expected not to have action8364 #has_details?8365 when user has access to read pipeline8366 is expected to have details8367 when user does not have access to read pipeline8368 is expected not to have details8369 #details_path8370 links to the pipeline details page8371Mutations::AlertManagement::PrometheusIntegration::ResetToken8372 is expected to require graphql authorizations :admin_project8373 #resolve8374 user has sufficient access to project8375 when ::Projects::Operations::UpdateService responds with success8376 returns the integration with no errors8377 when ::Projects::Operations::UpdateService responds with an error8378 returns errors8379 when resource is not accessible to the user8380 raises an error if the resource is not accessible to the user8381Gitlab::Ci::Config::External::Rules8382 #evaluate8383 when there is no rule8384 is expected to eq true8385 when there is a rule with if8386 when the rule matches8387 is expected to eq true8388 when the rule does not match8389 is expected to eq false8390 when there is a rule with exists8391 when the file does not exist8392 is expected to eq false8393 when the file exists8394 is expected to eq true8395 when there is a rule with if and when8396 raises an error8397 when there is a rule with changes8398 raises an error8399Gitlab::Config::Entry::Factory8400 #create!8401 when setting a concrete value8402 creates entry with valid value8403 when setting description8404 configures description8405 creates entry with description8406 when setting inherit8407 makes object inheritable8408 when setting key8409 creates entry with custom key8410 when setting a parent8411 creates entry with valid parent8412 when not setting a value8413 raises error8414 when creating entry with nil value8415 creates an unspecified entry8416 when passing metadata8417 passes metadata as a parameter8418 when setting deprecation information8419 passes deprecation as a parameter8420Metrics::UsersStarredDashboard8421 associations8422 is expected to belong to project required: false inverse_of => metrics_users_starred_dashboards8423 is expected to belong to user required: false inverse_of => metrics_users_starred_dashboards8424 validation8425 is expected to validate that :user_id cannot be empty/falsy8426 is expected to validate that :project_id cannot be empty/falsy8427 is expected to validate that :dashboard_path cannot be empty/falsy8428 is expected to validate that the length of :dashboard_path is at most 2558429 is expected to validate that :dashboard_path is case-sensitively unique within the scope of :user_id and :project_id8430 scopes8431 #for_project8432 selects only starred dashboards belonging to project8433 #for_project_dashboard8434 selects only starred dashboards belonging to project with given dashboard path8435Analytics::UsageTrends::CounterJobWorker8436 is labeled as idempotent8437 performs multiple times sequentially without raising an exception8438 counts a scope and stores the result8439 does not raise error when inserting duplicated measurement8440 does not insert anything when BatchCount returns error8441 when no records are in the database8442 sets 0 as the count8443 when the timeout elapses8444 continues counting later when the timeout elapses8445 when pipelines_succeeded identifier is passed8446 counts successful pipelines8447Gitlab::Access::BranchProtection8448 #any?8449 level: 0, result: false8450 is expected to eq false8451 level: 1, result: true8452 is expected to eq true8453 level: 3, result: true8454 is expected to eq true8455 level: 2, result: true8456 is expected to eq true8457 #developer_can_push?8458 level: 0, result: false8459 is expected to eq false8460 level: 1, result: true8461 is expected to eq true8462 level: 3, result: false8463 is expected to eq false8464 level: 2, result: false8465 is expected to eq false8466 #developer_can_merge?8467 level: 0, result: false8468 is expected to eq false8469 level: 1, result: false8470 is expected to eq false8471 level: 3, result: true8472 is expected to eq true8473 level: 2, result: false8474 is expected to eq false8475 #fully_protected?8476 level: 0, result: false8477 is expected to eq false8478 level: 1, result: false8479 is expected to eq false8480 level: 3, result: false8481 is expected to eq false8482 level: 2, result: true8483 is expected to eq true8484Gitlab::Ci::Status::Success8485 #text8486 is expected to eq "passed"8487 #label8488 is expected to eq "passed"8489 #icon8490 is expected to eq "status_success"8491 #favicon8492 is expected to eq "favicon_status_success"8493 #group8494 is expected to eq "success"8495 #details_path8496 is expected to be nil8497Gitlab::Git::PreReceiveError8498 uses the fallback message8499 uses the fallback message8500 error messages prefixed with GitLab:8501 accepts only errors lines with the prefix8502 makes its message HTML-friendly8503 prefers the original message over the fallback8504 error messages prefixed with GL-HOOK-ERR:8505 accepts only errors lines with the prefix8506 makes its message HTML-friendly8507 prefers the original message over the fallback8508Ci::ParseSecureFileMetadataWorker8509 # order random8510 #perform8511 is labeled as idempotent8512 performs multiple times sequentially without raising an exception8513 when the file is found8514 calls update_metadata!8515 when file is not found8516WARNING: An expectation of `:update_metadata!` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/workers/ci/parse_secure_file_metadata_worker_spec.rb:25:in `block (4 levels) in <top (required)>'.8517 does not call update_metadata!8518Projects::GroupLinks::UpdateService#execute8519 updates existing link8520 project authorizations update8521 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations8522 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations8523 updates project authorizations of users who had access to the project via the group share8524 with only param not requiring authorization refresh8525 does not perform any project authorizations update using `AuthorizedProjectUpdate::ProjectRecalculateWorker`8526RuboCop::Cop::Graphql::GraphqlNamePosition8527 # order random8528 does not add an offense for classes that only call graphql_name8529 does not add an offense for classes that have no call to graphql_name8530 adds an offense when graphql_name is not on the first line8531Net::HTTPResponse patch header read timeout8532 .each_response_header8533 with Net::BufferedIO8534 does not forward start time to the socket8535 when the response contains many consecutive spaces8536 has no regex backtracking issues8537 with Gitlab::BufferedIo8538 forwards start time to the socket8539 when the response contains an infinite number of headers8540 raises a timeout error8541Gitlab::Redis::HLL8542 .add8543 when checking key format8544 for invalid keys8545 metric_key: "test", value: 18546 raise an error when using an invalid key format8547 metric_key: "test-{metric", value: 18548 raise an error when using an invalid key format8549 metric_key: "test-{metric}}", value: 18550 raise an error when using an invalid key format8551 for valid keys8552 metric_key: "test-{metric}", value: 18553 doesn't raise error when having correct format8554 metric_key: "test-{metric}-1", value: 18555 doesn't raise error when having correct format8556 metric_key: "test:{metric}-1", value: 18557 doesn't raise error when having correct format8558 metric_key: "2020-216-{project_action}", value: 18559 doesn't raise error when having correct format8560 metric_key: "i_{analytics}_dev_ops_score-2020-32", value: 18561 doesn't raise error when having correct format8562 when adding entries8563 supports single value8564 supports multiple values8565 .count8566 has 3 distinct users for weeks 32, 33, 348567 has 3 distinct users for weeks 32, 338568 has 2 distinct users for weeks 33, 348569 has one distinct user for week 338570 has 4 distinct users when one different user has an action on week 348571Issuables::ClearGroupsIssueCounterWorker8572 #perform8573 does not call count service or rise error when group_ids is empty8574 behaves like an idempotent worker8575 is labeled as idempotent8576 performs multiple times sequentially without raising an exception8577 clears the cached issue count in given groups and ancestors8578ErrorTrackingIssueLinkWorker8579 #perform8580 creates a link between an issue and a Sentry issue in Sentry8581 when issue is unavailable8582 behaves like makes no external API requests8583 takes no action8584 when project does not have error tracking configured8585 behaves like makes no external API requests8586 takes no action8587 when the issue is not linked to a Sentry issue in GitLab8588 behaves like makes no external API requests8589 takes no action8590 when Sentry disabled the GitLab integration8591 behaves like attempts to create a link via plugin8592 takes no action8593 when Sentry the GitLab integration is for another project8594 behaves like attempts to create a link via plugin8595 takes no action8596 when Sentry repos request errors8597 falls back to creating a link via plugin8598Tooling::Danger::CustomerSuccess8599 customer success danger8600 with data category changes to Ops and no Customer Success::Impact Check label8601 generates correct message8602 with data category changes and Customer Success::Impact Check label8603 generates correct message8604 with metric file changes and no data category changes8605 generates correct message8606 with data category changes from Ops8607 generates correct message8608 with data category removed8609 generates correct message8610 with data category added8611 generates correct message8612 with data category in uppercase8613 generates correct message8614dashboard/projects/index.html.haml8615 shows the project the user is a member of in the list8616 shows the "New project" button8617profiles/notifications/show8618 when there is no database value for User#notification_email8619 displays the correct elements8620 when there is a database value for User#notification_email8621 displays the correct elements8622Integrations::IssueTrackerData8623 behaves like Integrations::BaseDataFields8624 associations8625 is expected to belong to integration required: false8626 #activated?8627 with integration8628 with value set to false8629 is expected to eq false8630 with value set to true8631 is expected to eq true8632 without integration8633 is expected to eq false8634 #to_database_hash8635 does not include certain attributes8636 encrypted attributes8637 is expected to contain exactly :issues_url, :new_issue_url, and :project_url8638SystemNotes::BaseService8639 #noteable8640 is expected to eq #<Double (anonymous)>8641 returns nil if no arguments are given8642 #project8643 is expected to eq #<Double (anonymous)>8644 returns nil if no arguments are given8645 #author8646 is expected to eq #<Double (anonymous)>8647 returns nil if no arguments are given8648AwardEmojis::CopyService8649 #initialize8650 validates that we cannot copy AwardEmoji to the same Awardable8651 #execute8652 copies AwardEmojis8653 returns success8654Gitlab::Slug::Path8655 # order random8656 #generate8657 yields a slug name when given name8658 yields a slug james when given james.atom@bond.com8659 yields a slug foobar-- when given --foobar--8660 yields a slug foo_bar-- when given --foo_bar--8661 yields a slug foo_bar-- when given --foo$^&_bar--8662 yields a slug john when given john@doe.com8663 yields a slug johngitlab-ETC when given -john+gitlab-ETC%.git@gmail.com8664 yields a slug this.is when given this.is.git.atom.8665 yields a slug blank when given #$%^.8666 yields a slug blank when given ---.git#$.atom%@atom^.8667 yields a slug gitlab--hey when given --gitlab--hey.git#$.atom%@atom^.8668 #to_s8669 presents with a cleaned slug8670Milestones::UpdateService8671 #execute8672 valid params8673 is expected to be valid8674 is expected to eq "new_title"8675 state_event is activate8676 calls ReopenService8677 state_event is close8678 calls ReopenService8679Namespaces::SyncEvent8680 # order random8681 .enqueue_worker8682 schedules Namespaces::ProcessSyncEventsWorker job8683 .upper_bound_count8684 returns 0 when there are no records in the table8685 returns an estimated number of the records in the database8686Banzai::RenderContext8687 #project_for_node8688 returns the default project if no associated project was found8689 returns the associated project if one was associated explicitly8690 returns the project associated with a DocumentFragment when using a node8691SystemNotes::ZoomService8692 #zoom_link_added8693 sets the zoom link added note text8694 behaves like a system note8695 has the correct attributes8696 #zoom_link_removed8697 sets the zoom link removed note text8698 behaves like a system note8699 has the correct attributes8700Glfm::ParseExamples#parse_examples8701 # order random8702 with incorrect header nesting8703 raises if H3 is nested directly in H18704 parsing8705 correctly parses8706Gitlab::UrlBlockers::UrlAllowlist8707 #domain_allowed?8708 returns true if domains present in allowlist8709 returns false when domain is blank8710 with ports8711 returns true if domain and ports present in allowlist8712 #ip_allowed?8713 returns true if ips present in allowlist8714 returns false when ip is blank8715 with ip ranges in allowlist8716 does not allowlist ipv4 range when not in allowlist8717 allowlists all ipv4s in the range when in allowlist8718 does not allowlist ipv6 range when not in allowlist8719 allowlists all ipv6s in the range when in allowlist8720 does not allowlist IPs outside the range8721 with ports8722 returns true if ip and ports present in allowlist8723Ci::SecureFilesHelper8724 #show_secure_files_setting8725 authenticated user with admin permissions8726 is expected to equal true8727 authenticated user with read permissions8728 is expected to equal true8729 authenticated user with guest permissions8730 is expected to equal false8731 authenticated user with no permissions8732 is expected to equal false8733 unconfirmed user8734 is expected to equal false8735 unauthenticated user8736 is expected to equal false8737TestReportsComparerSerializer8738 #to_json8739 when head and base reports include two test suites8740 when the status of head report is success8741 matches the schema8742 when the status of head report is failed8743 matches the schema8744 when the status of head report is resolved8745 matches the schema8746Clusters::Integrations::CreateService#execute8747 behaves like a cluster integration8748 when enabled param is true8749 creates a new enabled integration8750 when enabled param is false8751 creates a new disabled integration8752 when integration already exists8753 updates the integration8754 when application_type is invalid8755 errors8756 when user is unauthorized8757 returns error and does not create a new integration record8758CsvBuilders::Stream8759 #render8760 returns a lazy enumerator8761 returns all rows up to default max value8762 truncates to max rows8763Gitlab::Ci::Trace::SectionParser8764 #sections8765 empty trace8766 is expected to be empty8767 with a sectionless trace8768 is expected to be empty8769 with trace markers8770 is expected to eq 28771 is expected to eq "b"8772 is expected to eq 2017-10-05 00:00:00.000000000 +00008773 is expected to eq 2017-10-05 00:00:01.000000000 +00008774 #parse!8775 multiple "section_" but no complete markers8776 must find 3 possible section start but no complete sections8777 trace with UTF-8 chars8778 must handle correctly byte positioning8779Users::UpdateHighestMemberRoleService8780 #execute8781 when user_highest_role already exists8782 when the current highest access level equals the already stored highest access level8783 does not update the highest access level8784 when the current highest access level does not equal the already stored highest access level8785 updates the highest access level8786 when user_highest_role does not exist8787 creates an user_highest_role object to store the highest access level8788UsageStatistics8789 .distinct_count_by8790 two records created by the same issue8791 returns a count of 18792 when given no column to count8793 counts by :id and returns a count of 28794 one record created by each issue8795 returns a count of 28796 the count query times out8797 does not raise an error8798 returns -18799API::Validations::Validators::ArrayNoneAny8800 valid parameters8801 does not raise a validation error8802 invalid parameters8803 raises a validation error8804help/drawers8805 # order random8806 Markdown rendering8807 renders Markdown8808Packages::Npm::CreateMetadataCacheService8809 # order random8810 #lease_key8811 returns an unique key8812 #execute8813 creates a new metadata cache8814 obtains a lease to create a new metadata cache8815 with existing metadata cache8816 does not create a new metadata cache8817 updates the metadata cache8818 when the lease is already taken8819 does not create a new metadata cache8820 returns nil8821Gitlab::UsageDataCounters::SourceCodeCounter8822 behaves like a redis usage counter8823 .count(pushes)8824 increments the Source Code pushes counter by 18825 .read(pushes)8826 returns the total number of pushes events8827 behaves like a redis usage counter with totals8828 totals8829 can report all totals8830 unknown events8831 cannot increment8832 cannot read8833projects/settings/integrations/edit8834 is expected not to have text "Recent events"8835 integration using WebHooks8836 is expected to have text "Recent events"8837Gitlab::Utils::MimeType8838 # order random8839 .from_string8840 input isn't a string8841 returns nil8842 input is a string8843 is expected to eq "text/plain"8844 .from_io8845 input isn't an IO8846 returns nil8847 input is a file8848 fixture: "banana_sample.gif", mime_type: "image/gif"8849 is expected to eq "image/gif"8850 fixture: "rails_sample.jpg", mime_type: "image/jpeg"8851 is expected to eq "image/jpeg"8852 fixture: "rails_sample.png", mime_type: "image/png"8853 is expected to eq "image/png"8854 fixture: "rails_sample.bmp", mime_type: "image/bmp"8855 is expected to eq "image/bmp"8856 fixture: "rails_sample.tif", mime_type: "image/tiff"8857 is expected to eq "image/tiff"8858 fixture: "sample.ico", mime_type: "image/vnd.microsoft.icon"8859 is expected to eq "image/vnd.microsoft.icon"8860 fixture: "blockquote_fence_before.md", mime_type: "text/plain"8861 is expected to eq "text/plain"8862 fixture: "csv_empty.csv", mime_type: "application/x-empty"8863 is expected to eq "application/x-empty"8864BulkImports::EntityWorker8865 updates pipeline trackers to enqueued state when selected8866 is labeled as idempotent8867 performs multiple times sequentially without raising an exception8868 enqueues the first stage pipelines work8869 logs and tracks the raised exceptions8870 in first stage8871 do not enqueue a new pipeline job if the current stage still running8872 enqueues the next stage pipelines when the current stage is finished8873MergeRequestForPipelineEntity8874 as json8875 exposes needed attributes8876Resolvers::SavedReplyResolver8877 # order random8878 feature flag disabled8879 does not return saved reply8880 feature flag enabled8881 returns users saved reply8882 returns nil when saved reply is not found8883 returns nil when saved reply is another users8884Gitlab::Memory::Reports::HeapDump8885 # order random8886 #run8887 when no heap dump is enqueued8888 does nothing and returns false8889 when a heap dump is enqueued8890 dumps heap and returns true8891 #active?8892 is true when report_heap_dumps is enabled8893 is false when report_heap_dumps is disabled8894 #name8895 is set8896ProtectedBranches::ApiService8897 # order random8898 with entity group8899 behaves like execute with entity8900 creates a protected branch with prefilled defaults8901 updates a protected branch without prefilled defaults8902 with entity project8903 behaves like execute with entity8904 creates a protected branch with prefilled defaults8905 updates a protected branch without prefilled defaults8906Groups::UpdateTwoFactorRequirementForMembersWorker8907 # order random8908 #perform8909 calls #update_two_factor_requirement_for_members8910 is labeled as idempotent8911 performs multiple times sequentially without raising an exception8912 requires 2fa for group members correctly8913 when group not found8914 returns nil8915GenerateRspecPipeline8916 # order random8917 #generate!8918 when rspec_files and pipeline_template_path exists8919 generates the pipeline config with default parallelization8920 when parallelization > 08921 generates the pipeline config8922 when parallelization > MAX_NODES_COUNT8923 generates the pipeline config with max parallelization of 508924 when knapsack_report_path is given8925 generates the pipeline config with parallelization based on Knapsack8926 and Knapsack report does not contain valid JSON8927 generates the pipeline config with default parallelization8928 when test_suite_prefix is given8929 generates the pipeline config based on the test_suite_prefix8930 when generated_pipeline_path is given8931 writes the pipeline config in the given generated_pipeline_path8932 when rspec_files does not exist8933 generates the pipeline config using the no-op template8934 when pipeline_template_path does not exist8935 generates the pipeline config using the no-op template8936Packages::Nuget::ServiceIndexPresenter8937 #version8938 for a group8939 is expected to eq "3.0.0"8940 for a project8941 is expected to eq "3.0.0"8942 #resources8943 for a group8944 behaves like returning valid resources8945 has valid resources8946 does not return the publish resource8947 for a project8948 behaves like returning valid resources8949 has valid resources8950 does return the publish resource8951ErrorTracking::ClientKey8952 relationships8953 is expected to belong to project required: false8954 validations8955 is expected to validate that :public_key cannot be empty/falsy8956 is expected to validate that the length of :public_key is at most 2558957 #generate_key8958 is expected to be present8959 is expected to start with "glet_"8960GitlabShellWorker8961 #perform8962 with the mv_repository action8963 forwards the message to Gitlab::Shell8964 with the remove_repository action8965 forwards the message to Gitlab::Shell8966 with the add_namespace action8967 forwards the message to Gitlab::Shell8968 with the rm_namespace action8969 forwards the message to Gitlab::Shell8970 with the mv_namespace action8971 forwards the message to Gitlab::Shell8972 with the repository_exists? action8973 forwards the message to Gitlab::Shell8974 all other commands8975 raises ArgumentError8976IssuableLink8977 .inverse_link_type8978 returns the inverse type of link8979 .issuable_type8980 when opposite relation already exists8981 raises NotImplementedError when performing validations8982 .available_link_types8983 is expected to contain exactly "relates_to", "blocks", and "is_blocked_by"8984Resolvers::DesignManagement::VersionResolver8985 the current user is not authorized8986 generates an error on resolution8987 the current user is authorized8988 the id parameter is provided8989 returns the specified version8990Releases::Source8991 .all8992 returns all formats of sources8993 #url8994 returns zip archived source url8995 when ref is directory structure8996 converts slash to dash8997PersonalAccessTokens::ExpiringWorker8998 #perform8999 when a token needs to be notified9000 uses notification service to send the email9001 marks the notification as delivered9002 when no tokens need to be notified9003 doesn't use notification service to send the email9004 doesn't change the notification delivered of the token9005 when a token is an impersonation token9006 doesn't use notification service to send the email9007 doesn't change the notification delivered of the token9008Gitlab::Changelog::Generator9009 #add9010 generates the Markdown for the first release9011 generates the Markdown for a newer release9012 generates the Markdown for a patch release9013 generates the Markdown for an old release9014BulkImports::Projects::Pipelines::PipelineSchedulesPipeline9015 imports schedule into destination project9016 is active9017 imports the schedule but active is false9018PerformanceMonitoring::PrometheusPanel9019 #new9020 accepts old schema format9021 accepts new schema format9022 .from_json9023 creates a PrometheusPanelGroup object9024 validations9025 json_content is not a hash9026 is expected to raise ActiveModel::ValidationError9027 when title is missing9028 is expected to raise ActiveModel::ValidationError9029 when metrics are missing9030 is expected to raise ActiveModel::ValidationError9031 .id9032 returns hexdigest of group_title, type and title as the panel id9033Projects::GoogleCloud::CloudsqlHelper9034 # order random9035 #TIERS9036 is an array9037 #VERSIONS9038 returns versions for :postgres9039 returns versions for :mysql9040 returns versions for :sqlserver9041Gitlab::Analytics::CycleAnalytics::Average9042 #seconds9043 when no results9044 is expected to eq nil9045 returns the average duration in seconds9046 is expected to be within 0.5 of 648000.09047 #days9048 when no results9049 is expected to eq nil9050 returns the average duration in days9051 is expected to be within 0.01 of 7.59052Gitlab::Kubernetes::KubectlCmd9053 .delete9054 constructs string properly9055 .apply_file9056 without optional args9057 requires filename to be present9058 constructs string properly9059 with optional args9060 constructs command properly with many args9061 constructs command properly with single arg9062 .api_resources9063 constructs string properly9064 .delete_crds_from_group9065 constructs string properly9066Types::Ci::FreezePeriodType9067 # order random9068 has the expected fields9069 is expected to require graphql authorizations :read_freeze_period9070 is expected to eq "CiFreezePeriod"9071Gitlab::Ci::Input::Arguments::Options9072 # order random9073 returns an error if specification is using a hash9074 returns an empty value if it is allowlisted9075 returns a user-provided value if it is an allowed one9076 returns an error if specification is not correct9077 returns an error if user-provided value is not allowlisted9078 .matches?9079 matches specs with options configuration9080 does not match specs different configuration keyword9081Banzai::Pipeline9082 .[]9083 for nil9084 is expected to eq Banzai::Pipeline::FullPipeline9085 for symbols9086 when known9087 is expected to eq Banzai::Pipeline::FullPipeline9088 when unknown9089 behaves like error9090 is expected to raise NameError with "uninitialized constant Banzai::Pipeline::UnknownPipeline"9091 for classes9092 subclassing Banzai::Pipeline::BasePipeline9093 is expected to eq #<Class:0x00007f35998dd3c8>9094 subclassing other types9095 behaves like error9096 is expected to raise ArgumentError with "unsupported pipeline name Foo (Class)"9097 for other types9098 behaves like error9099 is expected to raise ArgumentError with "unsupported pipeline name \"label\" (String)"9100RuboCop::Cop::PreferClassMethodsOverModule9101 # order random9102 doesn't flag violation when using class_methods9103 doesn't flag violation when module is not extending ActiveSupport::Concern9104 doesn't flag violation when not using either class_methods or ClassMethods9105 flags violation when using module ClassMethods and corrects9106 doesn't flag violation when ClassMethods is used inside a class9107profiles/keys/_key_details.html.haml9108 # order random9109 displays the usage type9110 usage_type: :auth, usage_type_text: "Authentication"9111DEPRECATION WARNING: Setting a slot with `#header` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_header` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9112DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9113DEPRECATION WARNING: Setting a slot with `#header` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_header` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9114DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9115 renders usage type text9116 usage_type: :auth_and_signing, usage_type_text: "Authentication & Signing"9117DEPRECATION WARNING: Setting a slot with `#header` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_header` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9118DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9119DEPRECATION WARNING: Setting a slot with `#header` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_header` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9120DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9121 renders usage type text9122 usage_type: :signing, usage_type_text: "Signing"9123DEPRECATION WARNING: Setting a slot with `#header` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_header` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9124DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9125DEPRECATION WARNING: Setting a slot with `#header` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_header` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9126DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)9127 renders usage type text9128Sidebars::Groups::SuperSidebarMenus::OperationsMenu9129 # order random9130 defines list of NilMenuItem placeholders9131 has title and sprite_icon9132Gitlab::SetupHelper::Workhorse9133 .make9134 when there is a gmake9135 returns gmake9136 when there is no gmake9137 returns make9138 .redis_url9139 matches the SharedState URL9140 .redis_db9141 matches the SharedState DB9142 defaults to 0 if unspecified9143Namespaces::PruneAggregationSchedulesWorker#perform9144 schedules a worker per pending aggregation9145Gitlab::Ci::Build::Rules::Rule::Clause9146 .fabricate9147 when type is valid9148 type: "changes", result: Gitlab::Ci::Build::Rules::Rule::Clause::Changes9149 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Changes9150 type: "exists", result: Gitlab::Ci::Build::Rules::Rule::Clause::Exists9151 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Exists9152 type: "if", result: Gitlab::Ci::Build::Rules::Rule::Clause::If9153 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::If9154 when type is invalid9155 is expected to be nil9156 when type is 'variables'9157 is expected to be nil9158Ml::CandidateMetadata9159 # order random9160 uniqueness of name9161 is unique within candidate9162 associations9163 is expected to belong to candidate required: false9164MergeRequests::Mergeability::CheckDiscussionsStatusService9165 #execute9166 when the merge request is in a mergable state9167 returns a check result with status success9168 when the merge request is not in a mergeable state9169 returns a check result with status failed9170 #skip?9171 when skip check is true9172 returns true9173 when skip check is false9174 returns false9175 #cacheable?9176 returns false9177Gitlab::Metrics::Memory9178 .gc_heap_fragmentation9179 when the Ruby heap is perfectly utilized9180 is expected to eq 09181 when the Ruby heap is greatly fragmented9182 is expected to be > 0.999183 when the Ruby heap is semi-fragmented9184 is expected to eq 0.59185Users::Calloutable9186 Associations9187 is expected to belong to user required: false9188 validations9189 is expected to validate that :user cannot be empty/falsy9190 #dismissed_after?9191 returns whether a callout dismissed after specified date9192Gitlab::GithubGistsImport::FinishImportWorker9193 # order random9194 #perform9195 when there are no remaining jobs9196 marks import status as finished9197 when there are remaining jobs9198 reschedules the worker9199 when some gists were failed to import9200 sends an email to user9201 .sidekiq_retries_exhausted9202 sets status to failed9203Namespaces::RandomizedSuffixPath9204 # order random9205 #call9206 returns path without count when count is 09207 returns path suffixed with count when between 0 and 49208 adds a "randomized" suffix when MAX_TRIES is exhausted9209 adds an offset to the "randomized" suffix when MAX_TRIES is exhausted9210 #to_s9211 represents with given path9212SentryErrorPresenter9213 #frequency9214 returns an array of frequency structs9215 converts the times into UTC time objects9216 returns the correct counts9217 #project_id9218 returns a global ID of the correct type9219GroupAccessTokenEntity9220 when bot is a member of the group9221 has the correct attributes9222 when bot is unrelated to the group9223 has the correct attributes9224Gitlab::Ci::Reports::TestFailureHistory9225 #load!9226 sets the recent failures for each matching failed test case in all test suites9227Gitlab::UsageDataCounters::JetBrainsPluginActivityUniqueCounter9228 when tracking a jetbrains api request9229 behaves like a request from an extension9230 tracks when the user agent is matching9231 does not track when the user agent is not matching9232 does not track if user agent is not present9233 does not track if user is not present9234Types::ReleaseAssetsType9235 is expected to require graphql authorizations :read_release9236 has the expected fields9237 links field9238 is expected to have graphql type #<Class:0x00007f35d224a8d8>9239 sources field9240 is expected to have graphql type #<Class:0x00007f35d2350480>9241Gitlab::Database::SchemaMigrations::Migrations9242 #touch_all9243 creates a file containing a checksum for each version with a matching migration9244 #load_all9245 when there are no version files9246 does nothing9247 when there are version files9248 inserts the missing versions into schema_migrations9249Packages::Debian::ExtractDebMetadataService9250 with correct file9251 return as expected9252 with incorrect file9253 raise error9254Gitlab::WordDiff::LineProcessor9255 #extract9256 when line is a diff hunk9257 returns DiffHunk segment9258 when line has a newline delimiter9259 returns Newline segment9260 when line has only space9261 returns nil9262 when line has content9263 returns Chunk segment9264UserCanonicalEmail9265 is expected to belong to user required: false9266 validations9267 canonical_email9268 is expected to validate that :canonical_email cannot be empty/falsy9269 validates email address9270Types::BranchProtections::PushAccessLevelType9271 # order random9272 is expected to have graphql fields :access_level and :access_level_description9273 is expected to require graphql authorizations :read_protected_branch9274Types::SavedReplyType9275 is expected to eq "SavedReply"9276 has all the required fields9277 is expected to require graphql authorizations :read_saved_replies9278Webauthn::RegisterService9279 #execute9280 returns a registration if challenge matches9281 returns an error if challenge does not match9282SystemCheck9283 .run9284 detects execution of SimpleCheck9285 detects exclusion of OtherCheck in execution9286RuboCop::Cop::AvoidBecomes9287 # order random9288 flags the use of becomes with a dynamic parameter9289 flags the use of becomes with a namespaced constant parameter9290 flags the use of becomes with a constant parameter9291Gitlab::Usage::Metrics::Instrumentations::CountCiRunnersProjectTypeActiveMetric9292 # order random9293 behaves like a correct instrumented metric value9294 has correct value9295Tooling::Danger::Specs9296 #changed_specs_files9297 returns added, modified, and renamed_after files by default9298 with include_ee: :exclude9299 returns spec files without EE-specific files9300 with include_ee: :only9301 returns EE-specific spec files only9302Types::Packages::PackageType9303 is expected to eq "Represents a package with pipelines in the Package Registry"9304 is expected to require graphql authorizations :read_package9305 includes all the package fields and pipelines9306Gitlab::GrapeLogging::Loggers::FilterParameters9307 # order random9308 .parameters9309 when the log_safety setting is provided9310 includes safe parameters, and filters unsafe ones9311 when the log_safety is not provided9312 behaves like the normal parameter filter9313Issues::CsvImport9314 associations9315 is expected to belong to project required: true9316 is expected to belong to user required: true9317API::Entities::Changelog9318 exposes correct attributes9319 exposes correct notes9320Types::CustomerRelations::OrganizationStateCountsType9321 is expected to eq "OrganizationStateCounts"9322 is expected to have graphql fields "all", "active", and "inactive"9323 #all9324 returns the sum of all counts9325Ensure kramdown detects invalid syntax highlighting formatters9326 with invalid formatter9327 falls back to standard HTML and disallows CSV9328 with valid formatter9329 allows formatter9330Gitlab::Graphql::GenericTracing9331 updates graphql histogram with expected labels9332 when labkit tracing is enabled9333 yields with labkit tracing9334 when labkit tracing is disabled9335 yields without measurement9336Types::UserCalloutFeatureNameEnum9337 is expected to eq "UserCalloutFeatureNameEnum"9338 exposes all the existing user callout feature names9339BulkImports::Projects::Graphql::GetProjectQuery9340 has a valid query9341 queries project based on source_full_path9342Types::LabelType9343 has the correct fields9344 is expected to require graphql authorizations :read_label9345GravatarService9346 #execute9347 replaces the placeholders9348API::Entities::Projects::Topic9349 exposes correct attributes9350Gitlab::SidekiqStatus::ClientMiddleware9351 #call9352 when the job has status_expiration set9353 tracks the job in Redis9354 when the job does not have status_expiration set9355 does not track the job in Redis9356SystemCheck::App::GitlabResqueConfigExistsCheck9357 # order random9358 #check?9359 when config/resque.yml exists9360 is expected to eq true9361 when config/resque.yml does not exist9362 is expected to eq false9363Types::WorkItems::Widgets::NotesType9364 # order random9365 exposes the expected fields9366DataTransfer::MockedTransferFinder9367 # order random9368 #execute9369 returns mock data9370MetricImageUploader9371 .workhorse_local_upload_path9372 returns path that includes uploads dir9373Gitlab::Email::Message::BuildIosAppGuide9374 contains the correct message9375Types::MutationType9376 is expected to have the MergeRequestSetDraft9377Gitlab::Diff::FileCollectionSorter9378 #sort9379 returns list sorted directory first9380Gitlab::Database::SchemaValidation::Validators::MissingTriggers9381 # order random9382 returns trigger inconsistencies9383Knapsack report was generated. Preview:9384{9385 "spec/models/ci/build_spec.rb": 101.22136263500033,9386 "spec/models/note_spec.rb": 135.76031467099892,9387 "spec/services/ci/create_pipeline_service_spec.rb": 90.30254490199877,9388 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 73.57434217199989,9389 "spec/services/issues/close_service_spec.rb": 77.36851080700035,9390 "spec/services/notes/create_service_spec.rb": 60.963456645000406,9391 "spec/lib/gitlab/import_export/project/tree_saver_spec.rb": 47.582933117999346,9392 "spec/services/draft_notes/publish_service_spec.rb": 44.840167882999594,9393 "spec/services/ci/runners/create_runner_service_spec.rb": 31.294390823000867,9394 "spec/finders/ci/runners_finder_spec.rb": 19.688989160000347,9395 "spec/models/alert_management/alert_spec.rb": 7.858217881999735,9396 "spec/lib/gitlab/gpg/commit_spec.rb": 27.205534479000562,9397 "spec/lib/gitlab/relative_positioning/item_context_spec.rb": 12.706741638001404,9398 "spec/serializers/group_child_entity_spec.rb": 29.219978217999596,9399 "spec/lib/gitlab/reference_extractor_spec.rb": 19.566187259999424,9400 "spec/models/integrations/field_spec.rb": 4.040021299000728,9401 "spec/models/integrations/every_integration_spec.rb": 3.746271269999852,9402 "spec/models/integrations/bamboo_spec.rb": 14.688957767999455,9403 "spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb": 20.87995022299947,9404 "spec/lib/gitlab/ci/status/external/factory_spec.rb": 16.153250452000066,9405 "spec/models/resource_state_event_spec.rb": 15.69060243200147,9406 "spec/lib/gitlab/git/branch_spec.rb": 17.348558743999092,9407 "spec/lib/gitlab/database/transaction/observer_spec.rb": 19.723832048000986,9408 "spec/models/key_spec.rb": 8.735609978999491,9409 "spec/lib/gitlab/ci/config/entry/bridge_spec.rb": 3.394200984001145,9410 "spec/services/todos/destroy/group_private_service_spec.rb": 20.061659791999773,9411 "spec/models/ci/build_metadata_spec.rb": 8.303056627999467,9412 "spec/lib/gitlab/sql/pattern_spec.rb": 3.4735580870001286,9413 "spec/lib/banzai/reference_parser/merge_request_parser_spec.rb": 15.81844056799855,9414 "spec/lib/gitlab/email/handler/create_issue_handler_spec.rb": 10.83800806399995,9415 "spec/services/issues/duplicate_service_spec.rb": 13.017643279999902,9416 "spec/models/project_import_state_spec.rb": 6.881965950000449,9417 "spec/lib/gitlab/data_builder/build_spec.rb": 3.402933422999922,9418 "spec/graphql/gitlab_schema_spec.rb": 4.8427701690015965,9419 "spec/services/notes/build_service_spec.rb": 7.8065144200008945,9420 "spec/lib/gitlab/pagination/keyset/paginator_spec.rb": 2.9993774779995874,9421 "spec/graphql/types/base_field_spec.rb": 1.5617629520002083,9422 "spec/lib/gitlab/ci/variables/builder_spec.rb": 6.8104357480006,9423 "spec/serializers/environment_entity_spec.rb": 6.993986768000468,9424 "spec/validators/addressable_url_validator_spec.rb": 5.381914920999407,9425 "spec/lib/gitlab/ci/build/auto_retry_spec.rb": 5.250204064999707,9426 "spec/lib/bulk_imports/clients/http_spec.rb": 1.910582954000347,9427 "spec/lib/banzai/filter/sanitization_filter_spec.rb": 2.278054914999302,9428 "spec/presenters/projects/settings/deploy_keys_presenter_spec.rb": 7.732406038998306,9429 "spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb": 8.139782293999815,9430 "spec/services/todos/destroy/project_private_service_spec.rb": 7.0945898760001,9431 "spec/lib/gitlab/database/bulk_update_spec.rb": 4.376414869000655,9432 "spec/models/analytics/cycle_analytics/aggregation_spec.rb": 3.9737262730013754,9433 "spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb": 1.7252829640001437,9434 "spec/lib/gitlab/redis/cache_spec.rb": 1.7049261360007222,9435 "spec/lib/gitlab/sidekiq_status_spec.rb": 1.5620322830000077,9436 "spec/services/commits/cherry_pick_service_spec.rb": 6.9859814579995145,9437 "spec/services/packages/update_package_file_service_spec.rb": 4.319803685000807,9438 "spec/views/ci/status/_badge.html.haml_spec.rb": 6.148900067999421,9439 "spec/helpers/routing/pseudonymization_helper_spec.rb": 2.067952597999465,9440 "spec/workers/packages/nuget/extraction_worker_spec.rb": 6.557078314001046,9441 "spec/services/repositories/housekeeping_service_spec.rb": 2.698601320000307,9442 "spec/models/integrations/assembla_spec.rb": 1.7963033369996992,9443 "spec/lib/gitlab/auth/ldap/user_spec.rb": 4.583563036001578,9444 "spec/initializers/enumerator_next_patch_spec.rb": 1.5356235150011344,9445 "spec/serializers/web_ide_terminal_entity_spec.rb": 4.46752798000125,9446 "spec/services/integrations/test/project_service_spec.rb": 4.673971157999404,9447 "spec/lib/sidebars/projects/super_sidebar_panel_spec.rb": 3.744398707000073,9448 "spec/graphql/resolvers/project_packages_resolver_spec.rb": 2.9596535109994875,9449 "spec/services/packages/create_dependency_service_spec.rb": 2.9375964239989116,9450 "spec/policies/board_policy_spec.rb": 5.335085475999222,9451 "spec/graphql/types/merge_request_type_spec.rb": 4.602934124999592,9452 "spec/presenters/snippet_blob_presenter_spec.rb": 4.430120432998592,9453 "spec/graphql/mutations/ci/runner/update_spec.rb": 5.302080990000832,9454 "spec/lib/gitlab/profiler_spec.rb": 1.1977025309988676,9455 "spec/views/projects/commits/_commit.html.haml_spec.rb": 5.045675007000682,9456 "spec/lib/gitlab/auth/saml/identity_linker_spec.rb": 1.5288337250003678,9457 "spec/services/projects/deploy_tokens/create_service_spec.rb": 5.002003992000027,9458 "spec/serializers/merge_request_serializer_spec.rb": 6.585750942000232,9459 "spec/models/lfs_file_lock_spec.rb": 4.179072349999842,9460 "spec/services/projects/hashed_storage/base_attachment_service_spec.rb": 5.2206010580011935,9461 "spec/tooling/lib/tooling/mappings/graphql_base_type_mappings_spec.rb": 1.1018883019987697,9462 "spec/lib/gitlab/content_security_policy/config_loader_spec.rb": 1.3899022500008869,9463 "spec/lib/gitlab/exceptions_app_spec.rb": 0.5903950259998965,9464 "spec/finders/users_star_projects_finder_spec.rb": 3.6556564069996966,9465 "spec/lib/gitlab/utils/username_and_email_generator_spec.rb": 1.6933198979986628,9466 "spec/graphql/types/terraform/state_version_type_spec.rb": 2.5170256389992574,9467 "spec/lib/gitlab/ci/status/stage/play_manual_spec.rb": 2.928658295000787,9468 "spec/lib/gitlab/api_authentication/token_resolver_spec.rb": 2.4613330850006605,9469 "spec/lib/gitlab/ci/config/extendable/entry_spec.rb": 1.3384418659989024,9470 "spec/lib/gitlab/auth/ldap/authentication_spec.rb": 0.7677290069987066,9471 "spec/graphql/resolvers/crm/contacts_resolver_spec.rb": 2.3335962890014343,9472 "spec/views/projects/pages/new.html.haml_spec.rb": 1.732974964001187,9473 "spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb": 0.6742359080017195,9474 "spec/lib/gitlab/import_export/shared_spec.rb": 4.0213065479983925,9475 "spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb": 0.6831099360006192,9476 "spec/finders/packages/go/version_finder_spec.rb": 2.5466982259986253,9477 "spec/views/projects/pipelines/show.html.haml_spec.rb": 2.522597188000873,9478 "spec/presenters/ci/variable_presenter_spec.rb": 3.298282616000506,9479 "spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb": 2.0066758129996742,9480 "spec/tooling/danger/sidekiq_args_spec.rb": 1.1432035969992285,9481 "spec/services/web_hooks/destroy_service_spec.rb": 3.726620149000155,9482 "spec/lib/bulk_imports/pipeline/runner_spec.rb": 1.5603517220006324,9483 "spec/services/work_items/widgets/description_service/update_service_spec.rb": 2.839179194999815,9484 "spec/lib/gitlab/legacy_github_import/client_spec.rb": 1.1474439970006642,9485 "spec/lib/gitlab/markup_helper_spec.rb": 1.2202207789996464,9486 "spec/lib/security/ci_configuration/sast_build_action_spec.rb": 1.0850691539999389,9487 "spec/services/work_items/widgets/notifications_service/update_service_spec.rb": 1.7281522550001682,9488 "spec/helpers/graph_helper_spec.rb": 1.9495440310001868,9489 "spec/graphql/mutations/achievements/delete_spec.rb": 1.17498205299853,9490 "spec/services/packages/composer/version_parser_service_spec.rb": 0.9166516909990605,9491 "spec/models/work_items/widgets/award_emoji_spec.rb": 1.397830358999272,9492 "spec/models/aws/role_spec.rb": 0.8993184339997242,9493 "spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb": 1.8695179080004891,9494 "spec/lib/gitlab/mail_room/authenticator_spec.rb": 0.8633541670005798,9495 "spec/lib/gitlab/kubernetes/service_account_spec.rb": 0.5568931299985707,9496 "spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb": 2.6826243420000537,9497 "spec/presenters/ci/bridge_presenter_spec.rb": 0.8941580439986865,9498 "spec/services/packages/nuget/metadata_extraction_service_spec.rb": 1.505080327999167,9499 "spec/models/programming_language_spec.rb": 2.8140778270008013,9500 "spec/finders/autocomplete/deploy_keys_with_write_access_finder_spec.rb": 1.2235677989992837,9501 "spec/services/incident_management/pager_duty/process_webhook_service_spec.rb": 1.2282652470003086,9502 "spec/lib/gitlab/issuable/clone/attributes_rewriter_spec.rb": 2.2204396719989745,9503 "spec/workers/database/batched_background_migration/main_execution_worker_spec.rb": 1.0730503650011087,9504 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb": 1.1616160049998143,9505 "spec/lib/gitlab/ci/status/pipeline/common_spec.rb": 2.453512916001273,9506 "spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb": 1.3673624630009726,9507 "spec/lib/gitlab/ci/config/external/rules_spec.rb": 2.2341418100004375,9508 "spec/lib/gitlab/config/entry/factory_spec.rb": 0.7999065250005515,9509 "spec/models/metrics/users_starred_dashboard_spec.rb": 1.9070212959995843,9510 "spec/workers/analytics/usage_trends/counter_job_worker_spec.rb": 1.195535942000788,9511 "spec/lib/gitlab/access/branch_protection_spec.rb": 0.8255503720010893,9512 "spec/lib/gitlab/ci/status/success_spec.rb": 0.5954773949997616,9513 "spec/lib/gitlab/git/pre_receive_error_spec.rb": 0.6331143910010724,9514 "spec/workers/ci/parse_secure_file_metadata_worker_spec.rb": 1.2620195139988937,9515 "spec/services/projects/group_links/update_service_spec.rb": 2.1316030910002155,9516 "spec/rubocop/cop/graphql/graphql_name_position_spec.rb": 0.5339231130001281,9517 "spec/initializers/net_http_response_patch_spec.rb": 0.6526772890010761,9518 "spec/lib/gitlab/redis/hll_spec.rb": 0.9050393830002577,9519 "spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb": 0.8521258780001517,9520 "spec/workers/error_tracking_issue_link_worker_spec.rb": 1.0274603790003312,9521 "spec/tooling/danger/customer_success_spec.rb": 0.8636841959996673,9522 "spec/views/dashboard/projects/index.html.haml_spec.rb": 0.837604508998993,9523 "spec/views/profiles/notifications/show.html.haml_spec.rb": 0.7743925569993735,9524 "spec/models/integrations/issue_tracker_data_spec.rb": 0.6098647540002275,9525 "spec/services/system_notes/base_service_spec.rb": 0.5118004150008346,9526 "spec/services/award_emojis/copy_service_spec.rb": 1.8771027079983469,9527 "spec/lib/gitlab/slug/path_spec.rb": 0.8501550189994305,9528 "spec/services/milestones/update_service_spec.rb": 2.053526629000771,9529 "spec/models/namespaces/sync_event_spec.rb": 0.7651273179999407,9530 "spec/lib/banzai/render_context_spec.rb": 0.6122616450011265,9531 "spec/services/system_notes/zoom_service_spec.rb": 1.7490600319997611,9532 "spec/scripts/lib/glfm/parse_examples_spec.rb": 0.3512908819993754,9533 "spec/lib/gitlab/url_blockers/url_allowlist_spec.rb": 2.2334022800005187,9534 "spec/helpers/ci/secure_files_helper_spec.rb": 1.5000355080010195,9535 "spec/serializers/test_reports_comparer_serializer_spec.rb": 0.4158119049989182,9536 "spec/services/clusters/integrations/create_service_spec.rb": 1.5334153150015482,9537 "spec/lib/csv_builders/stream_spec.rb": 0.5273348729988356,9538 "spec/lib/gitlab/ci/trace/section_parser_spec.rb": 0.6219101730002876,9539 "spec/services/users/update_highest_member_role_service_spec.rb": 1.3497872149982868,9540 "spec/models/concerns/usage_statistics_spec.rb": 1.3113180990003457,9541 "spec/lib/api/validations/validators/array_none_any_spec.rb": 0.3127179660004913,9542 "spec/views/help/drawers.html.haml_spec.rb": 0.38980310799888684,9543 "spec/services/packages/npm/create_metadata_cache_service_spec.rb": 1.1484029670009477,9544 "spec/lib/gitlab/usage_data_counters/source_code_counter_spec.rb": 0.5488887009996688,9545 "spec/views/projects/settings/integrations/edit.html.haml_spec.rb": 1.3486128950007696,9546 "spec/lib/gitlab/utils/mime_type_spec.rb": 0.6873275660000218,9547 "spec/workers/bulk_imports/entity_worker_spec.rb": 1.055005787000482,9548 "spec/serializers/merge_request_for_pipeline_entity_spec.rb": 1.5983342769995943,9549 "spec/graphql/resolvers/saved_reply_resolver_spec.rb": 0.9216728110004624,9550 "spec/lib/gitlab/memory/reports/heap_dump_spec.rb": 0.47631955899851164,9551 "spec/services/protected_branches/api_service_spec.rb": 1.330053986999701,9552 "spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb": 1.0076731810004276,9553 "spec/scripts/generate_rspec_pipeline_spec.rb": 0.6060218439997698,9554 "spec/presenters/packages/nuget/service_index_presenter_spec.rb": 0.7743934570007696,9555 "spec/models/error_tracking/client_key_spec.rb": 0.6070401939996373,9556 "spec/workers/gitlab_shell_worker_spec.rb": 0.80695186399862,9557 "spec/models/concerns/issuable_link_spec.rb": 1.2202301880006416,9558 "spec/graphql/resolvers/design_management/version_resolver_spec.rb": 1.3681227519991808,9559 "spec/models/releases/source_spec.rb": 1.1285145090005244,9560 "spec/workers/personal_access_tokens/expiring_worker_spec.rb": 1.007954050999615,9561 "spec/lib/gitlab/changelog/generator_spec.rb": 0.6975617049993161,9562 "spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb": 1.1973745209998015,9563 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 0.7035881640003936,9564 "spec/helpers/projects/google_cloud/cloudsql_helper_spec.rb": 0.4191629050001211,9565 "spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb": 1.1378020270003617,9566 "spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb": 0.6254026019996672,9567 "spec/graphql/types/ci/freeze_period_type_spec.rb": 0.42520716400031233,9568 "spec/lib/gitlab/ci/input/arguments/options_spec.rb": 0.678062957000293,9569 "spec/lib/banzai/pipeline_spec.rb": 0.5328896720002376,9570 "spec/rubocop/cop/prefer_class_methods_over_module_spec.rb": 0.8680597670008865,9571 "spec/views/profiles/keys/_key_details.html.haml_spec.rb": 0.8741514659996028,9572 "spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb": 0.4875383970011171,9573 "spec/lib/gitlab/setup_helper/workhorse_spec.rb": 0.5112199249997502,9574 "spec/workers/namespaces/prune_aggregation_schedules_worker_spec.rb": 0.967374916001063,9575 "spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb": 0.44146172200089495,9576 "spec/models/ml/candidate_metadata_spec.rb": 1.3086528589992668,9577 "spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb": 0.5880711170011637,9578 "spec/lib/gitlab/metrics/memory_spec.rb": 0.38701845899959153,9579 "spec/models/users/calloutable_spec.rb": 0.6818380369986698,9580 "spec/workers/gitlab/github_gists_import/finish_import_worker_spec.rb": 0.7036332140014565,9581 "spec/models/namespaces/randomized_suffix_path_spec.rb": 0.48610517800079833,9582 "spec/presenters/sentry_error_presenter_spec.rb": 0.4138359250009671,9583 "spec/serializers/group_access_token_entity_spec.rb": 0.7370487900006992,9584 "spec/lib/gitlab/ci/reports/test_failure_history_spec.rb": 0.6269789319994743,9585 "spec/lib/gitlab/usage_data_counters/jetbrains_plugin_activity_unique_counter_spec.rb": 0.544240601000638,9586 "spec/graphql/types/release_assets_type_spec.rb": 0.5540632190004544,9587 "spec/lib/gitlab/database/schema_migrations/migrations_spec.rb": 0.46540394099974947,9588 "spec/services/packages/debian/extract_deb_metadata_service_spec.rb": 0.5826325580001139,9589 "spec/lib/gitlab/word_diff/line_processor_spec.rb": 0.372157519999746,9590 "spec/models/user_canonical_email_spec.rb": 0.39977023499886855,9591 "spec/graphql/types/branch_protections/push_access_level_type_spec.rb": 0.8352705620000052,9592 "spec/graphql/types/saved_reply_type_spec.rb": 0.4921665270012454,9593 "spec/services/webauthn/register_service_spec.rb": 0.918371901001592,9594 "spec/lib/system_check_spec.rb": 0.45574763100012206,9595 "spec/rubocop/cop/avoid_becomes_spec.rb": 0.38813061799919524,9596 "spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_project_type_active_metric_spec.rb": 0.7269685419996677,9597 "spec/tooling/danger/specs_spec.rb": 0.6260907529995166,9598 "spec/graphql/types/packages/package_type_spec.rb": 0.42988747399977,9599 "spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb": 0.5708866989989474,9600 "spec/models/issues/csv_import_spec.rb": 0.5460525010003039,9601 "spec/lib/api/entities/changelog_spec.rb": 0.5914369560014165,9602 "spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb": 0.5357254129994544,9603 "spec/lib/kramdown/kramdown_spec.rb": 0.5178524849998212,9604 "spec/lib/gitlab/graphql/generic_tracing_spec.rb": 0.4042703859995527,9605 "spec/graphql/types/user_callout_feature_name_enum_spec.rb": 0.5096300559998781,9606 "spec/lib/bulk_imports/projects/graphql/get_project_query_spec.rb": 0.5554224710012932,9607 "spec/graphql/types/label_type_spec.rb": 0.2992918969994207,9608 "spec/services/gravatar_service_spec.rb": 0.4294016929998179,9609 "spec/lib/api/entities/projects/topic_spec.rb": 0.5154861949995393,9610 "spec/lib/gitlab/sidekiq_status/client_middleware_spec.rb": 0.4731389089993172,9611 "spec/lib/system_check/app/gitlab_resque_config_exists_check_spec.rb": 0.3425447929985239,9612 "spec/graphql/types/work_items/widgets/notes_type_spec.rb": 0.3447778429999744,9613 "spec/finders/data_transfer/mocked_transfer_finder_spec.rb": 0.5450850510005694,9614 "spec/uploaders/metric_image_uploader_spec.rb": 0.5191654539994488,9615 "spec/lib/gitlab/email/message/build_ios_app_guide_spec.rb": 0.42981584399967687,9616 "spec/graphql/types/mutation_type_spec.rb": 0.28238328999941587,9617 "spec/lib/gitlab/diff/file_collection_sorter_spec.rb": 0.501005026000712,9618 "spec/lib/gitlab/database/schema_validation/validators/missing_triggers_spec.rb": 0.64312760099892339619}9620Knapsack global time execution for tests: 22m 21s9621Pending: (Failures listed here are expected and do not affect your suite's status)9622 1) Ci::Build partitioning assigns partition_id to job variables successfully9623 # Skipping partitioning tests until `ci_builds` is partitioned9624 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9625 RSpec::Core::Pending::SkipDeclaredInExample9626 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9627 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9628 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9629 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9630 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9631 2) Ci::Build assigning token includes partition_id as a token prefix9632 # Skipping partitioning tests until `ci_builds` is partitioned9633 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9634 RSpec::Core::Pending::SkipDeclaredInExample9635 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9636 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9637 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9638 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9639 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9640 3) Ci::Build metadata partitioning creates the metadata record and assigns its partition9641 # Skipping partitioning tests until `ci_builds` is partitioned9642 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9643 RSpec::Core::Pending::SkipDeclaredInExample9644 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9645 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9646 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9647 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9648 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9649 4) Ci::CreatePipelineService#execute Pipeline for external pull requests when source is external pull request when config has external_pull_requests keywords when external pull request is specified when pull request is created from fork does not create an external pull request pipeline9650 # Not yet implemented9651 # ./spec/services/ci/create_pipeline_service_spec.rb:14429652 5) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 9653 # No pattern provided, skipping.9654 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89655 6) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 9656 # No pattern provided, skipping.9657 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89658 7) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative9659 # Path not set, skipping.9660 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409661 8) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9662 # No pattern provided, skipping.9663 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89664 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9665 # No pattern provided, skipping.9666 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89667 10) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9668 # No pattern provided, skipping.9669 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89670 11) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative9671 # Path not set, skipping.9672 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409673 12) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9674 # No pattern provided, skipping.9675 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89676 13) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9677 # No pattern provided, skipping.9678 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89679Finished in 22 minutes 26 seconds (files took 45.28 seconds to load)96804324 examples, 0 failures, 13 pending9681Randomized with seed 126429682[TEST PROF INFO] Time spent in factories: 11:19.271 (50.22% of total time)9683RSpec exited with 0.9684No examples to retry, congrats!9686Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9688Uploading artifacts...9689coverage/: found 5 matching artifact files and directories 9690WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9691WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9692knapsack/: found 4 matching artifact files and directories 9693query_recorder/: found 2 matching artifact files and directories 9694rspec/: found 9 matching artifact files and directories 9695WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9696log/*.log: found 17 matching artifact files and directories 9697WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4287783186/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9698WARNING: Retrying... context=artifacts-uploader error=request redirected9699Uploading artifacts as "archive" to coordinator... 201 Created id=4287783186 responseStatus=201 Created token=64_FR4VD9700Uploading artifacts...9701rspec/junit_rspec.xml: found 1 matching artifact files and directories 9702WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4287783186/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9703WARNING: Retrying... context=artifacts-uploader error=request redirected9704Uploading artifacts as "junit" to coordinator... 201 Created id=4287783186 responseStatus=201 Created token=64_FR4VD9706Job succeeded