rspec unit pg13 5/28
Passed Started
by
@rkadam3

Rajendra Kadam
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR, system ID: s_360bc95445273 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:13 ...8Pulling docker image postgres:13 ...9Using docker image sha256:ab3945c8cf7160ed1381efd47c6a203ba9a84fc7327a17e4a389601eb3738b3b for postgres:13 with digest postgres@sha256:67edfda7deeecfda8e40c9b00818eae76573a9e9466ba7edbc536662d128173b ...10Starting service redis:6.2-alpine ...11Pulling docker image redis:6.2-alpine ...12Using docker image sha256:a9a47a706682d445577bb5da7328f0faaa0863a5742a315c829faa461dfc23ae for redis:6.2-alpine with digest redis@sha256:317575f05099ea47b1f2855b1bb6e068b52847bfa19b87014d88d57f82d4b8f0 ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 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:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...18Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1681896989-9ef62cdb...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 127066, done. 25remote: Counting objects: 100% (127066/127066), done. 26remote: Compressing objects: 100% (84263/84263), done. 27remote: Total 127066 (delta 52059), reused 86943 (delta 37888), pack-reused 0 28Receiving objects: 100% (127066/127066), 122.40 MiB | 30.83 MiB/s, done.29Resolving deltas: 100% (52059/52059), done.31 * [new ref] refs/pipelines/841847819 -> refs/pipelines/84184781932 * [new branch] master -> origin/master33Checking out e2ff33c5 as detached HEAD (ref is master)...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...38Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 39Successfully extracted cache41Downloading artifacts for compile-test-assets (4139146271)...42Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146271 responseStatus=200 OK token=64_wHrwE43Downloading artifacts for retrieve-tests-metadata (4139146276)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146276 responseStatus=200 OK token=64_wHrwE45Downloading artifacts for setup-test-env (4139146274)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146274 responseStatus=200 OK token=64_wHrwE48Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 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:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...49$ echo $FOSS_ONLY50$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb51$ export GOPATH=$CI_PROJECT_DIR/.go52$ mkdir -p $GOPATH53$ source scripts/utils.sh54$ source scripts/prepare_build.sh709Using decomposed database config (config/database.yml.decomposed-postgresql)710Geo DB won't be set up.711$ setup_db_user_only712CREATE ROLE713GRANT714==> 'setup_db_user_only' succeeded in 0 seconds.715$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes716Dropped database 'gitlabhq_test'717Dropped database 'gitlabhq_test_ci'718Created database 'gitlabhq_test'719Created database 'gitlabhq_test_ci'720main: == [advisory_lock_connection] object_id: 273740, pg_backend_pid: 101721main: == [advisory_lock_connection] object_id: 273740, pg_backend_pid: 101722ci: == [advisory_lock_connection] object_id: 273820, pg_backend_pid: 103723ci: == [advisory_lock_connection] object_id: 273820, pg_backend_pid: 103724==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 51 seconds.725$ setup_db_praefect726SELECT pg_catalog.set_config('search_path', '', false);727CREATE DATABASE praefect_test ENCODING 'UTF8';728==> 'setup_db_praefect' succeeded in 0 seconds.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$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"735==> 'gem install knapsack --no-document' succeeded in 1 seconds.744$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"745SKIP_FLAKY_TESTS_AUTOMATICALLY: false746RETRY_FAILED_TESTS_IN_NEW_PROCESS: true747KNAPSACK_GENERATE_REPORT: true748FLAKY_RSPEC_GENERATE_REPORT: true749KNAPSACK_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.rb750KNAPSACK_LOG_LEVEL: debug751KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_5_28_report.json752FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json753FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_5_28_report.json754NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_5_28_report.json755SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_5_28_report.txt756CRYSTALBALL: 757Knapsack node specs:758spec/models/merge_request_spec.rb759spec/models/project_team_spec.rb760spec/models/namespace/traversal_hierarchy_spec.rb761spec/uploaders/design_management/design_v432x230_uploader_spec.rb762spec/finders/notes_finder_spec.rb763spec/services/event_create_service_spec.rb764spec/lib/gitlab/email/handler/service_desk_handler_spec.rb765spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb766spec/finders/ci/runners_finder_spec.rb767spec/models/ci/ref_spec.rb768spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb769spec/services/database/consistency_check_service_spec.rb770spec/lib/gitlab/background_migration/backfill_vulnerability_reads_cluster_agent_spec.rb771spec/lib/gitlab/url_builder_spec.rb772spec/lib/banzai/pipeline/wiki_pipeline_spec.rb773spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb774spec/models/suggestion_spec.rb775spec/finders/ci/pipelines_finder_spec.rb776spec/components/pajamas/button_component_spec.rb777spec/lib/gitlab/ci/config/entry/reports_spec.rb778spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb779spec/lib/gitlab/usage/metric_definition_spec.rb780spec/models/ci/secure_file_spec.rb781spec/routing/import_routing_spec.rb782spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb783spec/models/integrations/buildkite_spec.rb784spec/services/namespaces/in_product_marketing_emails_service_spec.rb785spec/models/user_detail_spec.rb786spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb787spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb788spec/haml_lint/linter/documentation_links_spec.rb789spec/finders/packages/build_infos_finder_spec.rb790spec/services/snippets/update_statistics_service_spec.rb791spec/serializers/ci/trigger_entity_spec.rb792spec/services/issuable/discussions_list_service_spec.rb793spec/lib/gitlab/import_export/merge_request_parser_spec.rb794spec/services/projects/operations/update_service_spec.rb795spec/services/protected_branches/cache_service_spec.rb796spec/lib/gitlab/deploy_key_access_spec.rb797spec/presenters/ci/stage_presenter_spec.rb798spec/graphql/mutations/merge_requests/create_spec.rb799spec/serializers/diff_file_entity_spec.rb800spec/graphql/mutations/issues/set_escalation_status_spec.rb801spec/models/ci/commit_with_pipeline_spec.rb802spec/models/concerns/participable_spec.rb803spec/policies/award_emoji_policy_spec.rb804spec/models/ci/sources/pipeline_spec.rb805spec/lib/gitlab/shell_spec.rb806spec/lib/gitlab/repository_cache_spec.rb807spec/lib/gitlab/ci/config/entry/trigger_spec.rb808spec/lib/gitlab/ci/config/external/file/remote_spec.rb809spec/graphql/mutations/design_management/delete_spec.rb810spec/finders/crm/organizations_finder_spec.rb811spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb812spec/lib/gitlab/lfs_token_spec.rb813spec/services/error_tracking/issue_update_service_spec.rb814spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb815spec/services/milestones/issues_count_service_spec.rb816spec/views/admin/dashboard/index.html.haml_spec.rb817spec/services/projects/move_lfs_objects_projects_service_spec.rb818spec/finders/groups/accepting_project_shares_finder_spec.rb819spec/finders/clusters/agents_finder_spec.rb820spec/services/projects/move_project_group_links_service_spec.rb821spec/services/users/create_service_spec.rb822spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb823spec/workers/namespaces/root_statistics_worker_spec.rb824spec/lib/gitlab/conflict/file_collection_spec.rb825spec/finders/packages/go/version_finder_spec.rb826spec/workers/namespaces/process_sync_events_worker_spec.rb827spec/models/packages/debian/project_component_spec.rb828spec/workers/x509_issuer_crl_check_worker_spec.rb829spec/services/personal_access_tokens/create_service_spec.rb830spec/lib/gitlab/github_import/representation/note_spec.rb831spec/views/projects/diffs/_viewer.html.haml_spec.rb832spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb833spec/lib/gitlab/ci/reports/test_report_spec.rb834spec/services/discussions/capture_diff_note_position_service_spec.rb835spec/lib/gitlab/rack_attack_spec.rb836spec/lib/gitlab/auth/ldap/adapter_spec.rb837spec/models/ci/runner_namespace_spec.rb838spec/services/packages/generic/create_package_file_service_spec.rb839spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb840spec/finders/ci/job_artifacts_finder_spec.rb841spec/models/concerns/sanitizable_spec.rb842spec/lib/gitlab/untrusted_regexp_spec.rb843spec/lib/banzai/filter/wiki_link_filter_spec.rb844spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb845spec/lib/gitlab/http_connection_adapter_spec.rb846spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb847spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb848spec/graphql/mutations/groups/update_spec.rb849spec/channels/application_cable/connection_spec.rb850spec/tooling/danger/feature_flag_spec.rb851spec/helpers/groups/observability_helper_spec.rb852spec/tooling/danger/product_intelligence_spec.rb853spec/lib/banzai/renderer_spec.rb854spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb855spec/graphql/mutations/todos/mark_done_spec.rb856spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb857spec/services/issuable/destroy_label_links_service_spec.rb858spec/models/concerns/bulk_insert_safe_spec.rb859spec/lib/gitlab/metrics/global_search_slis_spec.rb860spec/graphql/resolvers/project_pipeline_resolver_spec.rb861spec/lib/gitlab/config/loader/yaml_spec.rb862spec/lib/grafana/time_window_spec.rb863spec/workers/run_pipeline_schedule_worker_spec.rb864spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb865spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb866spec/serializers/user_serializer_spec.rb867spec/lib/gitlab/gitaly_client/remote_service_spec.rb868spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb869spec/uploaders/lfs_object_uploader_spec.rb870spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb871spec/lib/gitlab/auth/key_status_checker_spec.rb872spec/services/pages_domains/create_acme_order_service_spec.rb873spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb874spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb875spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb876spec/lib/sidebars/projects/menus/deployments_menu_spec.rb877spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb878spec/services/customer_relations/contacts/update_service_spec.rb879spec/services/system_notes/alert_management_service_spec.rb880spec/presenters/packages/helm/index_presenter_spec.rb881spec/models/concerns/has_environment_scope_spec.rb882spec/models/preloaders/project_policy_preloader_spec.rb883spec/finders/prometheus_metrics_finder_spec.rb884spec/models/packages/event_spec.rb885spec/lib/system_check/orphans/namespace_check_spec.rb886spec/lib/gitlab/ci/input/arguments/required_spec.rb887spec/lib/gitlab/error_tracking/processor/sanitize_error_message_processor_spec.rb888spec/lib/sidebars/projects/super_sidebar_panel_spec.rb889spec/lib/api/entities/merge_request_changes_spec.rb890spec/services/users/email_verification/validate_token_service_spec.rb891spec/lib/gitlab/safe_request_loader_spec.rb892spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb893spec/finders/issuables/crm_contact_filter_spec.rb894spec/models/system_note_metadata_spec.rb895spec/services/dependency_proxy/group_settings/update_service_spec.rb896spec/lib/gitlab/cycle_analytics/summary/value_spec.rb897spec/graphql/mutations/clusters/agents/delete_spec.rb898spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb899spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb900spec/rubocop/cop/database/disable_referential_integrity_spec.rb901spec/validators/system_hook_url_validator_spec.rb902spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb903spec/rubocop/cop/migration/update_column_in_batches_spec.rb904spec/presenters/key_presenter_spec.rb905spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb906spec/lib/gitlab/phabricator_import/conduit/tasks_response_spec.rb907spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb908spec/lib/gitlab/auth/result_spec.rb909spec/graphql/resolvers/snippets/blobs_resolver_spec.rb910spec/graphql/types/blob_viewers/type_enum_spec.rb911spec/lib/gitlab/sql/cte_spec.rb912spec/policies/release_policy_spec.rb913spec/services/timelogs/delete_service_spec.rb914spec/workers/ci/archive_trace_worker_spec.rb915spec/lib/gitlab/prometheus/internal_spec.rb916spec/presenters/packages/nuget/service_index_presenter_spec.rb917spec/graphql/subscriptions/issuable_updated_spec.rb918spec/lib/gitlab/ci/status/build/created_spec.rb919spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb920spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb921spec/lib/gitlab/import/import_failure_service_spec.rb922spec/views/projects/milestones/index.html.haml_spec.rb923spec/models/diff_viewer/server_side_spec.rb924spec/components/pajamas/spinner_component_spec.rb925spec/lib/gitlab/email/service_desk_receiver_spec.rb926spec/services/emails/create_service_spec.rb927spec/services/metrics/users_starred_dashboards/delete_service_spec.rb928spec/lib/gitlab/ci/templates/MATLAB_spec.rb929spec/services/chat_names/find_user_service_spec.rb930spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb931spec/lib/sidebars/admin/menus/labels_menu_spec.rb932spec/lib/gitlab/gitlab_import/project_creator_spec.rb933spec/models/packages/npm_spec.rb934spec/services/pages_domains/retry_acme_order_service_spec.rb935spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb936spec/views/shared/snippets/_snippet.html.haml_spec.rb937spec/lib/gitlab/git_access_design_spec.rb938spec/services/work_items/build_service_spec.rb939spec/rubocop/cop/active_record_association_reload_spec.rb940spec/models/work_items/widgets/milestone_spec.rb941spec/workers/gitlab/github_gists_import/start_import_worker_spec.rb942spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb943spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb944spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb945spec/lib/gitlab/kubernetes/ingress_spec.rb946spec/serializers/feature_flag_summary_serializer_spec.rb947spec/lib/gitlab/ci/ansi2json/state_spec.rb948spec/models/u2f_registration_spec.rb949spec/models/concerns/safely_change_column_default_spec.rb950spec/lib/api/validations/validators/integer_or_custom_value_spec.rb951spec/lib/gitlab/checks/timed_logger_spec.rb952spec/lib/gitlab/github_import/representation/to_hash_spec.rb953spec/lib/gitlab/pages/settings_spec.rb954spec/services/ci/process_pipeline_service_spec.rb955spec/lib/gitlab/event_store/event_spec.rb956spec/workers/gitlab/github_import/attachments/import_release_worker_spec.rb957spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb958spec/lib/gitlab/github_import/representation/diff_notes/discussion_id_spec.rb959spec/lib/banzai/filter/blockquote_fence_filter_spec.rb960spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb961spec/lib/gitlab/database/schema_migrations/migrations_spec.rb962spec/db/development/import_common_metrics_spec.rb963spec/lib/gitlab/metrics/memory_spec.rb964spec/lib/banzai/filter/markdown_engines/base_spec.rb965spec/graphql/types/container_repository_sort_enum_spec.rb966spec/graphql/types/repository/blob_type_spec.rb967spec/initializers/sawyer_patch_spec.rb968spec/lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin_spec.rb969spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb970spec/lib/api/entities/bulk_imports/entity_spec.rb971spec/lib/gitlab/phabricator_import/conduit/users_response_spec.rb972spec/services/base_container_service_spec.rb973spec/serializers/admin/user_entity_spec.rb974spec/lib/gitlab/database/migrations/observers/query_details_spec.rb975spec/graphql/types/ci/test_case_status_enum_spec.rb976spec/lib/gitlab/memory/reports_uploader_spec.rb977spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb978spec/helpers/ci/catalog/resources_helper_spec.rb979spec/helpers/container_registry_helper_spec.rb980spec/workers/onboarding/user_added_worker_spec.rb981spec/lib/gitlab/ci/config/normalizer/factory_spec.rb982spec/models/concerns/blocks_unsafe_serialization_spec.rb983spec/lib/sidebars/uncategorized_menu_spec.rb984spec/graphql/types/notes/deleted_note_type_spec.rb985spec/models/blob_viewer/podspec_json_spec.rb986spec/lib/api/entities/projects/repository_storage_move_spec.rb987spec/lib/sidebars/admin/panel_spec.rb988spec/graphql/types/work_items/widgets/notes_type_spec.rb989spec/graphql/types/ci/project_variable_connection_type_spec.rb990Filter specs:991Running specs:992Running all node tests without filter993spec/models/merge_request_spec.rb994spec/models/project_team_spec.rb995spec/models/namespace/traversal_hierarchy_spec.rb996spec/uploaders/design_management/design_v432x230_uploader_spec.rb997spec/finders/notes_finder_spec.rb998spec/services/event_create_service_spec.rb999spec/lib/gitlab/email/handler/service_desk_handler_spec.rb1000spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb1001spec/finders/ci/runners_finder_spec.rb1002spec/models/ci/ref_spec.rb1003spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb1004spec/services/database/consistency_check_service_spec.rb1005spec/lib/gitlab/background_migration/backfill_vulnerability_reads_cluster_agent_spec.rb1006spec/lib/gitlab/url_builder_spec.rb1007spec/lib/banzai/pipeline/wiki_pipeline_spec.rb1008spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb1009spec/models/suggestion_spec.rb1010spec/finders/ci/pipelines_finder_spec.rb1011spec/components/pajamas/button_component_spec.rb1012spec/lib/gitlab/ci/config/entry/reports_spec.rb1013spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb1014spec/lib/gitlab/usage/metric_definition_spec.rb1015spec/models/ci/secure_file_spec.rb1016spec/routing/import_routing_spec.rb1017spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb1018spec/models/integrations/buildkite_spec.rb1019spec/services/namespaces/in_product_marketing_emails_service_spec.rb1020spec/models/user_detail_spec.rb1021spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb1022spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb1023spec/haml_lint/linter/documentation_links_spec.rb1024spec/finders/packages/build_infos_finder_spec.rb1025spec/services/snippets/update_statistics_service_spec.rb1026spec/serializers/ci/trigger_entity_spec.rb1027spec/services/issuable/discussions_list_service_spec.rb1028spec/lib/gitlab/import_export/merge_request_parser_spec.rb1029spec/services/projects/operations/update_service_spec.rb1030spec/services/protected_branches/cache_service_spec.rb1031spec/lib/gitlab/deploy_key_access_spec.rb1032spec/presenters/ci/stage_presenter_spec.rb1033spec/graphql/mutations/merge_requests/create_spec.rb1034spec/serializers/diff_file_entity_spec.rb1035spec/graphql/mutations/issues/set_escalation_status_spec.rb1036spec/models/ci/commit_with_pipeline_spec.rb1037spec/models/concerns/participable_spec.rb1038spec/policies/award_emoji_policy_spec.rb1039spec/models/ci/sources/pipeline_spec.rb1040spec/lib/gitlab/shell_spec.rb1041spec/lib/gitlab/repository_cache_spec.rb1042spec/lib/gitlab/ci/config/entry/trigger_spec.rb1043spec/lib/gitlab/ci/config/external/file/remote_spec.rb1044spec/graphql/mutations/design_management/delete_spec.rb1045spec/finders/crm/organizations_finder_spec.rb1046spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb1047spec/lib/gitlab/lfs_token_spec.rb1048spec/services/error_tracking/issue_update_service_spec.rb1049spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb1050spec/services/milestones/issues_count_service_spec.rb1051spec/views/admin/dashboard/index.html.haml_spec.rb1052spec/services/projects/move_lfs_objects_projects_service_spec.rb1053spec/finders/groups/accepting_project_shares_finder_spec.rb1054spec/finders/clusters/agents_finder_spec.rb1055spec/services/projects/move_project_group_links_service_spec.rb1056spec/services/users/create_service_spec.rb1057spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb1058spec/workers/namespaces/root_statistics_worker_spec.rb1059spec/lib/gitlab/conflict/file_collection_spec.rb1060spec/finders/packages/go/version_finder_spec.rb1061spec/workers/namespaces/process_sync_events_worker_spec.rb1062spec/models/packages/debian/project_component_spec.rb1063spec/workers/x509_issuer_crl_check_worker_spec.rb1064spec/services/personal_access_tokens/create_service_spec.rb1065spec/lib/gitlab/github_import/representation/note_spec.rb1066spec/views/projects/diffs/_viewer.html.haml_spec.rb1067spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb1068spec/lib/gitlab/ci/reports/test_report_spec.rb1069spec/services/discussions/capture_diff_note_position_service_spec.rb1070spec/lib/gitlab/rack_attack_spec.rb1071spec/lib/gitlab/auth/ldap/adapter_spec.rb1072spec/models/ci/runner_namespace_spec.rb1073spec/services/packages/generic/create_package_file_service_spec.rb1074spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb1075spec/finders/ci/job_artifacts_finder_spec.rb1076spec/models/concerns/sanitizable_spec.rb1077spec/lib/gitlab/untrusted_regexp_spec.rb1078spec/lib/banzai/filter/wiki_link_filter_spec.rb1079spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb1080spec/lib/gitlab/http_connection_adapter_spec.rb1081spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb1082spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb1083spec/graphql/mutations/groups/update_spec.rb1084spec/channels/application_cable/connection_spec.rb1085spec/tooling/danger/feature_flag_spec.rb1086spec/helpers/groups/observability_helper_spec.rb1087spec/tooling/danger/product_intelligence_spec.rb1088spec/lib/banzai/renderer_spec.rb1089spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb1090spec/graphql/mutations/todos/mark_done_spec.rb1091spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb1092spec/services/issuable/destroy_label_links_service_spec.rb1093spec/models/concerns/bulk_insert_safe_spec.rb1094spec/lib/gitlab/metrics/global_search_slis_spec.rb1095spec/graphql/resolvers/project_pipeline_resolver_spec.rb1096spec/lib/gitlab/config/loader/yaml_spec.rb1097spec/lib/grafana/time_window_spec.rb1098spec/workers/run_pipeline_schedule_worker_spec.rb1099spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb1100spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb1101spec/serializers/user_serializer_spec.rb1102spec/lib/gitlab/gitaly_client/remote_service_spec.rb1103spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb1104spec/uploaders/lfs_object_uploader_spec.rb1105spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb1106spec/lib/gitlab/auth/key_status_checker_spec.rb1107spec/services/pages_domains/create_acme_order_service_spec.rb1108spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb1109spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb1110spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb1111spec/lib/sidebars/projects/menus/deployments_menu_spec.rb1112spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb1113spec/services/customer_relations/contacts/update_service_spec.rb1114spec/services/system_notes/alert_management_service_spec.rb1115spec/presenters/packages/helm/index_presenter_spec.rb1116spec/models/concerns/has_environment_scope_spec.rb1117spec/models/preloaders/project_policy_preloader_spec.rb1118spec/finders/prometheus_metrics_finder_spec.rb1119spec/models/packages/event_spec.rb1120spec/lib/system_check/orphans/namespace_check_spec.rb1121spec/lib/gitlab/ci/input/arguments/required_spec.rb1122spec/lib/gitlab/error_tracking/processor/sanitize_error_message_processor_spec.rb1123spec/lib/sidebars/projects/super_sidebar_panel_spec.rb1124spec/lib/api/entities/merge_request_changes_spec.rb1125spec/services/users/email_verification/validate_token_service_spec.rb1126spec/lib/gitlab/safe_request_loader_spec.rb1127spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb1128spec/finders/issuables/crm_contact_filter_spec.rb1129spec/models/system_note_metadata_spec.rb1130spec/services/dependency_proxy/group_settings/update_service_spec.rb1131spec/lib/gitlab/cycle_analytics/summary/value_spec.rb1132spec/graphql/mutations/clusters/agents/delete_spec.rb1133spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb1134spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb1135spec/rubocop/cop/database/disable_referential_integrity_spec.rb1136spec/validators/system_hook_url_validator_spec.rb1137spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb1138spec/rubocop/cop/migration/update_column_in_batches_spec.rb1139spec/presenters/key_presenter_spec.rb1140spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb1141spec/lib/gitlab/phabricator_import/conduit/tasks_response_spec.rb1142spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb1143spec/lib/gitlab/auth/result_spec.rb1144spec/graphql/resolvers/snippets/blobs_resolver_spec.rb1145spec/graphql/types/blob_viewers/type_enum_spec.rb1146spec/lib/gitlab/sql/cte_spec.rb1147spec/policies/release_policy_spec.rb1148spec/services/timelogs/delete_service_spec.rb1149spec/workers/ci/archive_trace_worker_spec.rb1150spec/lib/gitlab/prometheus/internal_spec.rb1151spec/presenters/packages/nuget/service_index_presenter_spec.rb1152spec/graphql/subscriptions/issuable_updated_spec.rb1153spec/lib/gitlab/ci/status/build/created_spec.rb1154spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb1155spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb1156spec/lib/gitlab/import/import_failure_service_spec.rb1157spec/views/projects/milestones/index.html.haml_spec.rb1158spec/models/diff_viewer/server_side_spec.rb1159spec/components/pajamas/spinner_component_spec.rb1160spec/lib/gitlab/email/service_desk_receiver_spec.rb1161spec/services/emails/create_service_spec.rb1162spec/services/metrics/users_starred_dashboards/delete_service_spec.rb1163spec/lib/gitlab/ci/templates/MATLAB_spec.rb1164spec/services/chat_names/find_user_service_spec.rb1165spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb1166spec/lib/sidebars/admin/menus/labels_menu_spec.rb1167spec/lib/gitlab/gitlab_import/project_creator_spec.rb1168spec/models/packages/npm_spec.rb1169spec/services/pages_domains/retry_acme_order_service_spec.rb1170spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb1171spec/views/shared/snippets/_snippet.html.haml_spec.rb1172spec/lib/gitlab/git_access_design_spec.rb1173spec/services/work_items/build_service_spec.rb1174spec/rubocop/cop/active_record_association_reload_spec.rb1175spec/models/work_items/widgets/milestone_spec.rb1176spec/workers/gitlab/github_gists_import/start_import_worker_spec.rb1177spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb1178spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb1179spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb1180spec/lib/gitlab/kubernetes/ingress_spec.rb1181spec/serializers/feature_flag_summary_serializer_spec.rb1182spec/lib/gitlab/ci/ansi2json/state_spec.rb1183spec/models/u2f_registration_spec.rb1184spec/models/concerns/safely_change_column_default_spec.rb1185spec/lib/api/validations/validators/integer_or_custom_value_spec.rb1186spec/lib/gitlab/checks/timed_logger_spec.rb1187spec/lib/gitlab/github_import/representation/to_hash_spec.rb1188spec/lib/gitlab/pages/settings_spec.rb1189spec/services/ci/process_pipeline_service_spec.rb1190spec/lib/gitlab/event_store/event_spec.rb1191spec/workers/gitlab/github_import/attachments/import_release_worker_spec.rb1192spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb1193spec/lib/gitlab/github_import/representation/diff_notes/discussion_id_spec.rb1194spec/lib/banzai/filter/blockquote_fence_filter_spec.rb1195spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb1196spec/lib/gitlab/database/schema_migrations/migrations_spec.rb1197spec/db/development/import_common_metrics_spec.rb1198spec/lib/gitlab/metrics/memory_spec.rb1199spec/lib/banzai/filter/markdown_engines/base_spec.rb1200spec/graphql/types/container_repository_sort_enum_spec.rb1201spec/graphql/types/repository/blob_type_spec.rb1202spec/initializers/sawyer_patch_spec.rb1203spec/lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin_spec.rb1204spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb1205spec/lib/api/entities/bulk_imports/entity_spec.rb1206spec/lib/gitlab/phabricator_import/conduit/users_response_spec.rb1207spec/services/base_container_service_spec.rb1208spec/serializers/admin/user_entity_spec.rb1209spec/lib/gitlab/database/migrations/observers/query_details_spec.rb1210spec/graphql/types/ci/test_case_status_enum_spec.rb1211spec/lib/gitlab/memory/reports_uploader_spec.rb1212spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb1213spec/helpers/ci/catalog/resources_helper_spec.rb1214spec/helpers/container_registry_helper_spec.rb1215spec/workers/onboarding/user_added_worker_spec.rb1216spec/lib/gitlab/ci/config/normalizer/factory_spec.rb1217spec/models/concerns/blocks_unsafe_serialization_spec.rb1218spec/lib/sidebars/uncategorized_menu_spec.rb1219spec/graphql/types/notes/deleted_note_type_spec.rb1220spec/models/blob_viewer/podspec_json_spec.rb1221spec/lib/api/entities/projects/repository_storage_move_spec.rb1222spec/lib/sidebars/admin/panel_spec.rb1223spec/graphql/types/work_items/widgets/notes_type_spec.rb1224spec/graphql/types/ci/project_variable_connection_type_spec.rb1225Running all node tests without filter1226Running all node tests without filter1227Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration --default-path spec -- spec/models/merge_request_spec.rb spec/models/project_team_spec.rb spec/models/namespace/traversal_hierarchy_spec.rb spec/uploaders/design_management/design_v432x230_uploader_spec.rb spec/finders/notes_finder_spec.rb spec/services/event_create_service_spec.rb spec/lib/gitlab/email/handler/service_desk_handler_spec.rb spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb spec/finders/ci/runners_finder_spec.rb spec/models/ci/ref_spec.rb spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb spec/services/database/consistency_check_service_spec.rb spec/lib/gitlab/background_migration/backfill_vulnerability_reads_cluster_agent_spec.rb spec/lib/gitlab/url_builder_spec.rb spec/lib/banzai/pipeline/wiki_pipeline_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb spec/models/suggestion_spec.rb spec/finders/ci/pipelines_finder_spec.rb spec/components/pajamas/button_component_spec.rb spec/lib/gitlab/ci/config/entry/reports_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb spec/lib/gitlab/usage/metric_definition_spec.rb spec/models/ci/secure_file_spec.rb spec/routing/import_routing_spec.rb spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb spec/models/integrations/buildkite_spec.rb spec/services/namespaces/in_product_marketing_emails_service_spec.rb spec/models/user_detail_spec.rb spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb spec/haml_lint/linter/documentation_links_spec.rb spec/finders/packages/build_infos_finder_spec.rb spec/services/snippets/update_statistics_service_spec.rb spec/serializers/ci/trigger_entity_spec.rb spec/services/issuable/discussions_list_service_spec.rb spec/lib/gitlab/import_export/merge_request_parser_spec.rb spec/services/projects/operations/update_service_spec.rb spec/services/protected_branches/cache_service_spec.rb spec/lib/gitlab/deploy_key_access_spec.rb spec/presenters/ci/stage_presenter_spec.rb spec/graphql/mutations/merge_requests/create_spec.rb spec/serializers/diff_file_entity_spec.rb spec/graphql/mutations/issues/set_escalation_status_spec.rb spec/models/ci/commit_with_pipeline_spec.rb spec/models/concerns/participable_spec.rb spec/policies/award_emoji_policy_spec.rb spec/models/ci/sources/pipeline_spec.rb spec/lib/gitlab/shell_spec.rb spec/lib/gitlab/repository_cache_spec.rb spec/lib/gitlab/ci/config/entry/trigger_spec.rb spec/lib/gitlab/ci/config/external/file/remote_spec.rb spec/graphql/mutations/design_management/delete_spec.rb spec/finders/crm/organizations_finder_spec.rb spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb spec/lib/gitlab/lfs_token_spec.rb spec/services/error_tracking/issue_update_service_spec.rb spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb spec/services/milestones/issues_count_service_spec.rb spec/views/admin/dashboard/index.html.haml_spec.rb spec/services/projects/move_lfs_objects_projects_service_spec.rb spec/finders/groups/accepting_project_shares_finder_spec.rb spec/finders/clusters/agents_finder_spec.rb spec/services/projects/move_project_group_links_service_spec.rb spec/services/users/create_service_spec.rb spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb spec/workers/namespaces/root_statistics_worker_spec.rb spec/lib/gitlab/conflict/file_collection_spec.rb spec/finders/packages/go/version_finder_spec.rb spec/workers/namespaces/process_sync_events_worker_spec.rb spec/models/packages/debian/project_component_spec.rb spec/workers/x509_issuer_crl_check_worker_spec.rb spec/services/personal_access_tokens/create_service_spec.rb spec/lib/gitlab/github_import/representation/note_spec.rb spec/views/projects/diffs/_viewer.html.haml_spec.rb spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb spec/lib/gitlab/ci/reports/test_report_spec.rb spec/services/discussions/capture_diff_note_position_service_spec.rb spec/lib/gitlab/rack_attack_spec.rb spec/lib/gitlab/auth/ldap/adapter_spec.rb spec/models/ci/runner_namespace_spec.rb spec/services/packages/generic/create_package_file_service_spec.rb spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb spec/finders/ci/job_artifacts_finder_spec.rb spec/models/concerns/sanitizable_spec.rb spec/lib/gitlab/untrusted_regexp_spec.rb spec/lib/banzai/filter/wiki_link_filter_spec.rb spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb spec/lib/gitlab/http_connection_adapter_spec.rb spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb spec/graphql/mutations/groups/update_spec.rb spec/channels/application_cable/connection_spec.rb spec/tooling/danger/feature_flag_spec.rb spec/helpers/groups/observability_helper_spec.rb spec/tooling/danger/product_intelligence_spec.rb spec/lib/banzai/renderer_spec.rb spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb spec/graphql/mutations/todos/mark_done_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb spec/services/issuable/destroy_label_links_service_spec.rb spec/models/concerns/bulk_insert_safe_spec.rb spec/lib/gitlab/metrics/global_search_slis_spec.rb spec/graphql/resolvers/project_pipeline_resolver_spec.rb spec/lib/gitlab/config/loader/yaml_spec.rb spec/lib/grafana/time_window_spec.rb spec/workers/run_pipeline_schedule_worker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb spec/serializers/user_serializer_spec.rb spec/lib/gitlab/gitaly_client/remote_service_spec.rb spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb spec/uploaders/lfs_object_uploader_spec.rb spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb spec/lib/gitlab/auth/key_status_checker_spec.rb spec/services/pages_domains/create_acme_order_service_spec.rb spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb spec/lib/sidebars/projects/menus/deployments_menu_spec.rb spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb spec/services/customer_relations/contacts/update_service_spec.rb spec/services/system_notes/alert_management_service_spec.rb spec/presenters/packages/helm/index_presenter_spec.rb spec/models/concerns/has_environment_scope_spec.rb spec/models/preloaders/project_policy_preloader_spec.rb spec/finders/prometheus_metrics_finder_spec.rb spec/models/packages/event_spec.rb spec/lib/system_check/orphans/namespace_check_spec.rb spec/lib/gitlab/ci/input/arguments/required_spec.rb spec/lib/gitlab/error_tracking/processor/sanitize_error_message_processor_spec.rb spec/lib/sidebars/projects/super_sidebar_panel_spec.rb spec/lib/api/entities/merge_request_changes_spec.rb spec/services/users/email_verification/validate_token_service_spec.rb spec/lib/gitlab/safe_request_loader_spec.rb spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb spec/finders/issuables/crm_contact_filter_spec.rb spec/models/system_note_metadata_spec.rb spec/services/dependency_proxy/group_settings/update_service_spec.rb spec/lib/gitlab/cycle_analytics/summary/value_spec.rb spec/graphql/mutations/clusters/agents/delete_spec.rb spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb spec/rubocop/cop/database/disable_referential_integrity_spec.rb spec/validators/system_hook_url_validator_spec.rb spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb spec/rubocop/cop/migration/update_column_in_batches_spec.rb spec/presenters/key_presenter_spec.rb spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb spec/lib/gitlab/phabricator_import/conduit/tasks_response_spec.rb spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb spec/lib/gitlab/auth/result_spec.rb spec/graphql/resolvers/snippets/blobs_resolver_spec.rb spec/graphql/types/blob_viewers/type_enum_spec.rb spec/lib/gitlab/sql/cte_spec.rb spec/policies/release_policy_spec.rb spec/services/timelogs/delete_service_spec.rb spec/workers/ci/archive_trace_worker_spec.rb spec/lib/gitlab/prometheus/internal_spec.rb spec/presenters/packages/nuget/service_index_presenter_spec.rb spec/graphql/subscriptions/issuable_updated_spec.rb spec/lib/gitlab/ci/status/build/created_spec.rb spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb spec/lib/gitlab/import/import_failure_service_spec.rb spec/views/projects/milestones/index.html.haml_spec.rb spec/models/diff_viewer/server_side_spec.rb spec/components/pajamas/spinner_component_spec.rb spec/lib/gitlab/email/service_desk_receiver_spec.rb spec/services/emails/create_service_spec.rb spec/services/metrics/users_starred_dashboards/delete_service_spec.rb spec/lib/gitlab/ci/templates/MATLAB_spec.rb spec/services/chat_names/find_user_service_spec.rb spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb spec/lib/sidebars/admin/menus/labels_menu_spec.rb spec/lib/gitlab/gitlab_import/project_creator_spec.rb spec/models/packages/npm_spec.rb spec/services/pages_domains/retry_acme_order_service_spec.rb spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb spec/views/shared/snippets/_snippet.html.haml_spec.rb spec/lib/gitlab/git_access_design_spec.rb spec/services/work_items/build_service_spec.rb spec/rubocop/cop/active_record_association_reload_spec.rb spec/models/work_items/widgets/milestone_spec.rb spec/workers/gitlab/github_gists_import/start_import_worker_spec.rb spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb spec/lib/gitlab/kubernetes/ingress_spec.rb spec/serializers/feature_flag_summary_serializer_spec.rb spec/lib/gitlab/ci/ansi2json/state_spec.rb spec/models/u2f_registration_spec.rb spec/models/concerns/safely_change_column_default_spec.rb spec/lib/api/validations/validators/integer_or_custom_value_spec.rb spec/lib/gitlab/checks/timed_logger_spec.rb spec/lib/gitlab/github_import/representation/to_hash_spec.rb spec/lib/gitlab/pages/settings_spec.rb spec/services/ci/process_pipeline_service_spec.rb spec/lib/gitlab/event_store/event_spec.rb spec/workers/gitlab/github_import/attachments/import_release_worker_spec.rb spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb spec/lib/gitlab/github_import/representation/diff_notes/discussion_id_spec.rb spec/lib/banzai/filter/blockquote_fence_filter_spec.rb spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb spec/lib/gitlab/database/schema_migrations/migrations_spec.rb spec/db/development/import_common_metrics_spec.rb spec/lib/gitlab/metrics/memory_spec.rb spec/lib/banzai/filter/markdown_engines/base_spec.rb spec/graphql/types/container_repository_sort_enum_spec.rb spec/graphql/types/repository/blob_type_spec.rb spec/initializers/sawyer_patch_spec.rb spec/lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin_spec.rb spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb spec/lib/api/entities/bulk_imports/entity_spec.rb spec/lib/gitlab/phabricator_import/conduit/users_response_spec.rb spec/services/base_container_service_spec.rb spec/serializers/admin/user_entity_spec.rb spec/lib/gitlab/database/migrations/observers/query_details_spec.rb spec/graphql/types/ci/test_case_status_enum_spec.rb spec/lib/gitlab/memory/reports_uploader_spec.rb spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb spec/helpers/ci/catalog/resources_helper_spec.rb spec/helpers/container_registry_helper_spec.rb spec/workers/onboarding/user_added_worker_spec.rb spec/lib/gitlab/ci/config/normalizer/factory_spec.rb spec/models/concerns/blocks_unsafe_serialization_spec.rb spec/lib/sidebars/uncategorized_menu_spec.rb spec/graphql/types/notes/deleted_note_type_spec.rb spec/models/blob_viewer/podspec_json_spec.rb spec/lib/api/entities/projects/repository_storage_move_spec.rb spec/lib/sidebars/admin/panel_spec.rb spec/graphql/types/work_items/widgets/notes_type_spec.rb spec/graphql/types/ci/project_variable_connection_type_spec.rbKnapsack report generator started!1228warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.1230Run options: exclude {:quarantine=>true, :level=>"background_migration"}1231Test environment set up in 0.799231329 seconds1232MergeRequest1233 associations1234 is expected to belong to target_project class_name => Project required: false1235 is expected to belong to source_project class_name => Project required: false1236 is expected to belong to merge_user class_name => User required: false1237 is expected to belong to head_pipeline class_name => Ci::Pipeline required: false inverse_of => merge_requests_as_head_pipeline1238 is expected to have many assignees through merge_request_assignees1239 is expected to have many reviewers through merge_request_reviewers1240 is expected to have many merge_request_diffs1241 is expected to have many user_mentions class_name => MergeRequestUserMention1242 is expected to belong to milestone required: false1243 is expected to have many resource_milestone_events1244 is expected to have many resource_state_events1245 is expected to have many draft_notes1246 is expected to have many reviews inverse_of => merge_request1247 is expected to have many reviewed_by_users through reviews source => author1248 is expected to have one cleanup_schedule inverse_of => merge_request1249 is expected to have many created_environments class_name => Environment inverse_of => merge_request1250 is expected to have many assignment_events class_name => ResourceEvents::MergeRequestAssignmentEvent inverse_of => merge_request1251 for forks1252 does not load another project due to inverse relationship1253 finds the associated merge request1254 #reviewed_by_users1255 when the same user has several reviews1256 returns distinct users1257 .from_and_to_forks1258 returns only MRs from and to forks (with no internal MRs)1259 .order_merged_at_asc1260 returns MRs ordered by merged_at ascending1261 .order_merged_at_desc1262 returns MRs ordered by merged_at descending1263 .order_closed_at_asc1264 returns MRs ordered by closed_at ascending1265 .order_closed_at_desc1266 returns MRs ordered by closed_at descending1267 .with_jira_issue_keys1268 is expected to contain exactly #<MergeRequest id:16 namespace1/project1!1> and #<MergeRequest id:17 namespace1/project1!2>1269 is expected not to include #<MergeRequest id:18 namespace1/project1!3>1270 scopes1271 .preload_target_project_with_namespace1272 returns MR with the target project's namespace preloaded1273 .review_requested1274 returns MRs that have any review requests1275 .no_review_requested1276 returns MRs that have no review requests1277 .review_requested_to1278 returns MRs that the user has been requested to review1279 .no_review_requested_to1280 returns MRs that the user has not been requested to review1281 .drafts1282 returns MRs where draft == true1283 .without_hidden1284 only returns public issuables1285 when feature flag is disabled1286 returns public and hidden issuables1287 #squash?1288 disabled in database1289 is expected to be falsy1290 enabled in database1291 is expected to be truthy1292 #default_squash_commit_message1293 returns the merge request title1294 uses template from target project1295 modules1296 is expected to includes the Issuable module1297 is expected to includes the Referable module1298 is expected to includes the Sortable module1299 is expected to includes the Taskable module1300 is expected to includes the MilestoneEventable module1301 is expected to includes the StateEventable module1302 behaves like AtomicInternalId1303 .has_internal_id1304 Module inclusion1305 is expected to includes the AtomicInternalId module1306 Validation1307 when presence validation is required1308 when creating an object1309 raises an error if the internal id is blank1310 when updating an object1311 raises an error if the internal id is blank1312 when presence validation is not required1313 when creating an object1314 does not raise an error if the internal id is blank (PENDING: No reason given)1315 when updating an object1316 does not raise an error if the internal id is blank (PENDING: No reason given)1317 Creating an instance1318 saves a new instance properly1319 internal id generation1320 calls InternalId.generate_next and sets internal id attribute1321 does not overwrite an existing internal id1322 when the instance has an internal ID set1323 calls InternalId.update_last_value and sets the `last_value` to that of the instance1324 unsetting the instance internal id on rollback1325 when the internal id has been changed1326 when the internal id is automatically set1327 clears it on the instance1328 when the internal id is manually set1329 does not clear it on the instance1330 when the internal id has not been changed1331 preserves the value on the instance1332 supply of internal ids1333 provides a persistent supply of IID values, sensitive to the current state1334 #reset_scope_internal_id_attribute1335 rewinds the allocated IID1336 allocates the same IID1337 validation1338 is expected to validate that :target_branch cannot be empty/falsy1339 is expected to validate that :source_branch cannot be empty/falsy1340 Validation of merge user with Merge When Pipeline Succeeds1341 allows user to be nil when the feature is disabled1342 is invalid without merge user1343 is valid with merge user1344 for branch1345 branch_name: "foo", valid: true1346 validates source_branch1347 validates target_branch1348 branch_name: "foo:bar", valid: false1349 validates source_branch1350 validates target_branch1351 branch_name: "+foo:bar", valid: false1352 validates source_branch1353 validates target_branch1354 branch_name: "foo bar", valid: false1355 validates source_branch1356 validates target_branch1357 branch_name: "-foo", valid: false1358 validates source_branch1359 validates target_branch1360 branch_name: "HEAD", valid: true1361 validates source_branch1362 validates target_branch1363 branch_name: "refs/heads/master", valid: true1364 validates source_branch1365 validates target_branch1366 for forks1367 allows merge requests for sibling-forks1368 #validate_target_project1369 when projects #merge_requests_enabled? is true1370 is expected to eq true1371 when projects #merge_requests_enabled? is false1372 is invalid1373 when #import? is true1374 is expected to eq true1375 callbacks1376 #ensure_merge_request_diff1377 when skip_ensure_merge_request_diff is true1378 does not create a merge_request_diff after create1379 when skip_ensure_merge_request_diff is false1380 creates merge_request_diff after create1381 #ensure_merge_request_metrics1382 creates metrics after saving1383 does not duplicate metrics for a merge request1384 does not create duplicated metrics records when MR is concurrently updated1385 syncs the `target_project_id` to the metrics record1386 #set_draft_status1387 MR is a draft1388 sets draft to true1389 MR is not a draft1390 sets draft to true1391 respond to1392 is expected to respond to #unchecked?1393 is expected to respond to #checking?1394 is expected to respond to #can_be_merged?1395 is expected to respond to #cannot_be_merged?1396 is expected to respond to #merge_params1397 is expected to respond to #merge_when_pipeline_succeeds1398 .by_commit_sha1399 with sha contained in latest merge request diff1400 returns merge requests1401 with sha contained not in latest merge request diff1402 returns empty requests1403 with sha not contained in1404 returns empty result1405 .by_merge_commit_sha1406 returns merge requests that match the given merge commit1407 .by_squash_commit_sha1408 returns merge requests that match the given squash commit1409 .by_merge_or_squash_commit_sha1410 returns merge requests that match the given squash and merge commits1411 .join_metrics1412 when a no target_project_id is available1413 moves target_project_id condition to the merge request metrics1414 when a target_project_id is present in the where conditions1415 moves target_project_id condition to the merge request metrics1416 .by_related_commit_sha1417 when commit is a squash commit1418 is expected to eq [#<MergeRequest id:50 namespace1/project1!1>]1419 when commit is a part of the merge request1420 is expected to eq [#<MergeRequest id:51 namespace1/project1!1>]1421 when commit is a merge commit1422 is expected to eq [#<MergeRequest id:52 namespace1/project1!1>]1423 when commit is not found1424 is expected to be empty1425 when commit is part of the merge request and a squash commit at the same time1426 is expected to eq [#<MergeRequest id:53 namespace1/project1!1>]1427 .in_projects1428 returns the merge requests for a set of projects1429 .set_latest_merge_request_diff_ids!1430 sets IDs for merge requests, whether they are already set or not1431 .recent_target_branches1432 returns target branches sort by updated at desc1433 .sort_by_attribute1434 merged_at1435 sorts asc1436 sorts desc1437 closed_at1438 sorts asc1439 sorts desc1440 sorts asc when its closed_at1441 title1442 sorts asc1443 sorts desc1444 time to merge calculations1445 .total_time_to_merge1446 returns the sum of the time to merge for all merged MRs1447 when merged_at is earlier than created_at1448 returns nil1449 when scoped with :merged_before and :merged_after1450 excludes merge requests outside of the date range1451 #target_branch_sha1452 returns memoized value1453 when the target branch does not exist1454 returns nil1455 #card_attributes1456 includes the author name1457 includes the assignees name1458 #assignee_or_author?1459 returns true for a user that is assigned to a merge request1460 returns true for a user that is the author of a merge request1461 returns false for a user that is not the assignee or author1462 #visible_closing_issues_for1463 shows only allowed issues to guest1464 shows only allowed issues to developer1465 when external issue tracker is enabled1466 calls non #closes_issues to retrieve data1467 #cache_merge_request_closes_issues!1468 caches closed issues1469 does not cache closed issues when merge request is closed1470 does not cache closed issues when merge request is merged1471 when both internal and external issue trackers are enabled1472 does not cache issues from external trackers1473 caches an internal issue1474 when only external issue tracker enabled1475 does not cache issues from external trackers1476 does not cache an internal issue1477 caches issues from another project with issues enabled1478 #source_branch_sha1479 returns memoized value1480 with diffs1481 returns the sha of the source branch last commit1482 without diffs1483 returns the sha of the source branch last commit1484 when there is a tag name matching the branch name1485 returns the sha of the source branch last commit1486 when the merge request is being created1487 returns nil1488 #to_reference1489 returns a String reference to the object1490 supports a cross-project reference1491 returns a String reference with the full path1492 #raw_diffs1493 when there are MR diffs1494 delegates to the MR diffs1495 when there are no MR diffs1496 delegates to the compare object1497 #diffs1498 when there are MR diffs1499 delegates to the MR diffs1500 when there are no MR diffs1501 delegates to the compare object, setting expanded: true1502 #note_positions_for_paths1503 returns a Gitlab::Diff::PositionCollection1504 within all diff files1505 returns correct positions1506 within specific diff file1507 returns correct positions1508 within no diff files1509 returns no positions1510 when user is given1511 returns notes and draft notes positions1512 when user is not given1513 returns notes positions1514 #discussions_diffs1515 with commit diff note1516 behaves like discussions diffs collection1517 initializes Gitlab::DiscussionsDiff::FileCollection with correct data1518 eager loads relations1519 with merge request diff note1520 behaves like discussions diffs collection1521 initializes Gitlab::DiscussionsDiff::FileCollection with correct data1522 eager loads relations1523 #diff_size1524 when there are MR diffs1525 returns the correct count1526 returns the correct overflow count1527 does not perform highlighting1528 when there are no MR diffs1529 returns the correct count1530 returns the correct overflow count1531 does not perform highlighting1532 #modified_paths1533 when past_merge_request_diff is specified1534 returns affected file paths from specified past_merge_request_diff1535 when compare is present1536 and diff_stats are not present1537 returns affected file paths from compare1538 and diff_stats are present1539 returns affected file paths from compare1540 when no arguments provided1541 returns affected file paths for merge_request_diff1542 #new_paths1543 returns new path of changed files1544 #related_notes1545 includes notes for commits1546 includes notes for commits from target project as well1547 excludes system notes for commits1548 #for_fork?1549 returns true if the merge request is for a fork1550 returns false if is not for a fork1551 #closes_issues1552 accesses the set of issues that will be closed on acceptance1553 only lists issues as to be closed if it targets the default branch1554 ignores referenced issues when auto-close is disabled1555 #issues_mentioned_but_not_closing1556 detects issues mentioned in description but not closed1557 when the project has an external issue tracker1558 detects issues mentioned in description but not closed1559 #draft?1560 detects the 'draft:' prefix1561 detects the 'Draft: ' prefix1562 detects the '[Draft]' prefix1563 detects the '[DRAFT] ' prefix1564 returns false1565 when 'WIP:' prefixes the title1566 when 'WIP: ' prefixes the title1567 when '[WIP]' prefixes the title1568 when '[WIP] ' prefixes the title1569 when ' [WIP] WIP: [WIP] WIP:' prefixes the title1570 when 'WIP ' prefixes the title1571 when '(WIP)' prefixes the title1572 when 'draft' prefixes the title1573 when 'Draft' prefixes the title1574 when 'Draft -' prefixes the title1575 when 'draft - ' prefixes the title1576 when 'Draft ' prefixes the title1577 when 'draft ' prefixes the title1578 when merge request title is simply 'WIP'1579 when WIP is in the middle of the title1580 when WIP is at the end of the title1581 when title contains words starting with WIP1582 when title contains words containing with WIP1583 when merge request title is simply 'Draft'1584 when Draft is in the middle of the title1585 when Draft is at the end of the title1586 when title contains words starting with Draft1587 when title contains words containing with Draft1588 when Draft: in the middle of the title1589 when the title does not contain draft1590 is aliased to #draft?1591 #draftless_title1592 removes a 'draft:' prefix1593 is satisfies the #work_in_progress? method1594 removes a 'Draft: ' prefix1595 is satisfies the #work_in_progress? method1596 removes a '[Draft]' prefix1597 is satisfies the #work_in_progress? method1598 removes a '[DRAFT] ' prefix1599 is satisfies the #work_in_progress? method1600 doesn't remove a 'WIP:' prefix1601 doesn't remove a 'WIP: ' prefix1602 doesn't remove a '[WIP]' prefix1603 doesn't remove a '[WIP] ' prefix1604 doesn't remove a '[WIP] WIP: [WIP] WIP:' prefix1605 removes only draft prefix from the MR title1606 does not remove WIP in the middle of the title1607 does not remove Draft in the middle of the title1608 does not remove WIP at the end of the title1609 does not remove Draft at the end of the title1610 #draft_title1611 adds the Draft: prefix to the title1612 does not add the Draft: prefix multiple times1613 is satisfies the #work_in_progress? method1614 #permits_force_push?1615 when source branch is not protected1616 is expected to be truthy1617 when source branch is protected1618 when force push is not allowed1619 is expected to be falsey1620 when force push is allowed1621 is expected to be truthy1622 #can_remove_source_branch?1623 can't be removed when its a protected branch1624 can't be removed because source project has been deleted1625 can't remove a root ref1626 is unable to remove the source branch for a project the user cannot push to1627 can be removed if the last commit is the head of the source branch1628 cannot be removed if the last commit is not also the head of the source branch1629 #source_branch_exists?1630 when the source project is set1631 returns true when the branch exists1632 when the source project is not set1633 returns false1634 #default_merge_commit_message1635 includes merge information as the title1636 includes its title in the body1637 includes its closed issues in the body1638 includes its reference in the body1639 excludes multiple linebreak runs when description is blank1640 includes its description in the body1641 does not includes its description in the body1642 uses template from target project1643 ignores template when include_description is true1644 #auto_merge_strategy1645 is expected to eq "merge_when_pipeline_succeeds"1646 when auto merge is disabled1647 is expected to be nil1648 #committers1649 returns all the committers of every commit in the merge request1650 returns an empty array if no committer is associated with a user1651 #diverged_commits_count1652 when the target branch does not exist anymore1653 does not crash1654 returns 01655 diverged on same repository1656 counts commits that are on target branch but not on source branch1657 diverged on fork1658 counts commits that are on target branch but not on source branch1659 rebased on fork1660 counts commits that are on target branch but not on source branch1661 caching1662 caches the output1663 invalidates the cache when the source sha changes1664 invalidates the cache when the target sha changes1665 behaves like an editable mentionable1666 creates new cross-reference notes when the mentionable text is edited1667 behaves like a mentionable1668 generates a descriptive back-reference1669 extracts references from its reference property1670 creates cross-reference notes1671 when there are cached markdown fields1672 sends in cached markdown fields when appropriate1673 when there are cached markdown fields1674 refreshes markdown cache if necessary1675 when the markdown cache is stale1676 persists the refreshed cache so that it does not have to be refreshed every time1677 behaves like a Taskable1678 with multiple tasks1679 returns the correct task status1680 #tasks?1681 returns true when object has tasks1682 returns false when object has no tasks1683 with nested tasks1684 returns the correct task status1685 with an incomplete task1686 returns the correct task status1687 with tasks that are not formatted correctly1688 returns the correct task status1689 with a complete task1690 returns the correct task status1691 with tasks in blockquotes1692 returns the correct task status1693 #commit_shas1694 persisted merge request1695 with a limit1696 returns a limited number of commit shas1697 without a limit1698 returns all commit shas of the merge request diff1699 new merge request1700 returns diff_head_sha as an array1701 compare commits1702 without a limit1703 returns all shas of compare commits1704 with a limit1705 returns a limited number of shas1706 head pipeline1707 #head_pipeline1708 returns nil for MR without head_pipeline_id1709 when the source project does not exist1710 returns nil1711 #actual_head_pipeline1712 returns nil for MR with old pipeline1713 returns the pipeline for MR with recent pipeline1714 returns the pipeline for MR with recent merge request pipeline1715 returns nil when source project does not exist1716 #merge_pipeline1717 returns nil when not merged1718 when the MR is merged1719 and there is a merge commit1720 returns the pipeline associated with that merge request1721 and there is no merge commit, but there is a diff head1722 returns the pipeline associated with that merge request1723 and there is no merge commit, but there is a squash commit1724 returns the pipeline associated with that merge request1725 #has_ci?1726 has ci1727 returns true if MR has head_pipeline_id and commits1728 returns true if MR has any pipeline and commits1729 returns true if MR has CI integration and commits1730 has no ci1731 returns false if MR has no CI integration nor pipeline, and no commits1732 #update_head_pipeline1733 when there is a pipeline with the diff head sha1734 updates the head pipeline1735 when merge request has already had head pipeline1736 when failed to find an actual head pipeline1737 does not update the current head pipeline1738 when detached merge request pipeline is run on head ref of the merge request1739 sets the head ref of the merge request to the pipeline ref1740 updates correctly even though the target branch name of the merge request is different from the pipeline ref1741 when sha is not HEAD of the source branch1742 does not update head pipeline1743 when there are no pipelines with the diff head sha1744 does not update the head pipeline1745 #has_test_reports?1746 when head pipeline has test reports1747 is expected to be truthy1748 when head pipeline does not have test reports1749 is expected to be falsey1750 #has_accessibility_reports?1751 when head pipeline has an accessibility reports1752 is expected to be truthy1753 when head pipeline does not have accessibility reports1754 is expected to be falsey1755 #has_coverage_reports?1756 when head pipeline has coverage reports1757 is expected to be truthy1758 when head pipeline does not have coverage reports1759 is expected to be falsey1760 #has_codequality_mr_diff_report?1761 when head pipeline has codequality mr diff report1762 is expected to be truthy1763 when head pipeline does not have codeqquality mr diff report1764 is expected to be falsey1765 #has_codequality_reports?1766 when head pipeline has a codequality report1767 is expected to be truthy1768 when head pipeline does not have a codequality report1769 is expected to be falsey1770 #has_terraform_reports?1771 when head pipeline has terraform reports1772 returns true1773 when head pipeline does not have terraform reports1774 returns false1775 #has_sast_reports?1776 when head pipeline has sast reports1777 is expected to be truthy1778 when head pipeline does not have sast reports1779 is expected to be falsey1780 #has_secret_detection_reports?1781 when head pipeline has secret detection reports1782 is expected to be truthy1783 when head pipeline does not have secrets detection reports1784 is expected to be falsey1785 #calculate_reactive_cache1786 when given an unknown service class name1787 raises a NameError exception1788 when given a known service class name1789 does not raises a NameError exception1790 #find_exposed_artifacts1791 when head pipeline has exposed artifacts1792 when reactive cache worker is parsing results asynchronously1793 returns status1794 when reactive cache worker is inline1795 returns status and data1796 when an error occurrs1797 returns an error message1798 when cached results is not latest1799 raises and InvalidateReactiveCache error1800 #find_coverage_reports1801 when head pipeline has coverage reports1802 when reactive cache worker is parsing results asynchronously1803 returns status1804 when reactive cache worker is inline1805 returns status and data1806 when an error occurrs1807 returns an error message1808 when cached results is not latest1809 raises and InvalidateReactiveCache error1810 #find_codequality_mr_diff_reports1811 when head pipeline has coverage reports1812 when reactive cache worker is parsing results asynchronously1813 returns status1814 when reactive cache worker is inline1815 returns status and data1816 when an error occurrs1817 returns an error message1818 when cached results is not latest1819 raises and InvalidateReactiveCache error1820 #compare_test_reports1821 when head pipeline has test reports1822 when reactive cache worker is parsing asynchronously1823 returns status1824 when reactive cache worker is inline1825 returns status and data1826 when cached results is not latest1827 raises and InvalidateReactiveCache error1828 when head pipeline does not have test reports1829 returns status and error message1830 #compare_accessibility_reports1831 when head pipeline has accessibility reports1832 when reactive cache worker is parsing results asynchronously1833 returns parsing status1834 when reactive cache worker is inline1835 returns parsed status1836 when an error occurrs1837 returns an error status1838 when cached result is not latest1839 raises an InvalidateReactiveCache error1840 #compare_codequality_reports1841 when head pipeline has codequality report1842 when reactive cache worker is parsing results asynchronously1843 returns parsing status1844 when reactive cache worker is inline1845 returns parsed status1846 when an error occurrs1847 returns an error status1848 when cached result is not latest1849 raises an InvalidateReactiveCache error1850 #all_commit_shas1851 when merge request is persisted1852 with a completely different branch1853 behaves like returning all SHA1854 returns all SHAs from all merge_request_diffs1855 with a branch having no difference1856 behaves like returning all SHA1857 returns all SHAs from all merge_request_diffs1858 when merge request is not persisted1859 when compare commits are set in the service1860 returns commits from compare commits temporary data1861 when compare commits are not set in the service1862 returns array with diff head sha element only1863 #short_merge_commit_sha1864 returns short id when there is a merge_commit_sha1865 returns nil when there is no merge_commit_sha1866 #merged_commit_sha1867 returns nil when not merged1868 when the MR is merged1869 returns merge_commit_sha when there is a merge_commit_sha1870 returns squash_commit_sha when there is a squash_commit_sha1871 returns diff_head_sha when there are no merge_commit_sha and squash_commit_sha1872 #short_merged_commit_sha1873 when merged_commit_sha is nil1874 returns nil1875 when merged_commit_sha is present1876 returns shortened merged_commit_sha1877 #can_be_reverted?1878 when there is no merge_commit for the MR1879 returns false1880 when the MR has been merged1881 when there is no revert commit1882 returns true1883 when there is no merged_at for the MR1884 returns true1885 when there is a revert commit1886 but merged at timestamp cannot be found1887 returns false1888 when the revert commit is mentioned in a note after the MR was merged1889 returns false1890 when there is no merged_at for the MR1891 returns false1892 when the revert commit is mentioned in a note just before the MR was merged1893 returns false1894 when the revert commit is mentioned in a note long before the MR was merged1895 returns true1896 #merged_at1897 when MR is not merged1898 returns nil1899 when metrics has merged_at data1900 returns metrics merged_at1901 when merged event is persisted, but no metrics merged_at is persisted1902 returns merged event creation date1903 when no metrics or merge event exists1904 when resource event for the merge exists1905 returns the resource event creation date1906 when system note for the merge exists1907 returns the merging note creation date1908 #participants1909 includes the merge request author1910 includes the authors of the notes1911 cached counts1912 updates when assignees change1913 #merge_async1914 enqueues MergeWorker job and updates merge_jid1915 #rebase_async1916 atomically enqueues a RebaseWorker job and updates rebase_jid1917 refuses to enqueue a job if a rebase is in progress1918 refuses to enqueue a job if the MR is not open1919 raises ActiveRecord::LockWaitTimeout after 6 tries1920 #mergeable?1921 returns false if #mergeable_state? is false1922 return true if #mergeable_state? is true and the MR #can_be_merged? is true1923 return true if #mergeable_state? is true and the MR #can_be_merged? is false1924 with skip_ci_check option1925 mergeable_ci_state: false, skip_ci_check: false, expected_mergeable: false1926 overrides mergeable_ci_state?1927 mergeable_ci_state: false, skip_ci_check: true, expected_mergeable: true1928 overrides mergeable_ci_state?1929 mergeable_ci_state: true, skip_ci_check: false, expected_mergeable: true1930 overrides mergeable_ci_state?1931 mergeable_ci_state: true, skip_ci_check: true, expected_mergeable: true1932 overrides mergeable_ci_state?1933 with skip_discussions_check option1934 mergeable_discussions_state: false, skip_discussions_check: false, expected_mergeable: false1935 overrides mergeable_discussions_state?1936 mergeable_discussions_state: false, skip_discussions_check: true, expected_mergeable: true1937 overrides mergeable_discussions_state?1938 mergeable_discussions_state: true, skip_discussions_check: false, expected_mergeable: true1939 overrides mergeable_discussions_state?1940 mergeable_discussions_state: true, skip_discussions_check: true, expected_mergeable: true1941 overrides mergeable_discussions_state?1942 #check_mergeability1943 if the merge status is unchecked1944 behaves like method that executes MergeabilityCheckService1945 executes MergeabilityCheckService1946 when async is true1947 executes MergeabilityCheckService asynchronously1948 if the merge status is checking1949 behaves like method that executes MergeabilityCheckService1950 executes MergeabilityCheckService1951 when async is true1952 executes MergeabilityCheckService asynchronously1953 if the merge status is checked1954 does not call MergeabilityCheckService1955 #mergeable_state?1956 behaves like for mergeable_state1957 checks if merge request can be merged1958 when not open1959 returns false1960 when working in progress1961 returns false1962 when broken1963 returns false1964 when failed1965 when #mergeable_ci_state? is false1966 returns false1967 returns true when skipping ci check1968 when #mergeable_discussions_state? is false1969 returns false1970 returns true when skipping discussions check1971 #public_merge_status1972 status: "cannot_be_merged_rechecking", public_status: "checking"1973 is expected to eq "checking"1974 status: "preparing", public_status: "checking"1975 is expected to eq "checking"1976 status: "checking", public_status: "checking"1977 is expected to eq "checking"1978 status: "cannot_be_merged", public_status: "cannot_be_merged"1979 is expected to eq "cannot_be_merged"1980 #head_pipeline_active?1981 when project lacks a head_pipeline relation1982 returns false1983 when project has a head_pipeline relation1984 accesses the value from the head_pipeline1985 #actual_head_pipeline_success?1986 when project lacks an actual_head_pipeline relation1987 returns false1988 when project has a actual_head_pipeline relation1989 accesses the value from the actual_head_pipeline1990 #actual_head_pipeline_active?1991 when project lacks an actual_head_pipeline relation1992 returns false1993 when project has a actual_head_pipeline relation1994 accesses the value from the actual_head_pipeline1995 #mergeable_ci_state?1996 when it is only allowed to merge when build is green1997 and a failed pipeline is associated1998 is expected to be falsey1999 and a successful pipeline is associated2000 is expected to be truthy2001 and a skipped pipeline is associated2002 is expected to be falsey2003 when no pipeline is associated2004 is expected to be falsey2005 when it is only allowed to merge when build is green or skipped2006 and a failed pipeline is associated2007 is expected to be falsey2008 and a successful pipeline is associated2009 is expected to be truthy2010 and a skipped pipeline is associated2011 is expected to be truthy2012 when no pipeline is associated2013 is expected to be falsey2014 when merges are not restricted to green builds2015 and a failed pipeline is associated2016 is expected to be truthy2017 when no pipeline is associated2018 is expected to be truthy2019 and a skipped pipeline is associated2020 is expected to be truthy2021 when no pipeline is associated2022 is expected to be truthy2023 #mergeable_discussions_state?2024 when project.only_allow_merge_if_all_discussions_are_resolved == true2025 with all discussions resolved2026 returns true2027 with unresolved discussions2028 returns false2029 with no discussions2030 returns true2031 when project.only_allow_merge_if_all_discussions_are_resolved == false2032 with unresolved discussions2033 returns true2034 #reload_diff2035 calls MergeRequests::ReloadDiffsService#execute with correct params2036 when using the after_update hook to update2037 when the branches are updated2038 uses the new heads to generate the diff2039 #update_diff_discussion_positions2040 updates diff discussion positions2041 does not call the resolve method2042 when resolve_outdated_diff_discussions is set2043 when the active discussion is resolved in the update2044 calls MergeRequests::ResolvedDiscussionNotificationService2045 when the active discussion does not have resolved in the update2046 does not call the resolve method2047 when the active discussion was already resolved2048 does not call the resolve method2049 #branch_merge_base_commit2050 source and target branch exist2051 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2052 is expected to be a kind of Commit2053 when the target branch does not exist2054 returns nil2055 #diff_refs2056 with diffs2057 does not touch the repository2058 returns expected diff_refs2059 when importing2060 returns MR diff_refs2061 #source_project_missing?2062 when the fork exists2063 is expected to be falsey2064 when the source project is the same as the target project2065 is expected to be falsey2066 when the fork does not exist2067 returns true2068 #merge_ongoing?2069 returns true when the merge request is locked2070 returns true when merge_id, MR is not merged and it has no running job2071 returns false when merge_jid is nil2072 returns false if MR is merged2073 returns false if there is no merge job running2074 #closed_or_merged_without_fork?2075 when the merge request is closed2076 returns false if the fork exist2077 returns true if the fork does not exist2078 when the merge request was merged2079 returns false if the fork exist2080 returns true if the fork does not exist2081 when the merge request is open2082 returns false2083 #reopenable?2084 when the merge request is closed2085 returns true2086 forked project2087 returns false if unforked2088 returns false if the source project is deleted2089 returns false if the merge request is merged2090 when the merge request is opened2091 returns false2092 #pipeline_coverage_delta2093 when both source and target branches have coverage information2094 returns the appropriate coverage delta2095 when target branch does not have coverage information2096 returns nil2097 when source branch does not have coverage information2098 returns nil for coverage_delta2099 neither source nor target branch has coverage information2100 returns nil for coverage_delta2101 #use_merge_base_pipeline_for_comparison?2102 when service class is Ci::CompareMetricsReportsService2103 is expected to be truthy2104 when service class is Ci::CompareCodequalityReportsService2105 is expected to be truthy2106 when service class is different2107 is expected to be falsey2108 #comparison_base_pipeline2109 when service class is Ci::CompareCodequalityReportsService2110 when merge request has a merge request pipeline2111 returns the merge_base_pipeline2112 when merge does not have a merge request pipeline2113 returns the base_pipeline2114 when service_class is different2115 returns the base_pipeline2116 #base_pipeline2117 returns latest pipeline for the target branch2118 #merge_base_pipeline2119 returns a pipeline pointing to a commit on the target ref2120 #has_commits?2121 returns true when merge request diff has commits2122 when commits_count is nil2123 returns false2124 #has_no_commits?2125 returns true when merge request diff has 0 commits2126 #merge_request_diff_for2127 runs a single query on the initial call, and none afterwards2128 with diff refs2129 returns the diffs2130 with a commit SHA2131 returns the diffs2132 #version_params_for2133 when the diff refs are for an older merge request version2134 returns the diff ID for the version to show2135 when the diff refs are for a comparison between merge request versions2136 returns the diff ID and start sha of the versions to compare2137 when the diff refs are not for a merge request version2138 returns nil2139 #fetch_ref!2140 fetches the ref correctly2141 #eager_fetch_ref!2142 fetches the ref correctly2143 only fetches the ref once after saved2144 removing a merge request2145 refreshes the number of open merge requests of the target project2146 behaves like throttled touch2147 #touch2148 updates the updated_at timestamp2149 updates the object at most once per minute2150 state machine transitions2151 #unlock_mr2152 updates merge request head pipeline and sets merge_jid to nil2153 #mark_as_preparing2154 when the status is unchecked2155 is a valid state transition2156 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2157 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2158 when the status is checking2159 is not a valid state transition2160 when the status is can_be_merged2161 is not a valid state transition2162 when the status is cannot_be_merged_recheck2163 is not a valid state transition2164 when the status is cannot_be_merged2165 is not a valid state transition2166 when the status is cannot_be_merged_rechecking2167 is not a valid state transition2168 #mark_as_unchecked2169 when the status is unchecked2170 is not a valid state transition2171 when the status is checking2172 is a valid state transition2173 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2174 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:345 namespace1/project154!1>) 1 time2175 when skip_merge_status_trigger is set to true2176 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2177 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2178 when transaction is not committed2179 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2180 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2181 when the status is can_be_merged2182 is a valid state transition2183 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2184 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:349 namespace1/project158!1>) 1 time2185 when skip_merge_status_trigger is set to true2186 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2187 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2188 when transaction is not committed2189 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2190 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2191 when the status is cannot_be_merged_recheck2192 is not a valid state transition2193 when the status is cannot_be_merged2194 is a valid state transition2195 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2196 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:354 namespace1/project163!1>) 1 time2197 when skip_merge_status_trigger is set to true2198 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2199 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2200 when transaction is not committed2201 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2202 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2203 when the status is cannot_be_merged_rechecking2204 is a valid state transition2205 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2206 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:358 namespace1/project167!1>) 1 time2207 when skip_merge_status_trigger is set to true2208 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2209 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2210 when transaction is not committed2211 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2212 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2213 #mark_as_checking2214 when the status is unchecked2215 is a valid state transition2216 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2217 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2218 when the status is checking2219 is not a valid state transition2220 when the status is can_be_merged2221 is not a valid state transition2222 when the status is cannot_be_merged_recheck2223 is a valid state transition2224 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2225 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2226 when the status is cannot_be_merged2227 is not a valid state transition2228 when the status is cannot_be_merged_rechecking2229 is not a valid state transition2230 #mark_as_mergeable2231 when the status is unchecked2232 is a valid state transition2233 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2234 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:370 namespace1/project179!1>) 1 time2235 when skip_merge_status_trigger is set to true2236 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2237 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2238 when transaction is not committed2239 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2240 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2241 when the status is checking2242 is a valid state transition2243 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2244 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:374 namespace1/project183!1>) 1 time2245 when skip_merge_status_trigger is set to true2246 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2247 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2248 when transaction is not committed2249 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2250 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2251 when the status is can_be_merged2252 is not a valid state transition2253 when the status is cannot_be_merged_recheck2254 is a valid state transition2255 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2256 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:379 namespace1/project188!1>) 1 time2257 when skip_merge_status_trigger is set to true2258 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2259 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2260 when transaction is not committed2261 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2262 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2263 when the status is cannot_be_merged2264 is not a valid state transition2265 when the status is cannot_be_merged_rechecking2266 is a valid state transition2267 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2268 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:384 namespace1/project193!1>) 1 time2269 when skip_merge_status_trigger is set to true2270 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2271 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2272 when transaction is not committed2273 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2274 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2275 #mark_as_unmergeable2276 when the status is unchecked2277 is a valid state transition2278 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2279 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:388 namespace1/project197!1>) 1 time2280 when skip_merge_status_trigger is set to true2281 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2282 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2283 when transaction is not committed2284 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2285 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2286 when the status is checking2287 is a valid state transition2288 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2289 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:392 namespace1/project201!1>) 1 time2290 when skip_merge_status_trigger is set to true2291 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2292 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2293 when transaction is not committed2294 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2295 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2296 when the status is can_be_merged2297 is not a valid state transition2298 when the status is cannot_be_merged_recheck2299 is a valid state transition2300 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2301 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:397 namespace1/project206!1>) 1 time2302 when skip_merge_status_trigger is set to true2303 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2304 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2305 when transaction is not committed2306 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2307 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2308 when the status is cannot_be_merged2309 is not a valid state transition2310 when the status is cannot_be_merged_rechecking2311 is a valid state transition2312 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2313 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:402 namespace1/project211!1>) 1 time2314 when skip_merge_status_trigger is set to true2315 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2316 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2317 when transaction is not committed2318 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2319 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2320 transition to closed2321 with merge error2322 clears merge error2323 transition to merged2324 resets the merge error2325 transition to cannot_be_merged2326 opened2327 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2328 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check2329 notifies conflict, whenever newly unmergeable2330 notifies conflict, whenever newly unmergeable with async mergeability check2331 does not notify whenever merge request is newly unmergeable due to other reasons2332 locked2333 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2334 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check2335 notifies conflict, whenever newly unmergeable2336 notifies conflict, whenever newly unmergeable with async mergeability check2337 does not notify whenever merge request is newly unmergeable due to other reasons2338 closed2339 does not notify2340 merged2341 does not notify2342 source branch is missing2343 does not raise error2344 check_state?2345 indicates whether MR is still checking for mergeability2346 #should_be_rebased?2347 returns false for the same source and target branches2348 #rebase_in_progress?2349 rebase_jid: "foo", jid_valid: true, result: true2350 is expected to eq true2351 rebase_jid: "foo", jid_valid: false, result: false2352 is expected to eq false2353 rebase_jid: "", jid_valid: true, result: false2354 is expected to eq false2355 rebase_jid: nil, jid_valid: true, result: false2356 is expected to eq false2357 #allow_collaboration2358 is false when pushing by a maintainer is not possible2359 is true when pushing by a maintainer is possible2360 #collaborative_push_possible?2361 does not allow maintainer to push if the source project is the same as the target2362 allows maintainer to push when both source and target are public2363 is not available for protected branches2364 #can_allow_collaboration?2365 is false if the user does not have push access to the source project2366 is true when the user has push access to the source project2367 #merge_participants2368 contains author2369 when merge_when_pipeline_succeeds? is true2370 when merge user is author2371 author is not a project member2372 is empty2373 author is a project member2374 contains author only2375 when merge user and author are different users2376 merge user is not a member2377 contains author only2378 both author and merge users are project members2379 contains author and merge user2380 .merge_request_ref?2381 when ref is ref name of a branch2382 is expected to be falsey2383 when ref is HEAD ref path of a branch2384 is expected to be falsey2385 when ref is HEAD ref path of a merge request2386 is expected to be truthy2387 when ref is merge ref path of a merge request2388 is expected to be truthy2389 .merge_train_ref?2390 when ref is ref name of a branch2391 is expected to be falsey2392 when ref is HEAD ref path of a branch2393 is expected to be falsey2394 when ref is HEAD ref path of a merge request2395 is expected to be falsey2396 when ref is merge ref path of a merge request2397 is expected to be falsey2398 when ref is train ref path of a merge request2399 is expected to be truthy2400 #in_locked_state2401 when the merge request does not change state2402 returns to previous state and has no errors on the object2403 when the merge request is merged while locked2404 becomes merged and has no errors on the object2405 #cleanup_refs2406 when removing all refs2407 deletes all refs from the target project2408 when removing only train ref2409 deletes train ref from the target project2410 .with_auto_merge_enabled2411 is expected to contain exactly #<MergeRequest id:429 namespace1/project238!1>2412 behaves like versioned description2413 associations2414 is expected to have many description_versions2415 save_description_version2416 when description was changed2417 saves the old and new description for the first update2418 only saves the new description for subsequent updates2419 sets the new description version to `saved_description_version`2420 clears `saved_description_version` after another save that does not change description2421 when description was not changed2422 does not save any description version2423 #commits2424 persisted merge request2425 with a limit2426 returns a limited number of commits2427 without a limit2428 returns all commits of the merge request diff2429 with a page2430 returns a limited number of commits for page2431 new merge request2432 compare commits2433 without a limit2434 returns all the compare commits2435 with a limit2436 returns a limited number of commits2437 #recent_commits2438 returns the safe number of commits2439 #recent_visible_deployments2440 returns visible deployments2441 only returns a limited number of deployments2442 #diffable_merge_ref?2443 merge request can be merged2444 merge_head diff is not created2445 returns true2446 merge_head diff is created2447 returns true2448 merge request is merged2449 returns false2450 merge request cannot be merged2451 returns false2452 #predefined_variables2453 caches all SQL-sourced data on the first call2454 banzai_render_context2455 sets the label_url_method in the context2456 #head_pipeline_builds_with_coverage2457 delegates to head_pipeline2458 #merge_ref_head2459 when merge_ref_sha is not present2460 returns the commit based on merge ref path2461 when merge_ref_sha is present2462 returns the commit based on cached merge_ref_sha2463 #allows_reviewers?2464 returns true2465 #update_and_mark_in_progress_merge_commit_sha2466 updates commit ID2467 #enabled_reports2468 report_type: :sast, with_reports: :with_sast_reports, feature: :sast2469 when head pipeline has reports2470 is expected to be truthy2471 when head pipeline does not have reports2472 is expected to be falsy2473 report_type: :secret_detection, with_reports: :with_secret_detection_reports, feature: :secret_detection2474 when head pipeline has reports2475 is expected to be truthy2476 when head pipeline does not have reports2477 is expected to be falsy2478 #includes_ci_config?2479 when diff_stats is nil2480 is expected to eq false2481 when diff_stats does not include the ci config path of the project2482 is expected to eq false2483 when diff_stats includes the ci config path of the project2484 is expected to eq true2485 .from_fork2486 returns merge requests from forks only2487 behaves like it has loose foreign keys2488 has at least one loose foreign key definition2489 has the deletion trigger present2490 records record deletions2491 cleans up record deletions2492 loose foreign key on merge_requests.head_pipeline_id2493 behaves like cleanup by a loose foreign key2494 cleans up (delete or nullify) the model2495 #merge_blocked_by_other_mrs?2496 returns false when there is no blocking merge requests2497 #merge_request_reviewers_with2498 returns reviewers2499 #merge_request_assignees_with2500 returns assignees2501 #recent_diff_head_shas2502 when the association is not loaded2503 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first2504 supports limits2505 when the association is loaded2506 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first2507 supports limits2508 does not issue any queries2509 #target_default_branch?2510 returns false2511 with target_branch equal project default branch2512 returns false2513 #can_suggest_reviewers?2514 returns false2515 #suggested_reviewer_users2516 is expected to be empty2517 #hidden?2518 is expected to eq false2519 when the author is banned2520 is expected to eq true2521 when the feature flag is disabled2522 is expected to eq false2523 #diffs_batch_cache_with_max_age?2524 returns true2525 when diffs_batch_cache_with_max_age is disabled2526 returns false2527 #prepared?2528 when prepared_at is nil2529 returns false2530 when prepared_at is not nil2531 returns true2532 prepare2533 calls NewMergeRequestWorker2534ProjectTeam2535 personal project2536 members collection2537 is expected to include #<User id:73 @user74>2538 is expected not to include #<User id:79 @user79>2539 is expected not to include #<User id:82 @user81>2540 is expected not to include #<User id:88 @user86>2541 access methods2542 is expected to be truthy2543 is expected to be falsey2544 is expected to be falsey2545 is expected to be falsey2546 is expected to be falsey2547 is expected to be truthy2548 is expected to be truthy2549 is expected to be falsey2550 is expected to be falsey2551 group project2552 members collection2553 is expected to include #<User id:131 @user119>2554 is expected to include #<User id:135 @user122>2555 is expected to include #<User id:142 @user128>2556 is expected not to include #<User id:146 @user131>2557 is expected not to include #<User id:153 @user137>2558 access methods2559 is expected to be truthy2560 is expected to be truthy2561 is expected to be truthy2562 is expected to be falsey2563 is expected to be falsey2564 is expected to be falsey2565 is expected to be truthy2566 is expected to be truthy2567 is expected to be falsey2568 is expected to be falsey2569 owner methods2570 personal project2571 is expected to contain exactly #<User id:207 @namespace30>2572 is expected to be truthy2573 group project2574 is expected to contain exactly #<User id:209 @user181> and #<User id:210 @user182>2575 is expected to be truthy2576 is expected to be truthy2577 #fetch_members2578 personal project2579 returns project members2580 returns project members of a specified level2581 returns invited members of a group2582 returns invited members of a group of a specified level2583 group project2584 returns project members2585 returns project members of a specified level2586 #find_member2587 personal project2588 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2589 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2590 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2591 is expected to be nil2592 is expected to be nil2593 group project2594 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2595 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2596 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2597 is expected to be nil2598 is expected to be nil2599 #members_in_project_and_ancestors2600 group project2601 filters out users who are not members of the project2602 #members_with_access_levels2603 with access_levels2604 filters members who have given access levels2605 without access_levels2606 returns empty array2607 #add_members2608 add the given users to the team2609 when `tasks_to_be_done` and `tasks_project_id` are passed2610 creates a member_task with the correct attributes2611 #add_member2612 add the given user to the team2613 #human_max_access2614 returns Maintainer role2615 returns Owner role2616 #contributor?2617 when user is a member of project2618 is expected to equal false2619 is expected to equal false2620 is expected to equal false2621 when user has at least one merge request merged into default_branch2622 is expected to equal true2623 is expected to equal false2624 #max_member_access2625 personal project2626 when project is not shared with group2627 is expected to eq 402628 is expected to eq 202629 is expected to eq 102630 is expected to eq 02631 is expected to eq 02632 when project is shared with group2633 is expected to eq 302634 is expected to eq 202635 is expected to eq 02636 is expected to eq 02637 but share_with_group_lock is true2638 is expected to eq 02639 is expected to eq 02640 group project2641 is expected to eq 402642 is expected to eq 202643 is expected to eq 102644 is expected to eq 02645 is expected to eq 02646 #purge_member_access_cache_for_user_id2647 removes cached max access for user from store2648 #member?2649 returns false for no user2650 returns true for personal projects of the user2651 returns true for projects of groups the user is a member of2652 returns true for projects for which the user is a member of2653 returns true for projects shared on a group the user is a member of2654 checks for the correct minimum level access2655 #contribution_check_for_user_ids2656 does not perform extra queries when asked for users who have already been found2657 only requests the extra users when uncached users are passed2658 returns correct contributors2659 #max_member_access_for_user_ids2660 with RequestStore enabled2661 returns correct roles for different users2662 does not perform extra queries when asked for users who have already been found2663 only requests the extra users when uncached users are passed2664 with RequestStore disabled2665 returns correct roles for different users2666Namespace::TraversalHierarchy2667 .for_namespace2668 with root group2669 is expected to eq #<Group id:919 @group93>2670 with child group2671 is expected to eq #<Group id:1004 @group178>2672 with group outside of hierarchy2673 is expected not to eq #<Group id:1089 @group263>2674 .new2675 with root group2676 is expected to eq #<Group id:1175 @group349>2677 with child group2678 is expected to raise StandardError with "Must specify a root node"2679 #incorrect_traversal_ids2680 is expected to contain exactly #<Group id:1345 @group519>, #<Group id:1346 @group519/group520>, #<Group id:1347 @group519/group520/group521>, #<Group id:1348 @group519/group520/group521/group522>, #<Group id:1349 @group519/group520/group521/group523>, #<Group id:1350 @group519/group520/group521/group524>, #<Group id:1351 @group519/group520/group521/group525>, #<Group id:1352 @group519/group520/group526>, #<Group id:1353 @group519/group520/group526/group527>, #<Group id:1354 @group519/group520/group526/group528>, #<Group id:1355 @group519/group520/group526/group529>, #<Group id:1356 @group519/group520/group526/group530>, #<Group id:1357 @group519/group520/group531>, #<Group id:1358 @group519/group520/group531/group532>, #<Group id:1359 @group519/group520/group531/group533>, #<Group id:1360 @group519/group520/group531/group534>, #<Group id:1361 @group519/group520/group531/group535>, #<Group id:1362 @group519/group520/group536>, #<Group id:1363 @group519/group520/group536/group537>, #<Group id:1364 @group519/group520/group536/group538>, #<Group id:1365 @group519/group520/group536/group539>, #<Group id:1366 @group519/group520/group536/group540>, #<Group id:1367 @group519/group541>, #<Group id:1368 @group519/group541/group542>, #<Group id:1369 @group519/group541/group542/group543>, #<Group id:1370 @group519/group541/group542/group544>, #<Group id:1371 @group519/group541/group542/group545>, #<Group id:1372 @group519/group541/group542/group546>, #<Group id:1373 @group519/group541/group547>, #<Group id:1374 @group519/group541/group547/group548>, #<Group id:1375 @group519/group541/group547/group549>, #<Group id:1376 @group519/group541/group547/group550>, #<Group id:1377 @group519/group541/group547/group551>, #<Group id:1378 @group519/group541/group552>, #<Group id:1379 @group519/group541/group552/group553>, #<Group id:1380 @group519/group541/group552/group554>, #<Group id:1381 @group519/group541/group552/group555>, #<Group id:1382 @group519/group541/group552/group556>, #<Group id:1383 @group519/group541/group557>, #<Group id:1384 @group519/group541/group557/group558>, #<Group id:1385 @group519/group541/group557/group559>, #<Group id:1386 @group519/group541/group557/group560>, #<Group id:1387 @group519/group541/group557/group561>, #<Group id:1388 @group519/group562>, #<Group id:1389 @group519/group562/group563>, #<Group id:1390 @group519/group562/group563/group564>, #<Group id:1391 @group519/group562/group563/group565>, #<Group id:1392 @group519/group562/group563/group566>, #<Group id:1393 @group519/group562/group563/group567>, #<Group id:1394 @group519/group562/group568>, #<Group id:1395 @group519/group562/group568/group569>, #<Group id:1396 @group519/group562/group568/group570>, #<Group id:1397 @group519/group562/group568/group571>, #<Group id:1398 @group519/group562/group568/group572>, #<Group id:1399 @group519/group562/group573>, #<Group id:1400 @group519/group562/group573/group574>, #<Group id:1401 @group519/group562/group573/group575>, #<Group id:1402 @group519/group562/group573/group576>, #<Group id:1403 @group519/group562/group573/group577>, #<Group id:1404 @group519/group562/group578>, #<Group id:1405 @group519/group562/group578/group579>, #<Group id:1406 @group519/group562/group578/group580>, #<Group id:1407 @group519/group562/group578/group581>, #<Group id:1408 @group519/group562/group578/group582>, #<Group id:1409 @group519/group583>, #<Group id:1410 @group519/group583/group584>, #<Group id:1411 @group519/group583/group584/group585>, #<Group id:1412 @group519/group583/group584/group586>, #<Group id:1413 @group519/group583/group584/group587>, #<Group id:1414 @group519/group583/group584/group588>, #<Group id:1415 @group519/group583/group589>, #<Group id:1416 @group519/group583/group589/group590>, #<Group id:1417 @group519/group583/group589/group591>, #<Group id:1418 @group519/group583/group589/group592>, #<Group id:1419 @group519/group583/group589/group593>, #<Group id:1420 @group519/group583/group594>, #<Group id:1421 @group519/group583/group594/group595>, #<Group id:1422 @group519/group583/group594/group596>, #<Group id:1423 @group519/group583/group594/group597>, #<Group id:1424 @group519/group583/group594/group598>, #<Group id:1425 @group519/group583/group599>, #<Group id:1426 @group519/group583/group599/group600>, #<Group id:1427 @group519/group583/group599/group601>, #<Group id:1428 @group519/group583/group599/group602>, and #<Group id:1429 @group519/group583/group599/group603>2681 #sync_traversal_ids!2682 is expected to be empty2683 behaves like hierarchy with traversal_ids2684 will be valid2685 behaves like locked row2686 has locked row2687 when deadlocked2688 is expected to raise ActiveRecord::Deadlocked2689 increment db_deadlock counter2690DesignManagement::DesignV432x230Uploader2691 resizes images2692 behaves like builds correct paths2693 #store_dir2694 behaves like matches the method pattern2695 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//2696 #cache_dir2697 behaves like matches the method pattern2698 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2699 #work_dir2700 behaves like matches the method pattern2701 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2702 #upload_path2703 behaves like matches the method pattern2704 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//2705 #relative_path2706 is relative (PENDING: Path not set, skipping.)2707 .absolute_path2708 behaves like matches the method pattern2709 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//2710 .base_dir2711 behaves like matches the method pattern2712 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2713 path traversal exploits2714 throws an exception2715 object_store is REMOTE2716 behaves like builds correct paths2717 #store_dir2718 behaves like matches the method pattern2719 is expected to match /design_management\/action\/image_v432x230\//2720 #cache_dir2721 behaves like matches the method pattern2722 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2723 #work_dir2724 behaves like matches the method pattern2725 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2726 #upload_path2727 behaves like matches the method pattern2728 is expected to match /design_management\/action\/image_v432x230\//2729 #relative_path2730 is relative (PENDING: Path not set, skipping.)2731 .absolute_path2732 behaves like matches the method pattern2733 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2734 .base_dir2735 behaves like matches the method pattern2736 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2737 path traversal exploits2738 throws an exception2739 #migrate!2740 behaves like migrates2741 returns corresponding file type2742 does nothing when migrating to the current store2743 migrate to the specified store2744 removes the original file after the migration2745 can access to the original file during migration2746 when migrate! is not occupied by another process2747 executes migrate!2748 executes use_file2749 when migrate! is occupied by another process2750 does not execute migrate!2751 does not execute use_file2752 migration is unsuccessful2753 when the store is not supported2754 does not update the object_store2755 does not delete the original file2756 upon a fog failure2757 does not update the object_store2758 does not delete the original file2759 upon a database failure2760 does not update the object_store2761 does not delete the original file2762 behaves like migrates2763 returns corresponding file type2764 does nothing when migrating to the current store2765 migrate to the specified store2766 removes the original file after the migration2767 can access to the original file during migration2768 when migrate! is not occupied by another process2769 executes migrate!2770 executes use_file2771 when migrate! is occupied by another process2772 does not execute migrate!2773 does not execute use_file2774 migration is unsuccessful2775 when the store is not supported2776 does not update the object_store2777 does not delete the original file2778 upon a fog failure2779 does not update the object_store2780 does not delete the original file2781 upon a database failure2782 does not update the object_store2783 does not delete the original file2784 accept whitelist file content type2785 mime_type: "image/png"2786 behaves like accepted carrierwave upload2787 will accept upload2788 will cache uploaded file2789 mime_type: "image/jpeg"2790 behaves like accepted carrierwave upload2791 will accept upload2792 will cache uploaded file2793 mime_type: "image/bmp"2794 behaves like accepted carrierwave upload2795 will accept upload2796 will cache uploaded file2797 mime_type: "image/gif"2798 behaves like accepted carrierwave upload2799 will accept upload2800 will cache uploaded file2801 upload non-whitelisted file content type2802 behaves like denied carrierwave upload2803 will deny upload2804 upload misnamed non-whitelisted file content type2805 behaves like denied carrierwave upload2806 will deny upload2807NotesFinder2808 #execute2809 finds notes on merge requests2810 finds notes on snippets2811 excludes notes on commits the author can't download2812 succeeds when no notes found2813 when notes filter is present2814 returns only user notes when using only_comments filter2815 returns only system notes when using only_activity filters2816 gets all notes2817 on restricted projects2818 publicly excludes notes on merge requests2819 publicly excludes notes on issues2820 publicly excludes notes on snippets2821 for notes on public issue in public project2822 shows all notes when the current_user has reporter access2823 shows only public notes when the current_user has guest access2824 for notes from users who have been banned2825 when :hidden_notes feature is not enabled2826 when user is not an admin2827 is expected to include #<Note id: 62, note: [FILTERED], noteable_type: "Issue", author_id: 630, created_at: "2023-04-19 09:5...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2828 when @current_user is nil2829 is expected to be empty2830 when :hidden_notes feature is enabled2831 when user is an admin2832 is expected to include #<Note id: 64, note: [FILTERED], noteable_type: "Issue", author_id: 630, created_at: "2023-04-19 09:5...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2833 when user is not an admin2834 is expected not to include #<Note id: 65, note: [FILTERED], noteable_type: "Issue", author_id: 630, created_at: "2023-04-19 09:5...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>2835 when @current_user is nil2836 is expected to be empty2837 for target type2838 finds only notes for the selected type2839 for target2840 finds all notes2841 finds notes on merge requests2842 finds notes on snippets2843 raises an exception for an invalid target_type2844 filters out old notes2845 confidential issue notes2846 returns notes if user can see the issue2847 raises an error if user can not see the issue2848 raises an error for project members with guest role2849 when targeting personal_snippet2850 snippet_visibility: 0, current_user: author, access: true2851 returns the proper access2852 snippet_visibility: 0, current_user: admin, access: true2853 returns the proper access2854 snippet_visibility: 0, current_user: user, access: false2855 returns the proper access2856 snippet_visibility: 20, current_user: author, access: true2857 returns the proper access2858 snippet_visibility: 20, current_user: user, access: true2859 returns the proper access2860 for explicit target2861 returns the expected notes2862 returns the expected notes when last_fetched_at is given2863 fails when nil is provided2864 sorting2865 allows sorting2866 defaults to sort by .fresh2867 .search2868 returns notes with matching content2869 returns notes with matching content regardless of the casing2870 returns commit notes user can access2871 confidential issues2872 returns notes with matching content if user can see the issue2873 does not return notes with matching content if user can not see the issue2874 does not return notes with matching content for project members with guest role2875 does not return notes with matching content for unauthenticated users2876 inlines SQL filters on subqueries for performance2877 project_id check2878 search filter2879 #target2880 for a issue target2881 returns the issue2882 for a merge request target2883 returns the merge_request2884 for a snippet target2885 returns the snippet2886 for a commit target2887 returns the commit2888 user does not have permission to read_code2889 returns nil2890 target_iid2891 finds issues by iid2892 finds merge requests by iid2893 returns nil if both target_id and target_iid are not given2894 prioritizes target_id over target_iid2895EventCreateService2896 Issues2897 #open_issue2898 is expected to be truthy2899 creates new event2900 #close_issue2901 is expected to be truthy2902 creates new event2903 #reopen_issue2904 is expected to be truthy2905 creates new event2906 Merge Requests2907 #open_mr2908 is expected to be truthy2909 creates new event2910 behaves like it records the event in the event counter2911 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12912 behaves like Snowplow event tracking with RedisHLL context2913 behaves like Snowplow event tracking2914 is emitted2915 #close_mr2916 is expected to be truthy2917 creates new event2918 behaves like it records the event in the event counter2919 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12920 behaves like Snowplow event tracking with RedisHLL context2921 behaves like Snowplow event tracking2922 is emitted2923 #merge_mr2924 is expected to be truthy2925 creates new event2926 behaves like it records the event in the event counter2927 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12928 behaves like Snowplow event tracking with RedisHLL context2929 behaves like Snowplow event tracking2930 is emitted2931 #reopen_mr2932 is expected to be truthy2933 creates new event2934 #approve_mr2935 is expected to be truthy2936 creates new event2937 Milestone2938 #open_milestone2939 is expected to be truthy2940 creates new event2941 #close_mr2942 is expected to be truthy2943 creates new event2944 #destroy_mr2945 is expected to be truthy2946 creates new event2947 #wiki_event2948 action: :created2949 creates the event2950 is idempotent2951 behaves like it records the event in the event counter2952 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12953 behaves like it records a git write event2954 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12955 action: :updated2956 creates the event2957 is idempotent2958 behaves like it records the event in the event counter2959 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12960 behaves like it records a git write event2961 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12962 action: :destroyed2963 creates the event2964 is idempotent2965 behaves like it records the event in the event counter2966 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12967 behaves like it records a git write event2968 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 12969 The action is created2970 raises an error2971 The action is updated2972 raises an error2973 The action is closed2974 raises an error2975 The action is reopened2976 raises an error2977 The action is pushed2978 raises an error2979 The action is commented2980 raises an error2981 The action is merged2982 raises an error2983 The action is joined2984 raises an error2985 The action is left2986 raises an error2987 The action is destroyed2988 raises an error2989 The action is expired2990 raises an error2991 The action is approved2992 raises an error2993 #push2994 behaves like service for creating a push event2995 creates a new event2996 creates the push event payload2997 updates user last activity2998 caches the last push event for the user2999 does not create any event data when an error is raised3000 behaves like it records the event in the event counter3001 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13002 behaves like it records a git write event3003 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13004 behaves like Snowplow event tracking with RedisHLL context3005 behaves like Snowplow event tracking3006 is emitted3007 #bulk_push3008 behaves like service for creating a push event3009 creates a new event3010 creates the push event payload3011 updates user last activity3012 caches the last push event for the user3013 does not create any event data when an error is raised3014 behaves like it records the event in the event counter3015 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13016 behaves like it records a git write event3017 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13018 behaves like Snowplow event tracking with RedisHLL context3019 behaves like Snowplow event tracking3020 is emitted3021 Project3022 #join_project3023 is expected to be truthy3024 is expected to change `Event.count` from 0 to 13025 #expired_leave_project3026 is expected to be truthy3027 is expected to change `Event.count` from 0 to 13028 design events3029 #save_designs3030 is expected to change `Event.count` by 83031 is expected not to exceed query limit 23032 creates 3 created design events3033 creates 5 created design events3034 behaves like it records the event in the event counter3035 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13036 behaves like it records a git write event3037 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13038 Snowplow tracking3039 for create event3040 behaves like Snowplow event tracking with RedisHLL context3041 behaves like Snowplow event tracking3042 is emitted3043 for update event3044 behaves like Snowplow event tracking with RedisHLL context3045 behaves like Snowplow event tracking3046 is emitted3047 #destroy_designs3048 is expected to change `Event.count` by 53049 is expected not to exceed query limit 23050 creates 5 destroyed design events3051 behaves like it records the event in the event counter3052 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13053 behaves like it records a git write event3054 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13055 behaves like Snowplow event tracking with RedisHLL context3056 behaves like Snowplow event tracking3057 is emitted3058 #leave_note3059 is expected to be truthy3060 creates new event3061 when it is a diff note3062 behaves like it records the event in the event counter3063 is expected to change `Gitlab::UsageDataCounters::HLLRedisCounter.unique_events(**tracking_params)` by 13064 behaves like Snowplow event tracking with RedisHLL context3065 behaves like Snowplow event tracking3066 is emitted3067 when it is not a diff note3068 does not change the unique action counter3069Gitlab::Email::Handler::ServiceDeskHandler3070 service desk is enabled for the project3071 when everything is fine3072 attaches existing CRM contacts3073 behaves like a new issue request3074 creates a new issue3075 creates an issue_email_participant3076 sends thank you email3077 adds metric events for incoming and reply emails3078 with legacy incoming email address3079 behaves like a new issue request3080 creates a new issue3081 creates an issue_email_participant3082 sends thank you email3083 adds metric events for incoming and reply emails3084 when replying to issue creation email3085 when an issue with message_id has been found3086 does not create an additional issue3087 adds a comment to the created issue3088 does not send thank you email3089 when issue_email_participants FF is enabled3090 creates 2 issue_email_participants3091 when issue_email_participants FF is disabled3092 creates only 1 issue_email_participant3093 when an issue with message_id has not been found3094 creates a new issue correctly3095 sends thank you email once3096 creates 1 issue_email_participant3097 when using issue templates3098 and template is present3099 appends template text to issue description3100 when quick actions are present3101 applies quick action commands present on templates3102 applies group labels using quick actions3103 redacts quick actions present on user email body3104 when issues are set to private3105 applies quick action commands present on templates3106 and template cannot be found3107 does not append template text to issue description3108 creates support bot note on issue3109 does not send warning note email3110 when all lines of email are quoted3111 creates email with correct body3112 when using custom service desk address3113 when using project key3114 behaves like a new issue request3115 creates a new issue3116 creates an issue_email_participant3117 sends thank you email3118 adds metric events for incoming and reply emails3119 when there is no project with the key3120 bounces the email3121 when the project slug does not match3122 bounces the email3123 when there are multiple projects with same key3124 process email for project with matching slug3125 when project key is not set3126 behaves like a new issue request3127 creates a new issue3128 creates an issue_email_participant3129 sends thank you email3130 adds metric events for incoming and reply emails3131 when issue email creation fails3132 still creates a new issue3133 does not create issue email record3134 when rate limiting is in effect3135 when too many requests are sent by one user3136 raises an error3137 creates 1 issue3138 when requests are sent by different users3139 creates 2 issues3140 when limit is higher than sent emails3141 creates 2 issues3142 #can_handle?3143 handles the new email key format3144 handles the legacy email key format3145 doesn't handle invalid email key3146 when there is no from address3147 creates a new issue3148 does not send thank you email3149 when there is a sender address and a from address3150 prefers the from address3151 when service desk is not enabled for project3152 does not create an issue3153 does not send thank you email3154 when the email is forwarded through an alias3155 behaves like a new issue request3156 creates a new issue3157 creates an issue_email_participant3158 sends thank you email3159 adds metric events for incoming and reply emails3160 when the email is forwarded3161 behaves like a new issue request3162 creates a new issue3163 creates an issue_email_participant3164 sends thank you email3165 adds metric events for incoming and reply emails3166 service desk is disabled for the project3167 bounces the email3168 doesn't create an issue3169Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespaces3170 #namespaces_for_paths3171 nested namespaces3172 includes the namespace3173 for child namespaces3174 only returns child namespaces with the correct path3175 has no namespaces that look the same3176 for top levelnamespaces3177 only returns child namespaces with the correct path3178 has no namespaces that just look the same3179 #move_repositories3180 moves a project for a namespace3181 moves a namespace in a subdirectory correctly3182 moves a parent namespace with subdirectories3183 #child_ids_for_parent3184 collects child ids for all levels3185 #rename_namespace3186 renames paths & routes for the namespace3187 tracks the rename3188 renames things related to the namespace3189 #rename_namespace_dependencies3190 moves the repository for a project in the namespace3191 moves the uploads for the namespace3192 moves the pages for the namespace3193 invalidates the markdown cache of related projects3194 doesn't rename users for other namespaces3195 renames the username of a namespace for a user3196 #rename_user3197 renames a username3198 #rename_namespaces3199 renames top level namespaces the namespace3200 renames child namespaces3201 #revert_renames3202 renames the routes back to the previous values3203 moves the repositories back to their original place3204 doesn't break when the namespace was renamed3205Ci::RunnersFinder3206 admin3207 #execute3208 when admin mode setting is disabled3209 behaves like executes as admin3210 with 2 runners3211 with empty params3212 returns all runners3213 with nil group3214 returns all runners3215 with preload param set to :tag_name true3216 requests tags3217 with preload param set to :tag_name false3218 does not request tags3219 filtering3220 by search term3221 calls Ci::Runner.search3222 by upgrade status3223 set to :not_processed3224 calls with_upgrade_status scope with corresponding :not_processed status3225 set to :invalid_version3226 calls with_upgrade_status scope with corresponding :invalid_version status3227 set to :unavailable3228 calls with_upgrade_status scope with corresponding :unavailable status3229 set to :available3230 calls with_upgrade_status scope with corresponding :available status3231 set to :recommended3232 calls with_upgrade_status scope with corresponding :recommended status3233 set to an invalid value3234 raises ArgumentError3235 set to nil3236 does not call with_upgrade_status3237 by status3238 calls the corresponding :active scope on Ci::Runner3239 calls the corresponding :paused scope on Ci::Runner3240 calls the corresponding :online scope on Ci::Runner3241 calls the corresponding :offline scope on Ci::Runner3242 calls the corresponding :never_contacted scope on Ci::Runner3243 calls the corresponding :stale scope on Ci::Runner3244 by active status3245 with active set as false calls the corresponding scope on Ci::Runner with false3246 with active set as true calls the corresponding scope on Ci::Runner with true3247 by runner type3248 calls the corresponding scope on Ci::Runner3249 by tag_name3250 calls the corresponding scope on Ci::Runner3251 sorting3252 without sort param3253 behaves like sorts by created_at descending3254 sorts by created_at descending3255 with sort param equal to created_date3256 behaves like sorts by created_at descending3257 sorts by created_at descending3258 with sort param equal to created_at_desc3259 behaves like sorts by created_at descending3260 sorts by created_at descending3261 with sort param equal to created_at_asc3262 sorts by created_at ascending3263 with sort param equal to contacted_asc3264 sorts by contacted_at ascending3265 with sort param equal to contacted_desc3266 sorts by contacted_at descending3267 with sort param equal to token_expires_at_asc3268 sorts by contacted_at ascending3269 with sort param equal to token_expires_at_desc3270 sorts by contacted_at descending3271 when admin mode setting is enabled3272 when in admin mode3273 behaves like executes as admin3274 with 2 runners3275 with empty params3276 returns all runners3277 with nil group3278 returns all runners3279 with preload param set to :tag_name true3280 requests tags3281 with preload param set to :tag_name false3282 does not request tags3283 filtering3284 by search term3285 calls Ci::Runner.search3286 by upgrade status3287 set to :not_processed3288 calls with_upgrade_status scope with corresponding :not_processed status3289 set to :invalid_version3290 calls with_upgrade_status scope with corresponding :invalid_version status3291 set to :unavailable3292 calls with_upgrade_status scope with corresponding :unavailable status3293 set to :available3294 calls with_upgrade_status scope with corresponding :available status3295 set to :recommended3296 calls with_upgrade_status scope with corresponding :recommended status3297 set to an invalid value3298 raises ArgumentError3299 set to nil3300 does not call with_upgrade_status3301 by status3302 calls the corresponding :active scope on Ci::Runner3303 calls the corresponding :paused scope on Ci::Runner3304 calls the corresponding :online scope on Ci::Runner3305 calls the corresponding :offline scope on Ci::Runner3306 calls the corresponding :never_contacted scope on Ci::Runner3307 calls the corresponding :stale scope on Ci::Runner3308 by active status3309 with active set as false calls the corresponding scope on Ci::Runner with false3310 with active set as true calls the corresponding scope on Ci::Runner with true3311 by runner type3312 calls the corresponding scope on Ci::Runner3313 by tag_name3314 calls the corresponding scope on Ci::Runner3315 sorting3316 without sort param3317 behaves like sorts by created_at descending3318 sorts by created_at descending3319 with sort param equal to created_date3320 behaves like sorts by created_at descending3321 sorts by created_at descending3322 with sort param equal to created_at_desc3323 behaves like sorts by created_at descending3324 sorts by created_at descending3325 with sort param equal to created_at_asc3326 sorts by created_at ascending3327 with sort param equal to contacted_asc3328 sorts by contacted_at ascending3329 with sort param equal to contacted_desc3330 sorts by contacted_at descending3331 with sort param equal to token_expires_at_asc3332 sorts by contacted_at ascending3333 with sort param equal to token_expires_at_desc3334 sorts by contacted_at descending3335 when not in admin mode3336 behaves like executes as normal user3337 returns no runners3338 by non admin user3339 behaves like executes as normal user3340 returns no runners3341 when user is nil3342 returns no runners3343 group3344 #execute3345 with user as group owner3346 with :group as target group3347 passing no params3348 behaves like membership equal to :descendants3349 returns all descendant runners3350 with :descendants membership3351 behaves like membership equal to :descendants3352 returns all descendant runners3353 with :direct membership3354 returns runners belonging to group3355 with :all_available membership3356 returns runners available to group3357 with unknown membership3358 raises an error3359 with nil group3360 returns no runners3361 with sort param3362 sorts by specified attribute3363 filtering3364 by search term3365 returns correct runner3366 by active status3367 returns correct runner3368 by status3369 returns correct runner3370 by tag_name3371 returns correct runner3372 by runner type3373 returns correct runners3374 when user is not group owner3375 user_permission: :maintainer3376 with :sub_group_1 as target group3377 returns no runners3378 with :group as target group3379 returns no runners3380 with :all_available membership3381 returns no runners3382 user_permission: :developer3383 with :sub_group_1 as target group3384 returns no runners3385 with :group as target group3386 returns no runners3387 with :all_available membership3388 returns no runners3389 user_permission: :reporter3390 with :sub_group_1 as target group3391 returns no runners3392 with :group as target group3393 returns no runners3394 with :all_available membership3395 returns no runners3396 user_permission: :guest3397 with :sub_group_1 as target group3398 returns no runners3399 with :group as target group3400 returns no runners3401 with :all_available membership3402 returns no runners3403 when user has no access3404 returns no runners3405 when user is nil3406 returns no runners3407 #sort_key3408 without params3409 returns created_at_desc3410 with params3411 returns contacted_asc3412 project3413 #execute3414 with user as project admin3415 with project runners3416 returns runners available to project3417 with ancestor group runners3418 returns runners available to project3419 with allowed shared runners3420 returns runners available to project3421 with project, ancestor group, and allowed shared runners3422 returns runners available to project3423 filtering3424 by search term3425 returns the correct runner3426 by active status3427 returns the correct runners3428 by status3429 returns correct runner3430 by tag_name3431 returns correct runner3432 by runner type3433 returns correct runners3434 with user as project developer3435 returns no runners3436 when user is nil3437 returns no runners3438 with nil project_full_path3439 returns no runners3440Ci::Ref3441 is expected to belong to project required: false3442 state machine transitions3443 unlock artifacts transition3444 pipline is locked3445 initial_state: :unknown, action: :succeed!, count: 13446 when transitioning states3447 calls unlock artifacts service3448 initial_state: :unknown, action: :do_fail!, count: 03449 when transitioning states3450 calls unlock artifacts service3451 initial_state: :success, action: :succeed!, count: 13452 when transitioning states3453 calls unlock artifacts service3454 initial_state: :success, action: :do_fail!, count: 03455 when transitioning states3456 calls unlock artifacts service3457 initial_state: :failed, action: :succeed!, count: 13458 when transitioning states3459 calls unlock artifacts service3460 initial_state: :failed, action: :do_fail!, count: 03461 when transitioning states3462 calls unlock artifacts service3463 initial_state: :fixed, action: :succeed!, count: 13464 when transitioning states3465 calls unlock artifacts service3466 initial_state: :fixed, action: :do_fail!, count: 03467 when transitioning states3468 calls unlock artifacts service3469 initial_state: :broken, action: :succeed!, count: 13470 when transitioning states3471 calls unlock artifacts service3472 initial_state: :broken, action: :do_fail!, count: 03473 when transitioning states3474 calls unlock artifacts service3475 initial_state: :still_failing, action: :succeed, count: 13476 when transitioning states3477 calls unlock artifacts service3478 initial_state: :still_failing, action: :do_fail, count: 03479 when transitioning states3480 calls unlock artifacts service3481 pipeline is unlocked3482 does not call unlock artifacts service3483 .ensure_for3484 when pipeline is a branch pipeline3485 behaves like ensures ci_ref3486 when ci_ref already exists3487 returns an existing ci_ref3488 when ci_ref does not exist yet3489 creates a new ci_ref3490 when pipeline is a tag pipeline3491 behaves like ensures ci_ref3492 when ci_ref already exists3493 returns an existing ci_ref3494 when ci_ref does not exist yet3495 creates a new ci_ref3496 when pipeline is a detached merge request pipeline3497 behaves like ensures ci_ref3498 when ci_ref already exists3499 returns an existing ci_ref3500 when ci_ref does not exist yet3501 creates a new ci_ref3502 #last_finished_pipeline_id3503 when there are no finished pipelines3504 returns nil3505 when there are finished pipelines3506 returns the pipeline id3507 when the pipeline a dangling pipeline3508 returns nil3509 #update_status_by!3510 when pipeline status is success or failed3511 pipeline_status: :success, current_ref_status: :unknown, expected_ref_status: :success3512 transitions the status via state machine3513 pipeline_status: :success, current_ref_status: :success, expected_ref_status: :success3514 transitions the status via state machine3515 pipeline_status: :success, current_ref_status: :failed, expected_ref_status: :fixed3516 transitions the status via state machine3517 pipeline_status: :success, current_ref_status: :fixed, expected_ref_status: :success3518 transitions the status via state machine3519 pipeline_status: :success, current_ref_status: :broken, expected_ref_status: :fixed3520 transitions the status via state machine3521 pipeline_status: :success, current_ref_status: :still_failing, expected_ref_status: :fixed3522 transitions the status via state machine3523 pipeline_status: :failed, current_ref_status: :unknown, expected_ref_status: :failed3524 transitions the status via state machine3525 pipeline_status: :failed, current_ref_status: :success, expected_ref_status: :broken3526 transitions the status via state machine3527 pipeline_status: :failed, current_ref_status: :failed, expected_ref_status: :still_failing3528 transitions the status via state machine3529 pipeline_status: :failed, current_ref_status: :fixed, expected_ref_status: :broken3530 transitions the status via state machine3531 pipeline_status: :failed, current_ref_status: :broken, expected_ref_status: :still_failing3532 transitions the status via state machine3533 pipeline_status: :failed, current_ref_status: :still_failing, expected_ref_status: :still_failing3534 transitions the status via state machine3535 when pipeline status is success3536 updates the status3537 when pipeline status is canceled3538 is expected to eq :unknown3539 when pipeline status is skipped3540 behaves like no-op3541 does nothing and returns nil3542 when pipeline status is not complete3543 behaves like no-op3544 does nothing and returns nil3545 when pipeline is not the latest pipeline3546 behaves like no-op3547 does nothing and returns nil3548 when pipeline does not belong to the ci_ref3549 behaves like no-op3550 does nothing and returns nil3551 loose foreign key on ci_refs.project_id3552 behaves like cleanup by a loose foreign key3553 cleans up (delete or nullify) the model3554Database::ConsistencyCheckService3555 #min_id3556 returns the id of the first record in the database3557 #max_id3558 returns the id of the first record in the database3559 #random_start_id3560 generates a random start_id within the records ids3561 #execute3562 when empty tables3563 returns results with zero counters3564 does not call the ConsistencyCheckService3565 no cursor has been saved before3566 picks a random start_id3567 calls the ConsistencyCheckService with the expected parameters3568 saves the next_start_id in Redis for he next iteration3569 cursor saved in Redis and moving3570 keeps moving the cursor with each call to the service3571 keeps moving the cursor from any start point3572Gitlab::UrlBuilder3573 #build3574 delegates to the class method3575 .build3576 factory: :project, path_generator: ->(project) { "/#{project.full_path}" }3577 returns the full URL3578 returns only the path if only_path is given3579 factory: :board, path_generator: ->(board) { "/#{board.project.full_path}/-/boards/#{board.id}" }3580 returns the full URL3581 returns only the path if only_path is given3582 factory: :group_board, path_generator: ->(board) { "/groups/#{board.group.full_path}/-/boards/#{board.id}" }3583 returns the full URL3584 returns only the path if only_path is given3585 factory: :commit, path_generator: ->(commit) { "/#{commit.project.full_path}/-/commit/#{commit.id}" }3586 returns the full URL3587 returns only the path if only_path is given3588 factory: :issue, path_generator: ->(issue) { "/#{issue.project.full_path}/-/issues/#{issue.iid}" }3589 returns the full URL3590 returns only the path if only_path is given3591 factory: [:issue, :task], path_generator: ->(issue) { "/#{issue.project.full_path}/-/work_items/#{issue.iid}?iid_path=true" }3592 returns the full URL3593 returns only the path if only_path is given3594 factory: :work_item, path_generator: ->(work_item) { "/#{work_item.project.full_path}/-/work_items/#{work_item.iid}?iid_path=true" }3595 returns the full URL3596 returns only the path if only_path is given3597 factory: :merge_request, path_generator: ->(merge_request) { "/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}" }3598 returns the full URL3599 returns only the path if only_path is given3600 factory: :project_milestone, path_generator: ->(milestone) { "/#{milestone.project.full_path}/-/milestones/#{milestone.iid}" }3601 returns the full URL3602 returns only the path if only_path is given3603 factory: :project_snippet, path_generator: ->(snippet) { "/#{snippet.project.full_path}/-/snippets/#{snippet.id}" }3604 returns the full URL3605 returns only the path if only_path is given3606 factory: :project_wiki, path_generator: ->(wiki) { "/#{wiki.container.full_path}/-/wikis/home" }3607 returns the full URL3608 returns only the path if only_path is given3609 factory: :release, path_generator: ->(release) { "/#{release.project.full_path}/-/releases/#{release.tag}" }3610 returns the full URL3611 returns only the path if only_path is given3612 factory: :ci_build, path_generator: ->(build) { "/#{build.project.full_path}/-/jobs/#{build.id}" }3613 returns the full URL3614 returns only the path if only_path is given3615 factory: :design, path_generator: ->(design) { "/#{design.project.full_path}/-/design_management/designs/#{design.id}/raw_image" }3616 returns the full URL3617 returns only the path if only_path is given3618 factory: :group, path_generator: ->(group) { "/groups/#{group.full_path}" }3619 returns the full URL3620 returns only the path if only_path is given3621 factory: :group_milestone, path_generator: ->(milestone) { "/groups/#{milestone.group.full_path}/-/milestones/#{milestone.iid}" }3622 returns the full URL3623 returns only the path if only_path is given3624 factory: :user, path_generator: ->(user) { "/#{user.full_path}" }3625 returns the full URL3626 returns only the path if only_path is given3627 factory: :personal_snippet, path_generator: ->(snippet) { "/-/snippets/#{snippet.id}" }3628 returns the full URL3629 returns only the path if only_path is given3630 factory: :wiki_page, path_generator: ->(wiki_page) { "#{wiki_page.wiki.wiki_base_path}/#{wiki_page.slug}" }3631 returns the full URL3632 returns only the path if only_path is given3633 factory: :note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }3634 returns the full URL3635 returns only the path if only_path is given3636 factory: :diff_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }3637 returns the full URL3638 returns only the path if only_path is given3639 factory: :discussion_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }3640 returns the full URL3641 returns only the path if only_path is given3642 factory: :legacy_diff_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }3643 returns the full URL3644 returns only the path if only_path is given3645 factory: :note_on_issue, path_generator: ->(note) { "/#{note.project.full_path}/-/issues/#{note.noteable.iid}#note_#{note.id}" }3646 returns the full URL3647 returns only the path if only_path is given3648 factory: :discussion_note_on_issue, path_generator: ->(note) { "/#{note.project.full_path}/-/issues/#{note.noteable.iid}#note_#{note.id}" }3649 returns the full URL3650 returns only the path if only_path is given3651 factory: :note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }3652 returns the full URL3653 returns only the path if only_path is given3654 factory: :diff_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }3655 returns the full URL3656 returns only the path if only_path is given3657 factory: :discussion_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }3658 returns the full URL3659 returns only the path if only_path is given3660 factory: :legacy_diff_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }3661 returns the full URL3662 returns only the path if only_path is given3663 factory: :note_on_project_snippet, path_generator: ->(note) { "/#{note.project.full_path}/-/snippets/#{note.noteable_id}#note_#{note.id}" }3664 returns the full URL3665 returns only the path if only_path is given3666 factory: :discussion_note_on_project_snippet, path_generator: ->(note) { "/#{note.project.full_path}/-/snippets/#{note.noteable_id}#note_#{note.id}" }3667 returns the full URL3668 returns only the path if only_path is given3669 factory: :discussion_note_on_personal_snippet, path_generator: ->(note) { "/-/snippets/#{note.noteable_id}#note_#{note.id}" }3670 returns the full URL3671 returns only the path if only_path is given3672 factory: :note_on_personal_snippet, path_generator: ->(note) { "/-/snippets/#{note.noteable_id}#note_#{note.id}" }3673 returns the full URL3674 returns only the path if only_path is given3675 factory: :package, path_generator: ->(package) { "/#{package.project.full_path}/-/packages/#{package.id}" }3676 returns the full URL3677 returns only the path if only_path is given3678 when passing a compare3679 returns the full URL3680 returns only the path if only_path is given3681 returns an empty string for missing project3682 when passing a commit without a project3683 returns an empty string3684 when passing a commit note without a project3685 returns an empty string3686 when passing a Snippet3687 for a PersonalSnippet3688 returns a raw snippet URL if requested3689 returns a raw snippet blob URL if requested3690 for a ProjectSnippet3691 returns a raw snippet URL if requested3692 returns a raw snippet blob URL if requested3693 when passing a Wiki3694 #wiki_url3695 uses the default collection action3696 supports a custom collection action3697 #wiki_page_url3698 uses the default member action3699 supports a custom member action3700 when passing Packages::Package3701 with infrastructure package3702 returns the url for infrastucture registry3703 when passing a DesignManagement::Design3704 uses the given ref and size in the URL3705 when passing an unsupported class3706 raises an exception3707 when passing a batch loaded model3708 returns the URL for the real object3709Banzai::Pipeline::WikiPipeline3710 TableOfContents3711 replaces the tag with the TableOfContentsFilter result3712 is not case-sensitive3713 works with alternative [toc] tag3714 handles an empty pipeline result3715 Links3716 when GitLab is hosted at a root URL3717 linking to pages within the wiki3718 when creating hierarchical links to the current directory3719 rewrites non-file links to be at the scope of the current directory3720 rewrites file links to be at the scope of the current directory3721 when creating hierarchical links to the parent directory3722 rewrites non-file links to be at the scope of the parent directory3723 rewrites file links to be at the scope of the parent directory3724 when creating hierarchical links to a sub-directory3725 rewrites non-file links to be at the scope of the sub-directory3726 rewrites file links to be at the scope of the sub-directory3727 when creating non-hierarchical links3728 rewrites non-file links to be at the scope of the wiki root3729 rewrites non-file links (with spaces) to be at the scope of the wiki root3730 rewrites file links to be at the scope of the current directory3731 rewrites links with anchor3732 rewrites links (with spaces) with anchor3733 when creating root links3734 rewrites non-file links to be at the scope of the wiki root3735 rewrites file links to be at the scope of the wiki root3736 linking to pages outside the wiki (absolute)3737 doesn't rewrite links3738 when GitLab is hosted at a relative URL3739 linking to pages within the wiki3740 when creating hierarchical links to the current directory3741 rewrites non-file links to be at the scope of the current directory3742 rewrites file links to be at the scope of the current directory3743 when creating hierarchical links to the parent directory3744 rewrites non-file links to be at the scope of the parent directory3745 rewrites file links to be at the scope of the parent directory3746 when creating hierarchical links to a sub-directory3747 rewrites non-file links to be at the scope of the sub-directory3748 rewrites file links to be at the scope of the sub-directory3749 when creating non-hierarchical links3750 rewrites non-file links to be at the scope of the wiki root3751 rewrites non-file links (with spaces) to be at the scope of the wiki root3752 rewrites file links to be at the scope of the current directory3753 rewrites links with anchor3754 rewrites links (with spaces) with anchor3755 when creating root links3756 rewrites non-file links to be at the scope of the wiki root3757 rewrites file links to be at the scope of the wiki root3758 linking to pages outside the wiki (absolute)3759 doesn't rewrite links3760 checking slug validity when assembling links3761 with a valid slug3762 includes the slug in a (.) relative link3763 includeds the slug in a (..) relative link3764 when the slug is deemed unsafe or invalid3765 with the invalid slug javascript:3766 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3767 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3768 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3769 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3770 with the invalid slug JaVaScRiPt:3771 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3772 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3773 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3774 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3775 with the invalid slug javascript:3776 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3777 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3778 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3779 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3780 with the invalid slug javascript :3781 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3782 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3783 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3784 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3785 with the invalid slug javascript:3786 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3787 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3788 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3789 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3790 with the invalid slug javascript :3791 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3792 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3793 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3794 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3795 with the invalid slug :javascript:3796 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3797 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3798 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3799 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3800 with the invalid slug javascript:3801 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3802 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3803 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3804 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3805 with the invalid slug javascript:3806 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3807 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3808 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3809 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3810 with the invalid slug javascript:3811 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3812 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3813 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3814 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3815 with the invalid slug javascript:3816 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3817 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3818 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3819 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3820 with the invalid slug javascript:3821 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3822 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3823 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3824 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3825 with the invalid slug  javascript:3826 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3827 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3828 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3829 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3830 videos and audio3831 generates video html structure3832 rewrites and replaces video links names with white spaces to %203833 generates audio html structure3834 rewrites and replaces audio links names with white spaces to %203835 gollum tag filters3836 when local image file exists3837 sets the proper attributes for the image3838Suggestion3839 associations3840 is expected to belong to note required: false3841 validations3842 is expected to validate that :note cannot be empty/falsy3843 when importing3844 is expected not to validate that :note cannot be empty/falsy3845 when suggestion is applied3846 is expected to validate that :commit_id cannot be empty/falsy3847 #diff_lines3848 returns parsed diff lines3849 #appliable?3850 when inapplicable_reason is nil3851 is expected to be truthy3852 when inapplicable_reason is not nil3853 is expected to be falsey3854 #inapplicable_reason3855 when suggestion is already applied3856 is expected to eq "Can't apply this suggestion."3857 when merge request was merged3858 is expected to eq "This merge request was merged. To apply this suggestion, edit this file directly."3859 when merge request is closed3860 is expected to eq "This merge request is closed. To apply this suggestion, edit this file directly."3861 when source branch is deleted3862 is expected to eq "Can't apply as the source branch was deleted."3863 when outdated3864 and content is outdated3865 behaves like outdated suggestion3866 and suggestion is for a single line3867 is expected to eq "Can't apply as this line was changed in a more recent version."3868 and suggestion is for multiple lines3869 is expected to eq "Can't apply as these lines were changed in a more recent version."3870 and note is outdated3871 behaves like outdated suggestion3872 and suggestion is for a single line3873 is expected to eq "Can't apply as this line was changed in a more recent version."3874 and suggestion is for multiple lines3875 is expected to eq "Can't apply as these lines were changed in a more recent version."3876 when suggestion has the same content3877 is expected to eq "This suggestion already matches its content."3878 when file is .ipynb3879 is expected to eq "This file was modified for readability, and can't accept suggestions. Edit it directly."3880 when applicable3881 is expected to be nil3882 #single_line?3883 when suggestion is for a single line3884 is expected to eq true3885 when suggestion is for multiple lines3886 is expected to eq false3887Ci::PipelinesFinder3888 #execute3889 when params is empty3890 returns all pipelines3891 when scope is running3892 returns matched pipelines3893 when scope is pending3894 returns matched pipelines3895 when scope is finished3896 returns matched pipelines3897 when scope is branches or tags3898 when scope is branches3899 returns matched pipelines3900 when scope is tags3901 returns matched pipelines3902 when project has child pipelines3903 filters out child pipelines and shows only the parents by default3904 when status is created3905 returns matched pipelines3906 when status is waiting_for_resource3907 returns matched pipelines3908 when status is preparing3909 returns matched pipelines3910 when status is pending3911 returns matched pipelines3912 when status is running3913 returns matched pipelines3914 when status is success3915 returns matched pipelines3916 when status is failed3917 returns matched pipelines3918 when status is canceled3919 returns matched pipelines3920 when status is skipped3921 returns matched pipelines3922 when status is manual3923 returns matched pipelines3924 when status is scheduled3925 returns matched pipelines3926 when ref is specified3927 when ref exists3928 returns matched pipelines3929 when ref does not exist3930 returns empty3931 when username is specified3932 when username exists3933 returns matched pipelines3934 when username does not exist3935 returns empty3936 when yaml_errors is specified3937 when yaml_errors is true3938 returns matched pipelines3939 when yaml_errors is false3940 returns matched pipelines3941 when yaml_errors is invalid3942 returns all pipelines3943 when updated_at filters are specified3944 returns deployments with matched updated_at3945 when iids filter is specified3946 returns matches pipelines3947 does not fitler out child pipelines3948 when sha is specified3949 when sha exists3950 returns matched pipelines3951 when sha does not exist3952 returns empty3953 when the project has limited access to pipelines3954 when the user has access3955 is expected to return pipelines3956 the user is not allowed to read pipelines3957 returns empty3958 when source is specified3959 returns only the matched pipeline3960 when name is specified3961 performs exact compare3962 when name does not exist3963 returns empty3964 when pipeline_name_search feature flag is off3965 ignores name parameter3966 ordering3967 order_by: "id", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]3968 returns the pipelines ordered3969 order_by: "id", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]3970 returns the pipelines ordered3971 order_by: "ref", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_1, :pipeline_3]3972 returns the pipelines ordered3973 order_by: "ref", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_1, :pipeline_2]3974 returns the pipelines ordered3975 order_by: "status", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_1, :pipeline_3]3976 returns the pipelines ordered3977 order_by: "status", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_1, :pipeline_2]3978 returns the pipelines ordered3979 order_by: "updated_at", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_3, :pipeline_1]3980 returns the pipelines ordered3981 order_by: "updated_at", sort: "desc", ordered_pipelines: [:pipeline_1, :pipeline_3, :pipeline_2]3982 returns the pipelines ordered3983 order_by: "user_id", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]3984 returns the pipelines ordered3985 order_by: "user_id", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]3986 returns the pipelines ordered3987 order_by: "invalid", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]3988 returns the pipelines ordered3989 order_by: "id", sort: "err", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]3990 returns the pipelines ordered3991Pajamas::ButtonComponent3992 button component renders a button3993 renders its content3994 adds default styling3995 button_options3996 are added to the button3997 with custom classes3998 don't conflict with internal button_classes3999 overriding base attributes4000 overrides type4001 button_text_classes4002 is added to the button text4003 disabled4004 by default (false)4005 does not have disabled styling and behavior4006 when set to true4007 has disabled styling and behavior4008 loading4009 by default (false)4010 is not disabled4011 does not render a spinner4012 when set to true4013 is disabled4014 renders a spinner4015 block4016 by default (false)4017 is inline4018 when set to true4019 is block element4020 selected4021 by default (false)4022 does not have selected styling and behavior4023 when set to true4024 has selected styling and behavior4025 category & variant4026 with category variants4027 variant: :default4028 renders the button in correct variant && category4029 variant: :confirm4030 renders the button in correct variant && category4031 variant: :danger4032 renders the button in correct variant && category4033 with non-category variants4034 variant: :dashed4035 renders the button in correct variant && category4036 variant: :link4037 renders the button in correct variant && category4038 variant: :reset4039 renders the button in correct variant && category4040 with primary category4041 variant: :default4042 renders the button in correct variant && category4043 variant: :confirm4044 renders the button in correct variant && category4045 variant: :danger4046 renders the button in correct variant && category4047 size4048 by default (medium)4049 applies medium class4050 when set to small4051 applies the small class to the button4052 icon4053 has none by default4054 with icon4055 renders an icon with custom CSS class4056 with icon only and no content4057 adds a "btn-icon" CSS class4058 with icon only and when loading4059 renders only a loading icon4060 type4061 by default4062 has type "button"4063 when set to known type4064 type: :button4065 has the correct type4066 type: :reset4067 has the correct type4068 type: :submit4069 has the correct type4070 when set to unknown type4071 has type "button"4072 button component renders a link4073 renders a link instead of the button4074 renders its content4075 adds default styling4076 button_options4077 are added to the button4078 with custom classes4079 don't conflict with internal button_classes4080 overriding base attributes4081 overrides type4082 button_text_classes4083 is added to the button text4084 disabled4085 by default (false)4086 does not have disabled styling and behavior4087 when set to true4088 has disabled styling and behavior4089 loading4090 by default (false)4091 is not disabled4092 does not render a spinner4093 when set to true4094 is disabled4095 renders a spinner4096 block4097 by default (false)4098 is inline4099 when set to true4100 is block element4101 selected4102 by default (false)4103 does not have selected styling and behavior4104 when set to true4105 has selected styling and behavior4106 category & variant4107 with category variants4108 variant: :default4109 renders the button in correct variant && category4110 variant: :confirm4111 renders the button in correct variant && category4112 variant: :danger4113 renders the button in correct variant && category4114 with non-category variants4115 variant: :dashed4116 renders the button in correct variant && category4117 variant: :link4118 renders the button in correct variant && category4119 variant: :reset4120 renders the button in correct variant && category4121 with primary category4122 variant: :default4123 renders the button in correct variant && category4124 variant: :confirm4125 renders the button in correct variant && category4126 variant: :danger4127 renders the button in correct variant && category4128 size4129 by default (medium)4130 applies medium class4131 when set to small4132 applies the small class to the button4133 icon4134 has none by default4135 with icon4136 renders an icon with custom CSS class4137 with icon only and no content4138 adds a "btn-icon" CSS class4139 with icon only and when loading4140 renders only a loading icon4141 type4142 ignores type4143 method4144 method: :get4145 has the correct data-method attribute4146 method: :post4147 has the correct data-method attribute4148 method: :put4149 has the correct data-method attribute4150 method: :delete4151 has the correct data-method attribute4152 method: :patch4153 has the correct data-method attribute4154Gitlab::Ci::Config::Entry::Reports4155 validates ALLOWED_KEYS4156 expects ALLOWED_KEYS to be an artifact file_type or coverage_report4157 validation4158 when entry config value is correct4159 keyword: :junit, file: "junit.xml"4160 when value is an array4161 behaves like a valid entry4162 #value4163 returns artifacts configuration4164 #valid?4165 is valid4166 when value is not array4167 behaves like a valid entry4168 #value4169 returns artifacts configuration4170 #valid?4171 is valid4172 keyword: :codequality, file: "gl-code-quality-report.json"4173 when value is an array4174 behaves like a valid entry4175 #value4176 returns artifacts configuration4177 #valid?4178 is valid4179 when value is not array4180 behaves like a valid entry4181 #value4182 returns artifacts configuration4183 #valid?4184 is valid4185 keyword: :sast, file: "gl-sast-report.json"4186 when value is an array4187 behaves like a valid entry4188 #value4189 returns artifacts configuration4190 #valid?4191 is valid4192 when value is not array4193 behaves like a valid entry4194 #value4195 returns artifacts configuration4196 #valid?4197 is valid4198 keyword: :secret_detection, file: "gl-secret-detection-report.json"4199 when value is an array4200 behaves like a valid entry4201 #value4202 returns artifacts configuration4203 #valid?4204 is valid4205 when value is not array4206 behaves like a valid entry4207 #value4208 returns artifacts configuration4209 #valid?4210 is valid4211 keyword: :dependency_scanning, file: "gl-dependency-scanning-report.json"4212 when value is an array4213 behaves like a valid entry4214 #value4215 returns artifacts configuration4216 #valid?4217 is valid4218 when value is not array4219 behaves like a valid entry4220 #value4221 returns artifacts configuration4222 #valid?4223 is valid4224 keyword: :container_scanning, file: "gl-container-scanning-report.json"4225 when value is an array4226 behaves like a valid entry4227 #value4228 returns artifacts configuration4229 #valid?4230 is valid4231 when value is not array4232 behaves like a valid entry4233 #value4234 returns artifacts configuration4235 #valid?4236 is valid4237 keyword: :cluster_image_scanning, file: "gl-cluster-image-scanning-report.json"4238 when value is an array4239 behaves like a valid entry4240 #value4241 returns artifacts configuration4242 #valid?4243 is valid4244 when value is not array4245 behaves like a valid entry4246 #value4247 returns artifacts configuration4248 #valid?4249 is valid4250 keyword: :dast, file: "gl-dast-report.json"4251 when value is an array4252 behaves like a valid entry4253 #value4254 returns artifacts configuration4255 #valid?4256 is valid4257 when value is not array4258 behaves like a valid entry4259 #value4260 returns artifacts configuration4261 #valid?4262 is valid4263 keyword: :license_scanning, file: "gl-license-scanning-report.json"4264 when value is an array4265 behaves like a valid entry4266 #value4267 returns artifacts configuration4268 #valid?4269 is valid4270 when value is not array4271 behaves like a valid entry4272 #value4273 returns artifacts configuration4274 #valid?4275 is valid4276 keyword: :performance, file: "performance.json"4277 when value is an array4278 behaves like a valid entry4279 #value4280 returns artifacts configuration4281 #valid?4282 is valid4283 when value is not array4284 behaves like a valid entry4285 #value4286 returns artifacts configuration4287 #valid?4288 is valid4289 keyword: :browser_performance, file: "browser-performance.json"4290 when value is an array4291 behaves like a valid entry4292 #value4293 returns artifacts configuration4294 #valid?4295 is valid4296 when value is not array4297 behaves like a valid entry4298 #value4299 returns artifacts configuration4300 #valid?4301 is valid4302 keyword: :browser_performance, file: "performance.json"4303 when value is an array4304 behaves like a valid entry4305 #value4306 returns artifacts configuration4307 #valid?4308 is valid4309 when value is not array4310 behaves like a valid entry4311 #value4312 returns artifacts configuration4313 #valid?4314 is valid4315 keyword: :load_performance, file: "load-performance.json"4316 when value is an array4317 behaves like a valid entry4318 #value4319 returns artifacts configuration4320 #valid?4321 is valid4322 when value is not array4323 behaves like a valid entry4324 #value4325 returns artifacts configuration4326 #valid?4327 is valid4328 keyword: :lsif, file: "lsif.json"4329 when value is an array4330 behaves like a valid entry4331 #value4332 returns artifacts configuration4333 #valid?4334 is valid4335 when value is not array4336 behaves like a valid entry4337 #value4338 returns artifacts configuration4339 #valid?4340 is valid4341 keyword: :dotenv, file: "build.dotenv"4342 when value is an array4343 behaves like a valid entry4344 #value4345 returns artifacts configuration4346 #valid?4347 is valid4348 when value is not array4349 behaves like a valid entry4350 #value4351 returns artifacts configuration4352 #valid?4353 is valid4354 keyword: :terraform, file: "tfplan.json"4355 when value is an array4356 behaves like a valid entry4357 #value4358 returns artifacts configuration4359 #valid?4360 is valid4361 when value is not array4362 behaves like a valid entry4363 #value4364 returns artifacts configuration4365 #valid?4366 is valid4367 keyword: :accessibility, file: "gl-accessibility.json"4368 when value is an array4369 behaves like a valid entry4370 #value4371 returns artifacts configuration4372 #valid?4373 is valid4374 when value is not array4375 behaves like a valid entry4376 #value4377 returns artifacts configuration4378 #valid?4379 is valid4380 keyword: :cyclonedx, file: "gl-sbom.cdx.zip"4381 when value is an array4382 behaves like a valid entry4383 #value4384 returns artifacts configuration4385 #valid?4386 is valid4387 when value is not array4388 behaves like a valid entry4389 #value4390 returns artifacts configuration4391 #valid?4392 is valid4393 when coverage_report is specified4394 is valid4395 returns artifacts configuration4396 and another report is specified4397 is valid4398 returns artifacts configuration4399 when coverage_report is nil4400 is valid4401 returns artifacts configuration as an empty hash4402 when entry value is not correct4403 #errors4404 when there is an unknown key present4405 reports error4406Gitlab::Usage::MetricDefinition4407 has all definitons valid4408 not_removed4409 includes metrics that are not removed4410 #with_instrumentation_class4411 includes definitions with instrumentation_class4412 with removed metric4413 excludes removed definitions4414 #key4415 returns a symbol from name4416 #validate4417 attribute: :description, value: nil4418 raise exception4419 with skip_validation4420 raise exception if skip_validation: false4421 does not raise exception if has skip_validation: true4422 attribute: :value_type, value: nil4423 raise exception4424 with skip_validation4425 raise exception if skip_validation: false4426 does not raise exception if has skip_validation: true4427 attribute: :value_type, value: "test"4428 raise exception4429 with skip_validation4430 raise exception if skip_validation: false4431 does not raise exception if has skip_validation: true4432 attribute: :status, value: nil4433 raise exception4434 with skip_validation4435 raise exception if skip_validation: false4436 does not raise exception if has skip_validation: true4437 attribute: :milestone, value: nil4438 raise exception4439 with skip_validation4440 raise exception if skip_validation: false4441 does not raise exception if has skip_validation: true4442 attribute: :data_category, value: nil4443 raise exception4444 with skip_validation4445 raise exception if skip_validation: false4446 does not raise exception if has skip_validation: true4447 attribute: :key_path, value: nil4448 raise exception4449 with skip_validation4450 raise exception if skip_validation: false4451 does not raise exception if has skip_validation: true4452 attribute: :product_group, value: nil4453 raise exception4454 with skip_validation4455 raise exception if skip_validation: false4456 does not raise exception if has skip_validation: true4457 attribute: :time_frame, value: nil4458 raise exception4459 with skip_validation4460 raise exception if skip_validation: false4461 does not raise exception if has skip_validation: true4462 attribute: :time_frame, value: "29d"4463 raise exception4464 with skip_validation4465 raise exception if skip_validation: false4466 does not raise exception if has skip_validation: true4467 attribute: :data_source, value: "other"4468 raise exception4469 with skip_validation4470 raise exception if skip_validation: false4471 does not raise exception if has skip_validation: true4472 attribute: :data_source, value: nil4473 raise exception4474 with skip_validation4475 raise exception if skip_validation: false4476 does not raise exception if has skip_validation: true4477 attribute: :distribution, value: nil4478 raise exception4479 with skip_validation4480 raise exception if skip_validation: false4481 does not raise exception if has skip_validation: true4482 attribute: :distribution, value: "test"4483 raise exception4484 with skip_validation4485 raise exception if skip_validation: false4486 does not raise exception if has skip_validation: true4487 attribute: :tier, value: ["test", "ee"]4488 raise exception4489 with skip_validation4490 raise exception if skip_validation: false4491 does not raise exception if has skip_validation: true4492 attribute: :name, value: "count_<adjective_describing>_boards"4493 raise exception4494 with skip_validation4495 raise exception if skip_validation: false4496 does not raise exception if has skip_validation: true4497 attribute: :repair_issue_url, value: nil4498 raise exception4499 with skip_validation4500 raise exception if skip_validation: false4501 does not raise exception if has skip_validation: true4502 attribute: :removed_by_url, value: 14503 raise exception4504 with skip_validation4505 raise exception if skip_validation: false4506 does not raise exception if has skip_validation: true4507 attribute: :performance_indicator_type, value: nil4508 raise exception4509 with skip_validation4510 raise exception if skip_validation: false4511 does not raise exception if has skip_validation: true4512 attribute: :instrumentation_class, value: "Metric_Class"4513 raise exception4514 with skip_validation4515 raise exception if skip_validation: false4516 does not raise exception if has skip_validation: true4517 attribute: :instrumentation_class, value: "metricClass"4518 raise exception4519 with skip_validation4520 raise exception if skip_validation: false4521 does not raise exception if has skip_validation: true4522 conditional validations4523 when metric has broken status4524 has to have repair issue url provided4525 #valid_service_ping_status?4526 when metric has active status4527 has to return true4528 when metric has removed status4529 has to return false4530 statuses4531 status: "active", skip_validation?: false4532 returns true/false for skip_validation4533 status: "broken", skip_validation?: false4534 returns true/false for skip_validation4535 status: "removed", skip_validation?: true4536 returns true/false for skip_validation4537 .load_all!4538 has empty list when there are no definition files4539 has one metric when there is one file4540 when the same metric is defined multiple times raises exception4541 dump_metrics_yaml4542 returns a YAML with both metrics in a sequence4543Ci::SecureFile4544 is expected to be a kind of FileStoreMounter4545 is expected to belong to project required: true4546 behaves like includes Limitable concern4547 #exceeds_limits?4548 without plan limits configured4549 is expected to eq false4550 without plan limits configured4551 is expected to eq false4552 with an existing model4553 is expected to eq true4554 validations4555 is expected to be a kind of Limitable4556 without plan limits configured4557 can create new models4558 with plan limits configured4559 can create new models4560 with an existing model4561 cannot create new models exceeding the plan limits4562 default attributes4563 is expected to eq 54564 is expected to eq 34565 validations4566 is expected to validate that :checksum cannot be empty/falsy4567 is expected to validate that :file_store cannot be empty/falsy4568 is expected to validate that :name cannot be empty/falsy4569 is expected to validate that :project_id cannot be empty/falsy4570 unique filename4571 ensures the file name is unique within a given project4572 allows duplicate file names in different projects4573 ordered scope4574 returns the newest item first4575 #checksum4576 computes SHA256 checksum on the file before encrypted4577 #checksum_algorithm4578 returns the configured checksum_algorithm4579 #file4580 returns the saved file4581 #file_extension4582 returns the extension for the file name4583 returns only the last part of the extension for the file name4584 returns nil if there is no file extension4585 #metadata_parsable?4586 returns true when the file extension has a supported parser4587 returns false when the file extension does not have a supported parser4588 #metadata_parser4589 returns an instance of Gitlab::Ci::SecureFiles::Cer when a .cer file is supplied4590 returns an instance of Gitlab::Ci::SecureFiles::P12 when a .p12 file is supplied4591 returns an instance of Gitlab::Ci::SecureFiles::MobileProvision when a .mobileprovision file is supplied4592 returns nil when the file type is not supported by any parsers4593 #update_metadata!4594 assigns the expected metadata when a parsable .cer file is supplied4595 assigns the expected metadata when a parsable .p12 file is supplied4596 assigns the expected metadata when a parsable .mobileprovision file is supplied4597 logs an error when something goes wrong with the file parsing4598Import::GithubController routing4599 to #personal_access_token4600 to #cancel_all4601 to #counts4602 behaves like importer routing4603 to #create4604 to #new4605 to #status4606 to #callback4607 to #jobs4608 to #realtime_changes4609Import::GiteaController routing4610 to #personal_access_token4611 behaves like importer routing4612 to #create4613 to #new4614 to #status4615 to #callback4616 to #jobs4617 to #realtime_changes4618Import::GitlabController routing4619 behaves like importer routing4620 to #create4621 to #new4622 to #status4623 to #callback4624 to #jobs4625 to #realtime_changes4626Import::BitbucketController routing4627 behaves like importer routing4628 to #create4629 to #new4630 to #status4631 to #callback4632 to #jobs4633 to #realtime_changes4634Import::BitbucketServerController routing4635 behaves like importer routing4636 to #create4637 to #new4638 to #status4639 to #callback4640 to #jobs4641 to #realtime_changes4642Import::FogbugzController routing4643 to #callback4644 to #new_user_map4645 to #create_user_map4646 behaves like importer routing4647 to #create4648 to #new4649 to #status4650 to #callback4651 to #jobs4652 to #realtime_changes4653Import::GitlabProjectsController routing4654 to #create4655 to #new4656Import::PhabricatorController routing4657 to #create4658 to #new4659Import::GithubGroupsController routing4660 to #status4661Gitlab::Diff::FileCollection::MergeRequestDiff4662 returns a valid instance of a DiffCollection4663 #diff_files4664 does not highlight binary files4665 does not highlight files marked as undiffable in .gitattributes4666 behaves like unfoldable diff4667 calls Gitlab::Diff::File#unfold_diff_lines with correct position4668 behaves like diff statistics4669 when include_stats is true4670 Repository#diff_stats is called4671 Gitlab::Diff::File is initialized with diff stats4672 when should not request diff stats4673 Repository#diff_stats is not called4674 behaves like cacheable diff collection4675 #write_cache4676 calls Gitlab::Diff::HighlightCache#write_if_empty4677 calls Gitlab::Diff::StatsCache#write_if_empty with diff stats4678 #clear_cache4679 calls Gitlab::Diff::HighlightCache#clear4680 calls Gitlab::Diff::StatsCache#clear4681 #diff_files4682 calls Gitlab::Diff::HighlightCache#decorate4683 when there are stats cached4684 does not make a diff stats rpc call4685 when there are no stats cached4686 makes a diff stats rpc call4687 behaves like unsortable diff files4688 #raw_diff_files4689 does not call Gitlab::Diff::FileCollectionSorter even when sorted is true4690Integrations::Buildkite4691 behaves like Integrations::BaseCi4692 default values4693 is expected to eq :ci4694 behaves like Integrations::ResetSecretFields4695 #exposing_secrets_fields4696 returns an array of strings4697 #reset_secret_fields?4698 returns false if no exposing field has changed4699 returns true if any exposing field has changed4700 validation callback4701 when an exposing field has changed4702 clears all secret fields4703 when a secret field has been updated4704 does not clear this secret field4705 when a secret field has been updated with the same value4706 does not clear this secret field4707 when no exposing field has changed4708 does not clear any secret fields4709 behaves like Integrations::HasWebHook4710 associations4711 is expected to have one service_hook inverse_of => integration4712 callbacks4713 calls #update_web_hook! when enabled4714 does not call #update_web_hook! when disabled4715 does not call #update_web_hook! when validation fails4716 #hook_url4717 returns a string4718 #url_variables4719 returns a hash4720 #hook_ssl_verification4721 returns a boolean4722 delegates to #enable_ssl_verification if the concern is included4723 #update_web_hook!4724 creates or updates a service hook4725 raises an error if the service hook could not be saved4726 does not attempt to save the service hook if there are no changes4727 #execute_web_hook!4728 creates the webhook if necessary and executes it4729 raises an error if the service hook could not be saved4730 Validations4731 when integration is active4732 is expected to validate that :project_url cannot be empty/falsy4733 is expected to validate that :token cannot be empty/falsy4734 behaves like issue tracker integration URL attribute4735 is expected to allow :project_url to be ‹"https://example.com"›4736 is expected not to allow :project_url to be ‹"example.com"›4737 is expected not to allow :project_url to be ‹"ftp://example.com"›4738 is expected not to allow :project_url to be ‹"herp-and-derp"›4739 when integration is inactive4740 is expected not to validate that :project_url cannot be empty/falsy4741 is expected not to validate that :token cannot be empty/falsy4742 .supported_events4743 supports push, merge_request, and tag_push events4744 commits methods4745 always activates SSL verification after saved4746 #hook_url4747 returns the webhook url4748 #commit_status_path4749 returns the correct status page4750 #build_page4751 returns the correct build page4752 #commit_status4753 returns the contents of the reactive cache4754 #calculate_reactive_cache4755 #commit_status4756 sets commit status to :error when status is 5004757 sets commit status to :error when status is 4044758 passes through build status untouched when status is 2004759 sets commit status to :error with a Net::OpenTimeout error4760 sets commit status to :error with a Net::ReadTimeout error4761 sets commit status to :error with a Net::WriteTimeout error4762 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error4763 sets commit status to :error with a EOFError error4764 sets commit status to :error with a SocketError error4765 sets commit status to :error with a OpenSSL::SSL::SSLError error4766 sets commit status to :error with a OpenSSL::OpenSSLError error4767 sets commit status to :error with a Errno::ECONNRESET error4768 sets commit status to :error with a Errno::ECONNREFUSED error4769 sets commit status to :error with a Errno::EHOSTUNREACH error4770 sets commit status to :error with a Errno::ENETUNREACH error4771 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error4772 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error4773 sets commit status to :error with a Net::HTTPBadResponse error4774Namespaces::InProductMarketingEmailsService#execute4775 records sent emails4776 for each track and series with the right conditions4777 track: :create, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4778 is expected to send in product marketing email 1326, 3147, :create, and 04779 track: :create, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4780 is expected to send in product marketing email 1326, 3147, :create, and 14781 track: :create, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4782 is expected to send in product marketing email 1326, 3147, :create, and 24783 track: :team_short, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4784 is expected to send in product marketing email 1326, 3147, :team_short, and 04785 track: :trial_short, interval: 2, actions_completed: {:created_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00}4786 is expected to send in product marketing email 1326, 3147, :trial_short, and 04787 track: :admin_verify, interval: 3, actions_completed: {:created_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00}4788 is expected to send in product marketing email 1326, 3147, :admin_verify, and 04789 track: :verify, interval: 4, actions_completed: {:created_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00}4790 is expected to send in product marketing email 1326, 3147, :verify, and 04791 track: :verify, interval: 8, actions_completed: {:created_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00}4792 is expected to send in product marketing email 1326, 3147, :verify, and 14793 track: :verify, interval: 13, actions_completed: {:created_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00}4794 is expected to send in product marketing email 1326, 3147, :verify, and 24795 track: :trial, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4796 is expected to send in product marketing email 1326, 3147, :trial, and 04797 track: :trial, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4798 is expected to send in product marketing email 1326, 3147, :trial, and 14799 track: :trial, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4800 is expected to send in product marketing email 1326, 3147, :trial, and 24801 track: :team, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4802 is expected to send in product marketing email 1326, 3147, :team, and 04803 track: :team, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4804 is expected to send in product marketing email 1326, 3147, :team, and 14805 track: :team, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4806 is expected to send in product marketing email 1326, 3147, :team, and 24807 when initialized with a different track4808 is expected not to send in product marketing email4809 when the previous track actions have been completed4810 is expected to send in product marketing email 1326, 3147, :team_short, and 04811 when initialized with a different interval4812 is expected not to send in product marketing email4813 when the previous track action was completed within the intervals range4814 is expected to send in product marketing email 1326, 3147, :create, and 14815 when the previous track action is not yet completed4816 is expected not to send in product marketing email4817 when the previous track action is completed outside the intervals range4818 is expected not to send in product marketing email4819 when the current track action is completed4820 is expected not to send in product marketing email4821 when the user cannot perform the current track's action4822 is expected not to send in product marketing email4823 when the user has not opted into marketing emails4824 is expected not to send in product marketing email4825 do not send emails twice4826 when user already got a specific email4827 is expected not to send in product marketing email 1328, anything, :create, and 04828 when user already got sent the whole track4829 does not send any of the emails anymore4830 when user is in two groups4831 when both groups would get the same email4832 does not send the same email twice4833 when other group gets a different email4834 sends both emails4835 when invoked with a non existing track4836 is expected to raise ArgumentError with "Track foo not defined"4837 when group is a sub-group4838 does not raise an exception4839UserDetail4840 is expected to belong to user required: false4841 is expected to define :registration_objective as an enum backed by an integer with values ‹[:basics, :move_repository, :code_storage, :exploring, :ci, :other, :joining_team]›, suffix: true4842 validations4843 #job_title4844 is expected not to validate that :job_title cannot be empty/falsy4845 is expected to validate that the length of :job_title is at most 2004846 #pronouns4847 is expected not to validate that :pronouns cannot be empty/falsy4848 is expected to validate that the length of :pronouns is at most 504849 #pronunciation4850 is expected not to validate that :pronunciation cannot be empty/falsy4851 is expected to validate that the length of :pronunciation is at most 2554852 #bio4853 is expected to validate that the length of :bio is at most 2554854 #linkedin4855 is expected to validate that the length of :linkedin is at most 5004856 #twitter4857 is expected to validate that the length of :twitter is at most 5004858 #skype4859 is expected to validate that the length of :skype is at most 5004860 #discord4861 is expected to validate that the length of :discord is at most 5004862 when discord is set4863 accepts a valid discord user id4864 throws an error when other url format is wrong4865 #location4866 is expected to validate that the length of :location is at most 5004867 #organization4868 is expected to validate that the length of :organization is at most 5004869 #website_url4870 is expected to validate that the length of :website_url is at most 5004871 only validates the website_url if it is changed4872 #save4873 behaves like prevents `nil` value4874 converts `nil` to the empty string4875 behaves like prevents `nil` value4876 converts `nil` to the empty string4877 behaves like prevents `nil` value4878 converts `nil` to the empty string4879 behaves like prevents `nil` value4880 converts `nil` to the empty string4881 behaves like prevents `nil` value4882 converts `nil` to the empty string4883 behaves like prevents `nil` value4884 converts `nil` to the empty string4885 behaves like prevents `nil` value4886 converts `nil` to the empty string4887 behaves like prevents `nil` value4888 converts `nil` to the empty string4889 #sanitize_attrs4890 encodes HTML entities4891 encodes HTML entities4892 encodes HTML entities4893 encodes HTML entities4894 does not encode HTML entities4895 does not encode HTML entities4896 sanitizes on validation4897 behaves like sanitizes html4898 sanitizes html tags4899 sanitizes iframe scripts4900 sanitizes js scripts4901 behaves like sanitizes html4902 sanitizes html tags4903 sanitizes iframe scripts4904 sanitizes js scripts4905 behaves like sanitizes html4906 sanitizes html tags4907 sanitizes iframe scripts4908 sanitizes js scripts4909 behaves like sanitizes html4910 sanitizes html tags4911 sanitizes iframe scripts4912 sanitizes js scripts4913 behaves like sanitizes html4914 sanitizes html tags4915 sanitizes iframe scripts4916 sanitizes js scripts4917 behaves like sanitizes html4918 sanitizes html tags4919 sanitizes iframe scripts4920 sanitizes js scripts4921BulkImports::Projects::Pipelines::MergeRequestsPipeline4922 #run4923 imports a merge request4924 merge request state4925 when mr is closed4926 imported mr as closed4927 when mr is merged4928 imported mr as merged4929 source & target project4930 has the new project as target4931 has the new project as source4932 when source/target projects differ4933 has no source4934 when diff_head_sha is present4935 has the new project as source4936 resource label events4937 restores resource label events4938 award emoji4939 has award emoji4940 notes4941 imports mr note4942 has award emoji4943 does not import note_html4944 system note metadata4945 restores system note metadata4946 diffs4947 imports merge request diff4948 has the correct data for merge request latest_merge_request_diff4949 imports diff files4950 diff commits4951 imports diff commits4952 assigns committer and author details to diff commits4953 assigns the correct commit users to diff commits4954 labels4955 imports labels4956 milestone4957 imports milestone4958 user assignments4959 assignees4960 imports mr assignees4961 approvals4962 imports mr approvals4963 reviewers4964 imports mr reviewers4965Gitlab::Prometheus::Queries::AdditionalMetricsEnvironmentQuery4966 queries using specific time4967 metrics query context4968 project has Kubernetes service4969 when user configured kubernetes from CI/CD > Clusters4970 query context contains kube_namespace4971 behaves like query context containing environment slug and filter4972 contains ci_environment_slug4973 contains environment filter4974 project without Kubernetes service4975 query context contains empty kube_namespace4976 behaves like query context containing environment slug and filter4977 contains ci_environment_slug4978 contains environment filter4979 with one group where two metrics is found4980 some queries return results4981 return group data only for queries with results4982 with two groups with one metric each4983 both queries return results4984 return group data both queries4985 one query returns result4986 return group data only for query with results4987 when start and end time parameters are provided4988 as unix timestamps4989 queries using the provided times4990 as Date/Time objects4991 queries using the provided times converted to unix4992HamlLint::Linter::DocumentationLinks4993 behaves like link validation rules4994 when link_to points to the existing file path4995 is expected not to report a lint4996 when link_to points to the existing file with valid anchor4997 is expected not to report a lint4998 when link_to points to the existing file path without .md extension4999 is expected not to report a lint5000 when anchor is not correct5001 is expected to report a lint5002 when help_page_path has multiple options5003 is expected to report a lint5004 when file path is wrong5005 is expected to report a lint5006 when haml ends with block definition5007 is expected to report a lint5008 when link with wrong file path is assigned to a variable5009 is expected to report a lint5010 when it is a broken code5011 is expected not to report a lint5012 when anchor belongs to a different element5013 is expected not to report a lint5014 when a simple help_page_path5015 is expected to report a lint5016 when link is not a string5017 is expected not to report a lint5018 when link is a part of the tag5019 is expected to report a lint5020 when the second link is invalid5021 is expected to report a lint5022 behaves like link validation rules5023 when link_to points to the existing file path5024 is expected not to report a lint5025 when link_to points to the existing file with valid anchor5026 is expected not to report a lint5027 when link_to points to the existing file path without .md extension5028 is expected not to report a lint5029 when anchor is not correct5030 is expected to report a lint5031 when help_page_url has multiple options5032 is expected to report a lint5033 when file path is wrong5034 is expected to report a lint5035 when haml ends with block definition5036 is expected to report a lint5037 when link with wrong file path is assigned to a variable5038 is expected to report a lint5039 when it is a broken code5040 is expected not to report a lint5041 when anchor belongs to a different element5042 is expected not to report a lint5043 when a simple help_page_url5044 is expected to report a lint5045 when link is not a string5046 is expected not to report a lint5047 when link is a part of the tag5048 is expected to report a lint5049 when the second link is invalid5050 is expected to report a lint5051 behaves like link validation rules5052 when link_to points to the existing file path5053 is expected not to report a lint5054 when link_to points to the existing file with valid anchor5055 is expected not to report a lint5056 when link_to points to the existing file path without .md extension5057 is expected not to report a lint5058 when anchor is not correct5059 is expected to report a lint5060 when Rails.application.routes.url_helpers.help_page_url has multiple options5061 is expected to report a lint5062 when file path is wrong5063 is expected to report a lint5064 when haml ends with block definition5065 is expected to report a lint5066 when link with wrong file path is assigned to a variable5067 is expected to report a lint5068 when it is a broken code5069 is expected not to report a lint5070 when anchor belongs to a different element5071 is expected not to report a lint5072 when a simple Rails.application.routes.url_helpers.help_page_url5073 is expected to report a lint5074 when link is not a string5075 is expected not to report a lint5076 when link is a part of the tag5077 is expected to report a lint5078 when the second link is invalid5079 is expected to report a lint5080 behaves like link validation rules5081 when link_to points to the existing file path5082 is expected not to report a lint5083 when link_to points to the existing file with valid anchor5084 is expected not to report a lint5085 when link_to points to the existing file path without .md extension5086 is expected not to report a lint5087 when anchor is not correct5088 is expected to report a lint5089 when Gitlab::Routing.url_helpers.help_page_url has multiple options5090 is expected to report a lint5091 when file path is wrong5092 is expected to report a lint5093 when haml ends with block definition5094 is expected to report a lint5095 when link with wrong file path is assigned to a variable5096 is expected to report a lint5097 when it is a broken code5098 is expected not to report a lint5099 when anchor belongs to a different element5100 is expected not to report a lint5101 when a simple Gitlab::Routing.url_helpers.help_page_url5102 is expected to report a lint5103 when link is not a string5104 is expected not to report a lint5105 when link is a part of the tag5106 is expected to report a lint5107 when the second link is invalid5108 is expected to report a lint5109Packages::BuildInfosFinder5110 #execute5111 with nil packages5112 is expected to be empty5113 with [] packages5114 is expected to be empty5115 with empy scope packages5116 is expected to be empty5117 with a single package5118 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]5119 behaves like returning the expected build infos5120 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_... 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5121 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]5122 behaves like returning the expected build infos5123 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_... 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5124 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [4, 3]5125 behaves like returning the expected build infos5126 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>]5127 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3]5128 behaves like returning the expected build infos5129 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>]5130 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]5131 behaves like returning the expected build infos5132 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5133 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]5134 behaves like returning the expected build infos5135 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5136 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]5137 behaves like returning the expected build infos5138 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5139 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]5140 behaves like returning the expected build infos5141 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5142 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]5143 behaves like returning the expected build infos5144 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5145 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [1, 0]5146 behaves like returning the expected build infos5147 is expected to eq [#<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5148 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]5149 behaves like returning the expected build infos5150 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5151 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [3, 2]5152 behaves like returning the expected build infos5153 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5154 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]5155 behaves like returning the expected build infos5156 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5157 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [2, 1]5158 behaves like returning the expected build infos5159 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5160 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]5161 behaves like returning the expected build infos5162 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5163 with many packages5164 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]5165 behaves like returning the expected build infos5166 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 271>, #<Packages::BuildInfo id: 10, packag... 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5167 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]5168 behaves like returning the expected build infos5169 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 271>, #<Packages::BuildInfo id: 10, packag... 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5170 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [9, 8, 4, 3]5171 behaves like returning the expected build infos5172 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 271>, #<Packages::BuildInfo id: 10, packag... 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>]5173 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [9, 8, 4, 3]5174 behaves like returning the expected build infos5175 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 271>, #<Packages::BuildInfo id: 10, packag... 5, package_id: 1, pipeline_id: 266>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>]5176 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [9, 8, 7, 4, 3, 2]5177 behaves like returning the expected build infos5178 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 271>, #<Packages::BuildInfo id: 10, packag... 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5179 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]5180 behaves like returning the expected build infos5181 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5182 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]5183 behaves like returning the expected build infos5184 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5185 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]5186 behaves like returning the expected build infos5187 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5188 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]5189 behaves like returning the expected build infos5190 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5191 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [6, 5, 1, 0]5192 behaves like returning the expected build infos5193 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 268>, #<Packages::BuildInfo id: 7, package_... 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5194 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 2, 1, 0]5195 behaves like returning the expected build infos5196 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 269>, #<Packages::BuildInfo id: 8, package_... 2, package_id: 1, pipeline_id: 263>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 262>]5197 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [6, 5, 3, 2]5198 behaves like returning the expected build infos5199 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 268>, #<Packages::BuildInfo id: 7, package_... 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5200 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 4, 3, 2]5201 behaves like returning the expected build infos5202 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 269>, #<Packages::BuildInfo id: 8, package_... 4, package_id: 1, pipeline_id: 265>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 264>]5203 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [6, 5, 2, 1]5204 behaves like returning the expected build infos5205 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 268>, #<Packages::BuildInfo id: 7, package_... 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5206 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 3, 2, 1]5207 behaves like returning the expected build infos5208 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 269>, #<Packages::BuildInfo id: 8, package_... 3, package_id: 1, pipeline_id: 264>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 263>]5209Snippets::UpdateStatisticsService5210 #execute5211 with PersonalSnippet5212 behaves like updates statistics5213 returns a successful response5214 expires statistics cache5215 schedules a namespace storage statistics update5216 when snippet statistics does not exist5217 creates snippet statistics5218 when snippet statistics exists5219 updates snippet statistics5220 when snippet does not have a repository5221 returns an error response5222 with ProjectSnippet5223 updates projects statistics "snippets_size"5224 behaves like updates statistics5225 returns a successful response5226 expires statistics cache5227 schedules a namespace storage statistics update5228 when snippet statistics does not exist5229 creates snippet statistics5230 when snippet statistics exists5231 updates snippet statistics5232 when snippet does not have a repository5233 returns an error response5234Ci::TriggerEntity5235 #as_json5236 contains required fields5237 contains user fields5238 when current user can manage triggers5239 returns short_token as token5240 contains project_trigger_path5241 does not contain edit_project_trigger_path5242 returns has_token_exposed5243 when current user is the owner of the trigger5244 returns token as token5245 contains project_trigger_path5246 contains edit_project_trigger_path5247 returns has_token_exposed5248Issuable::DiscussionsListService5249 # order random5250 fetching notes for merge requests5251 behaves like listing issuable discussions5252 when user cannot read issue5253 returns no notes5254 when user can read issuable5255 with paginated results5256 returns next page notes5257 and cannot read confidential notes5258 returns non confidential notes5259 and can read confidential notes5260 returns all notes5261 and system notes only5262 returns system notes5263 and user comments only5264 returns user comments5265 fetching notes for issue5266 behaves like listing issuable discussions5267 when user cannot read issue5268 returns no notes5269 when user can read issuable5270 with paginated results5271 returns next page notes5272 and cannot read confidential notes5273 returns non confidential notes5274 and can read confidential notes5275 returns all notes5276 and system notes only5277 returns system notes5278 and user comments only5279 returns user comments5280 without notes widget5281 returns no notes5282Gitlab::ImportExport::MergeRequestParser5283 has a source branch5284 has a target branch5285 fork merge request5286 parses a MR that has no source branch5287 parses a MR that is closed5288 parses a MR that is merged5289 when the merge request has diffs5290 when the diff is invalid5291 sets the diff to empty diff5292Projects::Operations::UpdateService5293 #execute5294 alerting setting5295 with valid params5296 when regenerate_token is not set5297 with an existing setting5298 ignores provided token5299 without an existing setting5300 behaves like setting creation5301 creates a setting5302 when regenerate_token is set5303 with an existing setting5304 regenerates token5305 without an existing setting5306 behaves like setting creation5307 creates a setting5308 with insufficient permissions5309 behaves like no operation5310 does nothing5311 with empty params5312 behaves like no operation5313 does nothing5314 metrics dashboard setting5315 without existing metrics dashboard setting5316 creates a setting5317 with existing metrics dashboard setting5318 updates the settings5319 with blank external_dashboard_url5320 updates dashboard_timezone5321 error tracking5322 with existing error tracking setting5323 updates the settings5324 disable error tracking5325 can set api_url to nil5326 without an existing error tracking setting5327 creates a setting5328 partial_update5329 with setting5330 service succeeds5331 updates attributes5332 only updates enabled attribute5333 with integrated attribute5334 updates integrated attribute5335 only updates enabled and integrated attributes5336 without setting5337 creates setting with default values5338 with masked param token5339 does not update token5340 with invalid parameters5341 does nothing5342 with inappropriate params5343 ignores params5344 grafana integration5345 without existing grafana integration5346 creates an integration5347 with an existing grafana integration5348 updates the settings5349 with all grafana attributes blank in params5350 destroys the metrics_setting entry in DB5351 prometheus integration5352 prometheus params were passed into service5353WARNING: You're overriding a previous stub implementation of `new`. Called from /builds/gitlab-org/gitlab/spec/services/projects/operations/update_service_spec.rb:441:in `block (5 levels) in <top (required)>'.. Called from /builds/gitlab-org/gitlab/spec/services/projects/operations/update_service_spec.rb:441:in `block (5 levels) in <top (required)>'.5354 uses Project#find_or_initialize_integration to include instance defined defaults and pass them to Projects::UpdateService5355 when prometheus params are not passed into service5356 does not pass any prometheus params into Projects::UpdateService5357ProtectedBranches::CacheService5358 with entity project5359 behaves like execute with entity5360 #fetch5361 caches the value5362 sets expiry on the key5363 does not set an expiry on the key after the hash is already created5364 when CACHE_LIMIT is exceeded5365 recreates cache5366 when dry_run is on5367 does not use cached value5368 when cache mismatch5369 logs an error5370 when cache matches5371 does not log an error5372 #refresh5373 clears cached values5374 metrics5375 records hit ratio metrics5376 with entity group5377 when feature flag enabled5378 behaves like execute with entity5379 #fetch5380 caches the value5381 sets expiry on the key5382 does not set an expiry on the key after the hash is already created5383 when CACHE_LIMIT is exceeded5384 recreates cache5385 when dry_run is on5386 does not use cached value5387 when cache mismatch5388 logs an error5389 when cache matches5390 does not log an error5391 #refresh5392 clears cached values5393 metrics5394 records hit ratio metrics5395 when feature flag disabled5396 behaves like execute with entity5397 #fetch5398 caches the value5399 sets expiry on the key5400 does not set an expiry on the key after the hash is already created5401 when CACHE_LIMIT is exceeded5402 recreates cache5403 when dry_run is on5404 does not use cached value5405 when cache mismatch5406 logs an error5407 when cache matches5408 does not log an error5409 #refresh5410 clears cached values5411 metrics5412 records hit ratio metrics5413Gitlab::DeployKeyAccess5414 #can_create_tag?5415 when no-one can create tag5416 returns false5417 when deploy_key_for_protected_tags FF is disabled5418 allows to push the tag5419 push tag that matches a protected tag pattern via a deploy key5420 allows to push the tag5421 #can_push_for_ref?5422 push to a protected branch of this project via a deploy key5423 when the project has active deploy key owned by this user5424 returns true5425 when the project has active deploy keys, but not by this user5426 returns false5427 when there is another branch no one can push to5428 returns false when trying to push to that other branch5429 and the deploy key added for the first protected branch is also added for this other branch5430 returns true for both protected branches5431Ci::StagePresenter5432 #latest_ordered_statuses5433 behaves like preloaded associations for CI status5434 preloads project5435 preloads build pipeline5436 preloads build tags5437 preloads build artifacts archive5438 preloads build artifacts metadata5439 #retried_ordered_statuses5440 behaves like preloaded associations for CI status5441 preloads project5442 preloads build pipeline5443 preloads build tags5444 preloads build artifacts archive5445 preloads build artifacts metadata5446Mutations::MergeRequests::Create5447 #resolve5448 when user is not a project member5449 behaves like resource not available5450 raises an error5451 when user is a direct project member5452 and user is a guest5453 behaves like resource not available5454 raises an error5455 and user is a developer5456 creates a new merge request5457 returns a new merge request5458 when optional description field is set5459 returns a new merge request with a description5460 when optional labels field is set5461 returns a new merge request with labels5462 when service cannot create a merge request5463 does not create a new merge request5464 returns errors5465 when user is an inherited member from the group5466 when project is public with private merge requests5467 and user is a guest5468 behaves like resource not available5469 raises an error5470 when project is private5471 and user is a guest5472 behaves like resource not available5473 raises an error5474DiffFileEntity5475 when there is no merge request5476 behaves like diff file entity5477 exposes correct attributes5478 behaves like diff file base entity5479 exposes essential attributes5480 when diff file does not have a blob and content sha5481 exposes some attributes as nil5482 when a viewer5483 matches the schema5484 when it is a whitespace only change5485 has whitespace_only true5486 when the highlighted lines arent shown5487 has whitespace_only nil5488 when it is a new file5489 has whitespace_only false5490 when it is a collapsed file5491 has whitespace_only false5492 diff files5493 when diff_view is parallel5494 contains only the parallel diff lines5495 when diff_view is parallel5496 contains only the inline diff lines5497 when there is a merge request5498 exposes additional attributes5499 points all urls to merge request target project5500 exposes load_collapsed_diff_url if the file viewer is collapsed5501 behaves like diff file entity5502 exposes correct attributes5503 behaves like diff file base entity5504 exposes essential attributes5505 when diff file does not have a blob and content sha5506 exposes some attributes as nil5507 when a viewer5508 matches the schema5509 when it is a whitespace only change5510 has whitespace_only true5511 when the highlighted lines arent shown5512 has whitespace_only nil5513 when it is a new file5514 has whitespace_only false5515 when it is a collapsed file5516 has whitespace_only false5517 diff files5518 when diff_view is parallel5519 contains only the parallel diff lines5520 when diff_view is parallel5521 contains only the inline diff lines5522 when diff_view is unknown5523 hides highlighted_diff_lines and parallel_diff_lines5524 #parallel_diff_lines5525 exposes parallel diff lines correctly5526 #highlighted_diff_lines5527 calls diff_lines_for_serializer on diff_file5528 behaves like diff file with conflict_type5529 #conflict_type5530 returns nil by default5531 when there is matching conflict file5532 returns false5533Mutations::Issues::SetEscalationStatus5534 #resolve5535 behaves like permission level for issue mutation is correctly verified5536 when the user is not a project member5537 behaves like when the user does not have access to the resource5538 raises an error5539 even if assigned to the issue5540 does not modify issue5541 even if author of the issue5542 does not modify issue5543 when the user is a project member5544 with guest role5545 behaves like when the user does not have access to the resource5546 raises an error5547 even if assigned to the issue5548 does not modify issue5549 even if author of the issue5550 does not modify issue5551 when the user can update the issue5552 behaves like permission level for issue mutation is correctly verified5553 when the user is not a project member5554 behaves like when the user does not have access to the resource5555 raises an error5556 even if assigned to the issue5557 does not modify issue5558 even if author of the issue5559 does not modify issue5560 when the user is a project member5561 with guest role5562 behaves like when the user does not have access to the resource5563 raises an error5564 even if assigned to the issue5565 does not modify issue5566 even if author of the issue5567 does not modify issue5568 when the user can update the escalation status5569 returns the issue with the escalation policy5570 returns errors when issue update fails5571 with non-incident issue is provided5572 raises an error5573Ci::CommitWithPipeline5574 #last_pipeline5575 returns last pipeline5576 #lazy_latest_pipeline5577 executes only 1 SQL query5578 #latest_pipeline5579 without ref argument5580 behaves like fetching latest pipeline5581 returns the latest pipeline for the project5582 returns the memoized pipeline for the key of5583 when a particular ref is specified5584 behaves like fetching latest pipeline5585 returns the latest pipeline for the project5586 returns the memoized pipeline for the key of master5587 #latest_pipeline_for_project5588 returns the latest pipeline of the commit for the given ref and project5589 #set_latest_pipeline_for_ref5590 sets the latest pipeline for a given reference5591 #status5592 returns the status of the latest pipeline for the given ref5593 returns nil when latest pipeline is not present for the given ref5594 returns the status of the latest pipeline when no ref is given5595Participable5596 .participant5597 adds the participant attributes to the existing list5598 #participants5599 returns the list of participants5600 caches the list of filtered participants5601 supports attributes returning another Participable5602 when using a Proc as an attribute5603 calls the supplied Proc5604 participable is a personal snippet5605 returns the list of participants5606 #visible_participants5607 returns the list of participants5608 when Participable is not readable by the user5609 does not return unavailable participants5610 with multiple system notes from the same author and mentioned_users5611 skips expensive checks if the author is aleady in participants list5612 behaves like visible participants for issuable with read ability5613 when source is an award emoji5614 behaves like check for participables read ability5615 receives expected ability5616 when source is a note5617 behaves like check for participables read ability5618 receives expected ability5619 when source is an internal note5620 behaves like check for participables read ability5621 receives expected ability5622 behaves like visible participants for issuable with read ability5623 when source is an award emoji5624 behaves like check for participables read ability5625 receives expected ability5626 when source is a note5627 behaves like check for participables read ability5628 receives expected ability5629 when source is an internal note5630 behaves like check for participables read ability5631 receives expected ability5632 #participant?5633 returns whether the user is a participant5634 caches the list of raw participants5635 participable is a personal snippet5636 returns whether the user is a participant5637AwardEmojiPolicy5638 when the awardable is an issue5640 is expected to be allowed :read_emoji5642 is expected not to be allowed :read_emoji5643 when the awardable is a merge request5645 is expected to be allowed :read_emoji5647 is expected not to be allowed :read_emoji5648 when the awardable is a note5650 is expected to be allowed :read_emoji5652 is expected not to be allowed :read_emoji5653 when the awardable is a snippet5655 is expected to be allowed :read_emoji5657 is expected not to be allowed :read_emoji5658Ci::Sources::Pipeline5659 is expected to belong to project required: false5660 is expected to belong to pipeline required: false5661 is expected to belong to build class_name => Ci::Build required: false inverse_of => sourced_pipelines5662 is expected to belong to source_project class_name => ::Project required: false5663 is expected to belong to source_job required: false5664 is expected to belong to source_bridge required: false5665 is expected to belong to source_pipeline required: false5666 is expected to validate that :project cannot be empty/falsy5667 is expected to validate that :pipeline cannot be empty/falsy5668 is expected to validate that :source_project cannot be empty/falsy5669 is expected to validate that :source_job cannot be empty/falsy5670 is expected to validate that :source_pipeline cannot be empty/falsy5671 loose foreign key on ci_sources_pipelines.source_project_id5672 behaves like cleanup by a loose foreign key5673 cleans up (delete or nullify) the model5674 loose foreign key on ci_sources_pipelines.project_id5675 behaves like cleanup by a loose foreign key5676 cleans up (delete or nullify) the model5677 partitioning5678 assigns partition_id and source_partition_id from pipeline and source_job (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5679Gitlab::Shell5680 is expected to respond to #remove_repository5681 .secret_token5682 memoized secret_token5683 behaves like creates and links the secret token file5684 creates and links the secret token file5685 when link_file is a broken symbolic link5686 behaves like creates and links the secret token file5687 creates and links the secret token file5688 when secret_file exists5689 reads the token from the existing file5690 behaves like creates and links the secret token file5691 creates and links the secret token file5692 projects commands5693 #remove_repository5694 returns true when the command succeeds5695 #mv_repository5696 returns true when the command succeeds5697 returns false when the command fails5698 namespace actions5699 #add_namespace5700 creates a namespace5701 #repository_exists?5702 when the repository does not exist5703 returns false5704 when the repository exists5705 returns true5706 #remove5707 removes the namespace5708 #mv_namespace5709 renames the namespace5710Gitlab::RepositoryCache5711 #cache_key5712 project repository5713 behaves like cache_key examples5714 includes the namespace5715 with a given namespace5716 includes the full namespace5717 personal snippet repository5718 behaves like cache_key examples5719 includes the namespace5720 with a given namespace5721 includes the full namespace5722 project snippet repository5723 behaves like cache_key examples5724 includes the namespace5725 with a given namespace5726 includes the full namespace5727 #expire5728 expires the given key from the cache5729 #fetch5730 fetches the given key from the cache5731 accepts a block5732 #write5733 writes the given key and value to the cache5734 passes additional options to the backend5735 #fetch_without_caching_false5736 requires a block5737 when the key does not exist in the cache5738 when the result of the block is truthy5739 returns the result of the block5740 caches the value5741 when the result of the block is falsey5742 returns the result of the block5743 does not cache the value5744 when the cached value is truthy5745 returns the cached value5746 does not execute the block5747 does not write to the cache5748 when the cached value is falsey5749 returns the result of the block5750 writes the truthy value to the cache5751Gitlab::Ci::Config::Entry::Trigger5752 when trigger config is a non-empty string5753 #valid?5754 is expected to be valid5755 #value5756 returns a trigger configuration hash5757 when trigger config an empty string5758 #valid?5759 is expected not to be valid5760 #errors5761 returns an error about an empty config5762 when trigger is a hash - cross-project5763 when project is a string5764 when project is a non-empty string5765 is valid5766 when project is an empty string5767 returns error5768 when project is not a string5769 when project is an array5770 returns error5771 when project is a boolean5772 returns error5773 when branch is provided5774 #valid?5775 is expected to be valid5776 #value5777 returns a trigger configuration hash5778 when strategy is provided5779 when strategy is depend5780 #valid?5781 is expected to be valid5782 #value5783 returns a trigger configuration hash5784 when strategy is invalid5785 #valid?5786 is expected not to be valid5787 #errors5788 returns an error about unknown config key5789 when config contains unknown keys5790 #valid?5791 is expected not to be valid5792 #errors5793 returns an error about unknown config key5794 with forward5795 is expected to be valid5796 returns a trigger configuration hash5797 when trigger is a hash - parent-child5798 with simple include5799 is expected to be valid5800 returns a trigger configuration hash5801 with project5802 is expected not to be valid5803 returns an error5804 with branch5805 is expected not to be valid5806 returns an error5807 with forward5808 is expected to be valid5809 returns a trigger configuration hash5810 when trigger configuration is not valid5811 when branch is not provided5812 #valid?5813 is expected not to be valid5814 #errors5815 returns an error message5816Gitlab::Ci::Config::External::File::Remote5817 #matching?5818 when a remote is specified5819 returns true5820 with a missing remote5821 returns false5822 with a missing remote key5823 returns false5824 #valid?5825 when is a valid remote url5826 is expected to be truthy5827 with an irregular url5828 is expected to be falsy5829 with a timeout5830 is expected to be falsy5831 when is not a yaml file5832 is expected to be falsy5833 with an internal url5834 is expected to be falsy5835 #content5836 with a valid remote file5837 returns the content of the file5838 with a timeout5839 is falsy5840 with an invalid remote url5841 is nil5842 with an internal url5843 is nil5844 #error_message5845 when remote file location is not valid5846 returns an error message describing invalid address5847 when timeout error has been raised5848 returns error message about a timeout5849 when HTTP error has been raised5850 returns error message about a HTTP error5851 when response has 404 status5852 returns error message about a timeout5853 when the URL is blocked5854 includes details about blocked URL5855 when connection refused error has been raised5856 returns details about connection failure5857 #expand_context5858 drops all parameters5859 #metadata5860 is expected to eq {:blob=>nil, :context_project=>nil, :context_sha=>"12345", :extra=>{}, :location=>"https://gitlab.com....yml", :raw=>"https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.xxxxxxxxxxx.yml", :type=>:remote}5861 #to_hash5862 with a valid remote file5863 returns the content as a hash5864 when it has `include` with rules:exists5865 returns the content as a hash5866 when interpolation has been used5867 returns the content as a hash5868Mutations::DesignManagement::Delete5869 #resolve5870 when the feature is not available5871 behaves like resource not available5872 behaves like failures5873 raises Gitlab::Graphql::Errors::ResourceNotAvailable5874 when the feature is available5875 when the user is not allowed to delete designs5876 behaves like resource not available5877 behaves like failures5878 raises Gitlab::Graphql::Errors::ResourceNotAvailable5879 deleting an already deleted file5880 fails with an argument error5881 when deleting all the designs5882 returns a new version, and no errors5883 runs no more than 30 queries5884 the current designs5885 is empty5886 when deleting a design5887 returns the expected response5888 the current designs5889 does contain designs b and c5890Crm::OrganizationsFinder5891 #execute5892 when customer relations feature is enabled for the group5893 when user does not have permissions to see organizations in the group5894 returns an empty array5895 when user is member of the root group5896 when feature flag is enabled5897 returns all group organizations5898 when user is member of the sub group5899 returns an empty array5900 when customer relations feature is disabled for the group5901 returns an empty array5902 with search informations5903 when search term is empty5904 returns all group organizations alphabetically ordered5905 when search term is not empty5906 searches for name5907 searches for description5908 searches for name and description5909 when searching for organizations state5910 returns only inactive organizations5911 returns only active organizations5912 when searching for organizations ids5913 returns the expected organizations5914 when sorting5915 returns the organiztions sorted by name in ascending order5916 returns the organizations sorted by description in descending order5917 returns the contacts sorted by default_rate in ascending order5918 .counts_by_state5919 returns correct counts5920Gitlab::ImportExport::Base::RelationObjectSaver5921 #save5922 saves relation object5923 when subrelation is present5924 saves relation object with subrelations5925 when subrelation is not a collection5926 saves subrelation as part of the relation object itself5927 when subrelation collection count is small5928 saves subrelation as part of the relation object itself5929 when some subrelations are invalid5930 saves valid subrelations and logs invalid subrelation5931 when invalid subrelation can still be persisted5932 saves the subrelation5933 when importable is group5934 saves relation without invalid subrelations5935Gitlab::LfsToken5936 #token5937 when the actor is a user5938 returns the correct username5939 returns the correct token type5940 behaves like a valid LFS token5941 returns a computed token5942 when the actor is a key5943 returns the correct username5944 returns the correct token type5945 behaves like a valid LFS token5946 returns a computed token5947 when the actor is a deploy key5948 returns the correct username5949 returns the correct token type5950 behaves like a valid LFS token5951 returns a computed token5952 when the actor is invalid5953 raises an exception5954 #token_valid?5955 where the token is invalid5956 because it's junk5957 returns false5958 because it's been fiddled with5959 returns false5960 because it was generated with a different secret5961 returns false5962 because it's expired5963 returns false5964 where the token is valid5965 returns true5966 when the actor is a regular user5967 when the user is blocked5968 returns false5969 when the user password is expired5970 returns false5971 when the actor is an ldap user5972 when the user is blocked5973 returns false5974 when the user password is expired5975 returns true5976 #deploy_key_pushable?5977 when actor is not a DeployKey5978 returns false5979 when actor is a DeployKey5980 but the DeployKey cannot push to the project5981 returns false5982 and the DeployKey can push to the project5983 returns true5984 #type5985 when actor is not a User5986 returns :lfs_deploy_token type5987 when actor is a User5988 returns :lfs_token type5989 #authentication_payload5990 returns a Hash designed for gitlab-shell5991ErrorTracking::IssueUpdateService5992 #execute5993 with authorized user5994 when update_issue returns success5995 returns the response5996 updates any related issue5997 clears the reactive cache5998 with related issue and resolving5999 closes the issue6000 when issue gets closed6001 creates a system note6002 returns a response with closed issue6003 when issue is already closed6004 does not call the close issue service6005 does not create system note6006 when status is not resolving6007 does not call the close issue service6008 does not create system note6009 when update_issue returns error6010 returns the error6011 with integrated error tracking6012 resolves the error and responds with expected format6013 with unauthorized user6014 returns error6015 with error tracking disabled6016 raises error6017Ci::CreatePipelineService6018 when the variable is set6019 uses the evaluated variable6020 when the tag is composed by two variables6021 uses the evaluated variables6022 when the variable is not set6023 uses the variable as a regular string6024 when the tag uses group variables6025 uses the evaluated variables6026 when the tag has the same variable name defined for both group and project6027 uses the project variable instead of group due to variable precedence6028 with parallel:matrix config6029 uses the evaluated variables6030Milestones::IssuesCountService6031 counts all issues including confidential6032 behaves like a counter caching service6033 #count6034 caches the count6035 #refresh_cache6036 refreshes the cache6037 #delete_cache6038 removes the cache6039 #uncached_count6040 does not cache the count6041admin/dashboard/index.html.haml6042 shows version of GitLab Workhorse6043 includes revision of GitLab for pre VERSION6044 shows the tag for GitLab version6045 does not include license breakdown6046 shows database versions for all database models6047 when show_version_check? is true6048 renders the version check badge6049 GitLab KAS6050 KAS enabled6051 includes KAS version6052 KAS disabled6053 does not include KAS version6054Projects::MoveLfsObjectsProjectsService6055 #execute6056 links the lfs objects from existent in source project6057 does not link existent lfs_object in the current project6058 rollbacks changes if transaction fails6059 when remove_remaining_elements is false6060 does not remove remaining lfs objects6061Groups::AcceptingProjectSharesFinder6062 # order random6063 when normal user6064 when the user has no access to the project to be shared6065 does not return any group6066 when the user has no access to any group6067 does not return any group6068 when the project's group has enabled lock on group sharing6069 does not return any group6070 when the user has access to groups6071 returns groups where the user has at least guest access6072 when searching6073 returns groups where the search term matches6074 for sharing outside hierarchy6075 when sharing outside hierarchy is allowed6076 returns all groups where the user has at least guest access6077 when sharing outside hierarchy is not allowed6078 returns groups where the user has at least guest access, but only from within the hierarchy6079 when groups are already linked to the project6080 does not appear in the result6081 when admin6082 returns all groups6083Clusters::AgentsFinder6084 #execute6085 is expected to contain exactly #<Clusters::Agent id: 1, created_at: "2023-04-19 10:01:57.113656587 +0000", updated_at: "2023-04-19 1...6587 +0000", project_id: 883, name: "agent-1", created_by_user_id: 1622, has_vulnerabilities: false>6086 user does not have permission6087 is expected to be empty6088 filtering by name6089 name does not match6090 is expected to be empty6091 name does match6092 is expected to contain exactly #<Clusters::Agent id: 7, created_at: "2023-04-19 10:02:00.776303098 +0000", updated_at: "2023-04-19 1...3098 +0000", project_id: 889, name: "agent-7", created_by_user_id: 1637, has_vulnerabilities: false>6093Projects::MoveProjectGroupLinksService6094 #execute6095 moves the group links from one project to another6096 does not move existent group links in the current project6097 rollbacks changes if transaction fails6098 when remove_remaining_elements is false6099 does not remove remaining project group links6100Users::CreateService6101 #execute6102 with an admin user6103 when required parameters are provided6104 returns a persisted user6105 persists the given attributes6106 user is not confirmed if skip_confirmation param is not present6107 logs the user creation6108 executes system hooks6109 does not send a notification email6110 when the current_user is not persisted6111 persists the given attributes and sets created_by_id to nil6112 when force_random_password parameter is true6113 generates random password6114 when password_automatically_set parameter is true6115 persists the given attributes6116 when skip_confirmation parameter is true6117 confirms the user6118 when reset_password parameter is true6119 resets password even if a password parameter is given6120 sends a notification email6121 with nil user6122 persists the given attributes6123Ci::PipelineSuccessUnlockArtifactsWorker6124 #perform6125 is labeled as idempotent6126 performs multiple times sequentially without raising an exception6127 unlocks the artifacts from older pipelines6128 when pipeline exists6129 when pipeline has erasable artifacts6130 calls the unlock service6131 when pipeline has no erasable artifacts6132 does not call the unlock service6133 when pipeline does not exist6134 does not call service6135Namespaces::RootStatisticsWorker#perform6136 has the `until_executed` deduplicate strategy6137 has an option to reschedule once if deduplicated6138 with a namespace6139 with remove_aggregation_schedule_lease feature flag enabled6140 behaves like bypasses aggregation schedule6141 executes refresher service6142 does not change AggregationSchedule count6143 when something goes wrong when updating6144 logs the error6145 with remove_aggregation_schedule_lease feature flag disabled6146 executes refresher service6147 deletes namespace aggregated schedule row6148 when something goes wrong when updating6149 does not delete the aggregation schedule6150 logs the error6151 with no namespace6152 does not execute the refresher service6153 with a namespace with no aggregation scheduled6154 with remove_aggregation_schedule_lease feature flag disabled6155 does not execute the refresher service6156 with remove_aggregation_schedule_lease feature flag enabled6157 behaves like bypasses aggregation schedule6158 executes refresher service6159 does not change AggregationSchedule count6160 behaves like an idempotent worker6161 is labeled as idempotent6162 performs multiple times sequentially without raising an exception6163 with remove_aggregation_schedule_lease feature flag disabled6164 deletes one aggregation schedule6165 behaves like worker with data consistency6166 .get_data_consistency_feature_flag_enabled?6167 returns true6168 .get_data_consistency6169 returns correct data consistency6170Gitlab::Conflict::FileCollection6171 #files6172 returns an array of Conflict::Files6173 #cache6174 specifies a custom namespace with the merge request commit ids6175 #can_be_resolved_in_ui?6176 returns true if conflicts for this collection can be resolved in the UI6177 returns false if conflicts for this collection can't be resolved in the UI6178 caches the result6179 #default_commit_message6180 matches the format of the git CLI commit message6181Packages::Go::VersionFinder6182 #execute6183 for the root module6184 behaves like #execute6185 returns v1.0.1, v1.0.2, v1.0.3, v1.0.46186 for the package6187 behaves like #execute6188 returns nothing6189 for the submodule6190 behaves like #execute6191 returns v1.0.3, v1.0.46192 for the root module v26193 behaves like #execute6194 returns v2.0.06195 for the bad module6196 with gomod checking enabled6197 behaves like #execute6198 returns nothing6199 with gomod checking disabled6200 behaves like #execute6201 returns v1.0.46202 #find6203 with a ref6204 returns a ref version6205 with a semver tag6206 returns a version with a semver6207 with a semver tag string6208 returns a version with a semver6209 with a commit6210 retruns a commit version6211 with a pseudo-version6212 returns a pseudo version6213 with a string that is not a semantic version6214 returns nil6215 with a pseudo-version that does not reference a commit6216 behaves like #find with an invalid argument6217 raises an argument exception: invalid pseudo-version: unknown commit6218 with a pseudo-version with a short sha6219 behaves like #find with an invalid argument6220 raises an argument exception: invalid pseudo-version: revision is shorter than canonical6221 with a pseudo-version with an invalid timestamp6222 behaves like #find with an invalid argument6223 raises an argument exception: invalid pseudo-version: does not match version-control timestamp6224Namespaces::ProcessSyncEventsWorker6225 is labeled as idempotent6226 performs multiple times sequentially without raising an exception6227 deduplication6228 has the `until_executed` deduplicate strategy6229 has an option to reschedule once if deduplicated6230 expect the job to enqueue itself again if there was more items to be processed6231 #perform6232 consumes all sync events6233 syncs namespace hierarchy traversal ids6234 logs the service result6235Packages::Debian::ProjectComponent6236 behaves like Debian Distribution Component6237 relationships6238 is expected to belong to distribution class_name => Packages::Debian::ProjectDistribution required: false inverse_of => components6239 is expected to have many files class_name => Packages::Debian::ProjectComponentFile inverse_of => component6240 validations6241 #distribution6242 is expected to validate that :distribution cannot be empty/falsy6243 #name6244 is expected to validate that :name cannot be empty/falsy6245 is expected to allow :name to be ‹"main"›6246 is expected to allow :name to be ‹"non-free"›6247 is expected to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6248 is expected not to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6249 is expected not to allow :name to be ‹"non/free"›6250 is expected not to allow :name to be ‹"hé"›6251 scopes6252 .ordered_by_name6253 sorts by name6254 .with_distribution6255 does not return other distributions6256 .with_name6257 does not return other distributions6258X509IssuerCrlCheckWorker6259 #perform6260 valid crl6261 changes certificate status for revoked certificates6262 invalid crl6263 does not change certificate status6264 not found crl6265 does not change certificate status6266 unreachable crl6267 does not change certificate status6268PersonalAccessTokens::CreateService6269 #execute6270 when current_user is an administrator6271 when admin mode is enabled6272 behaves like a successfully created token6273 creates personal access token record6274 logs the event6275 notifies the user6276 when admin mode is disabled6277 behaves like an unsuccessfully created token6278 is expected to equal false6279 is expected to eq "Not permitted to create"6280 is expected to be nil6281 when current_user is not an administrator6282 target_user is not the same as current_user6283 behaves like an unsuccessfully created token6284 is expected to equal false6285 is expected to eq "Not permitted to create"6286 is expected to be nil6287 target_user is same as current_user6288 behaves like a successfully created token6289 creates personal access token record6290 logs the event6291 notifies the user6292 when invalid scope6293 when concatenate_errors: true6294 is expected to be an instance of String6295 when concatenate_errors: false6296 is expected to be an instance of Array6297Gitlab::GithubImport::Representation::Note6298 .from_api_response6299 does not set the user if the response did not include a user6300 behaves like a Note6301 returns an instance of Note6302 the returned Note6303 includes the noteable ID6304 includes the noteable type6305 includes the author details6306 includes the note body6307 includes the created timestamp6308 includes the updated timestamp6309 includes the note ID6310 .from_json_hash6311 does not convert the author if it was not specified6312 behaves like a Note6313 returns an instance of Note6314 the returned Note6315 includes the noteable ID6316 includes the noteable type6317 includes the author details6318 includes the note body6319 includes the created timestamp6320 includes the updated timestamp6321 includes the note ID6322 #github_identifiers6323 returns a hash with needed identifiers6324projects/diffs/_viewer.html.haml6325 when there is a render error6326 renders the error6327 when the viewer is collapsed6328 renders the collapsed view6329 when there is no render error6330 prepares the viewer6331 renders the viewer6332Gitlab::Database::Partitioning::MonthlyStrategy6333 #current_partitions6334 detects both partitions6335 #missing_partitions6336 with existing partitions6337 detects the gap and the missing partition in May 20206338 detects the missing partitions at the end of the range and expects a partition for July 20206339 detects the missing partitions at the end of the range and expects a partition for August 20206340 creates partitions 6 months out from now (Sep 2020 through Feb 2021)6341 detects all missing partitions6342 when pruning partitions before June 20206343 does not include the missing partition from May 2020 because it would be dropped6344 detects the missing partition for 1 month ago (July 2020)6345 without existing partitions6346 detects the missing catch-all partition at the beginning6347 detects the missing partition for today and expects a partition for August 20206348 creates partitions 6 months out from now (Sep 2020 through Feb 20216349 detects all missing partitions6350 when pruning partitions before June 20206351 detects exactly the set of partitions from June 2020 to March 20216352 with a regular partition but no catchall (MINVALUE, to) partition6353 detects a missing catch-all partition to add before the existing partition6354 #extra_partitions6355 with existing partitions6356 without a time retention policy6357 has no extra partitions to prune6358 with a time retention policy that excludes no partitions6359 has no extra partitions to prune6360 with a time retention policy of 3 months6361 prunes the unbounded partition ending 2020-05-016362 with a time retention policy of 2 months6363 prunes the unbounded partition and the partition for May-June6364 when the retain_non_empty_partitions is true6365 prunes empty partitions6366 does not prune non-empty partitions6367Gitlab::Ci::Reports::TestReport6368 #get_suite6369 when suite name is rspec6370 is expected to eq "rspec"6371 initializes a new test suite and returns it6372 when suite name is already allocated6373 does not initialize a new test suite6374 #total_time6375 returns the total time6376 #total_count6377 returns the total count6378 #total_status6379 when all test cases succeeded6380 returns correct total status6381 when there is a failed test case6382 returns correct total status6383 when there is a skipped test case6384 returns correct total status6385 when there is an error test case6386 returns correct total status6387 #with_attachment6388 when test suites do not contain an attachment6389 returns empty test suites6390 when test suites contain an attachment6391 returns test suites with attachment6392 #suite_errors6393 when a suite has normal spec errors or failures6394 is expected to be empty6395 when there is an error test case6396 is expected to eq {"junit"=>"Existential parsing error"}6397 #error_count6398 when error test case exists6399 returns the count6400 when error test case do not exist6401 returns nothing6402 #failed_count6403 when failed test case exists6404 returns the count6405 when failed test case do not exist6406 returns nothing6407 #success_count6408 when success test case exists6409 returns the count6410 when success test case do not exist6411 returns nothing6412 #skipped_count6413 when skipped test case exists6414 returns the count6415 when skipped test case do not exist6416 returns nothing6417Discussions::CaptureDiffNotePositionService6418 image note on diff6419 is note affected by the service6420 when empty paths are passed as a param6421 does not calculate positons6422 when position tracer returned position6423 which is nil6424 does not create diff note position6425 which does not have a corresponding line6426 does not create diff note position6427Gitlab::RackAttack6428 .configure6429 extends the request class6430 configures the throttle response6431 configures the safelist6432 configures throttles if no dry-run was configured6433 configures tracks if dry-run was configured for all throttles6434 configures tracks and throttles with a selected set of dry-runs6435 enables dry-runs for `throttle_unauthenticated_api` and `throttle_unauthenticated_web` when selecting `throttle_unauthenticated`6436 user allowlist6437 is empty6438 reflects GITLAB_THROTTLE_USER_ALLOWLIST6439 .throttled_response_headers6440 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609842570}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1830"}6441 generates accurate throttled headers6442 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609844399}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1"}6443 generates accurate throttled headers6444 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609840800}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"3600"}6445 generates accurate throttled headers6446 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609889400}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609891200", "RateLimit-ResetTime"=>"Wed, 06 Jan 2021 00:00:00 GMT", "Retry-After"=>"1800"}6447 generates accurate throttled headers6448 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3400, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"57", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}6449 generates accurate throttled headers6450 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3700, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"62", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}6451 generates accurate throttled headers6452 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>59, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"1", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}6453 generates accurate throttled headers6454 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>61, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"2", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}6455 generates accurate throttled headers6456 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>15 seconds, :limit=>10, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"40", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609842615", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 10:30:15 GMT", "Retry-After"=>"15"}6457 generates accurate throttled headers6458 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>27 seconds, :limit=>10, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"23", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609842627", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 10:30:27 GMT", "Retry-After"=>"27"}6459 generates accurate throttled headers6460Gitlab::Auth::Ldap::Adapter6461 #users6462 searches with the proper options when searching by uid6463 searches with the proper options when searching by dn6464 searches with the proper options when searching with a limit6465 returns an LDAP::Person if search returns a result6466 returns empty array if search entry does not respond to uid6467 uses the right uid attribute when non-default6468 #dn_matches_filter?6469 when the search result is non-empty6470 is expected to be truthy6471 when the search result is empty6472 is expected to be falsey6473 #ldap_search6474 when the search is successful6475 and the result is non-empty6476 is expected to eq [:foo]6477 and the result is empty6478 is expected to eq []6479 when returned with expected code6480 behaves like connection retry6481 retries the operation6482 as many times as MAX_SEARCH_RETRIES6483 when no more retries6484 raises the exception6485 logs the error6486 when the search encounters an error6487 is expected to eq []6488 when the search raises an LDAP exception6489 retries the operation6490 behaves like connection retry6491 retries the operation6492 as many times as MAX_SEARCH_RETRIES6493 when no more retries6494 raises the exception6495 logs the error6496Ci::RunnerNamespace6497 behaves like includes Limitable concern6498 #exceeds_limits?6499 without plan limits configured6500 is expected to eq false6501 without plan limits configured6502 is expected to eq false6503 with an existing model6504 is expected to eq true6505 validations6506 is expected to be a kind of Limitable6507 without plan limits configured6508 can create new models6509 with plan limits configured6510 can create new models6511 with an existing model6512 cannot create new models exceeding the plan limits6513 behaves like cleanup by a loose foreign key6514 cleans up (delete or nullify) the model6515 .for_runner6516 with runner ids6517 returns requested runner namespaces6518 with runners6519 returns requested runner namespaces6520Packages::Generic::CreatePackageFileService6521 #execute6522 creates package file6523 with a status6524 updates an existing packages status6525 behaves like assigns build to package file6526 with build info6527 assigns the pipeline to the package6528 creates a new PackageFileBuildInfo record6529 with existing package6530 is expected to change `project.package_files.count` by 16531 when duplicates are not allowed6532 does not allow duplicates6533 when the package name matches the exception regex6534 is expected to change `project.package_files.count` by 16535 with multiple files for the same package and the same pipeline6536 creates the build info only once6537Gitlab::GithubImport::ReschedulingMethods6538 #perform6539 with a non-existing project6540 does not perform any work6541 notifies any waiters so they do not wait forever6542 with an existing project6543 notifies any waiters upon successfully importing the data6544 reschedules itself if the data could not be imported6545 #try_import6546 returns true when the import succeeds6547 returns false when the import fails due to hitting the GitHub API rate limit6548 #notify_waiter6549 notifies the waiter if a waiter key is specified6550 does not notify any waiters if no waiter key is specified6551Ci::JobArtifactsFinder6552 #execute6553 with empty params6554 returns all artifacts belonging to the project6555 with sort param6556 sorts the artifacts6557Sanitizable6558 behaves like a non-sanitizable field6559 id6560 has no effect6561 behaves like a non-sanitizable field6562 html_body6563 has no effect6564 behaves like a sanitizable field6565 name6566 when input is nil6567 behaves like noop6568 has no effect6569 when input does not contain any html6570 behaves like noop6571 has no effect6572 when input contains html6573 sanitizes the input6574 when input includes html entities6575 does not escape them6576 when input contains pre-escaped html entities6577 is not valid6578 behaves like noop6579 has no effect6580 when input contains double-escaped data6581 is not valid6582 behaves like noop6583 has no effect6584 when input contains a path traversal attempt6585 is not valid6586 behaves like noop6587 has no effect6588 when input contains both path traversal attempt and pre-escaped entities6589 is not valid6590 behaves like noop6591 has no effect6592 behaves like a sanitizable field6593 description6594 when input is nil6595 behaves like noop6596 has no effect6597 when input does not contain any html6598 behaves like noop6599 has no effect6600 when input contains html6601 sanitizes the input6602 when input includes html entities6603 does not escape them6604 when input contains pre-escaped html entities6605 is not valid6606 behaves like noop6607 has no effect6608 when input contains double-escaped data6609 is not valid6610 behaves like noop6611 has no effect6612 when input contains a path traversal attempt6613 is not valid6614 behaves like noop6615 has no effect6616 when input contains both path traversal attempt and pre-escaped entities6617 is not valid6618 behaves like noop6619 has no effect6620Gitlab::UntrustedRegexp6621 #initialize6622 invalid regexp6623 is expected to raise RegexpError6624 #replace_all6625 replaces all instances of the match in a string6626 #replace_gsub6627 replaces all instances of the match in a string6628 replaces nothing when no match6629 handles empty text6630 #replace6631 replaces the first instance of the match in a string6632 #===6633 returns true for a match6634 returns false for no match6635 can handle regular expressions in multiline mode6636 #match?6637 malicious regexp6638 takes under a second6639 matching regexp6640 returns an array of nil matches6641 non-matching regexp6642 returns an array of nil matches6643 #scan6644 malicious regexp6645 takes under a second6646 empty regexp6647 returns an array of nil matches6648 empty capture group regexp6649 returns an array of nil matches in an array6650 no capture group6651 returns the whole match6652 one capture group6653 returns the captured part6654 two capture groups6655 returns the captured parts6656 #extract_named_group6657 returns values for both named groups6658 returns nil if there was no match for group6659 returns nil if match is nil6660 raises if name is not a capture group6661 #match6662 when there are matches6663 returns a match object6664 when there are no matches6665 returns nil6666Banzai::Filter::WikiLinkFilter6667 doesn't rewrite absolute links6668 doesn't rewrite links to project uploads6669 when links are rewritable6670 stores original url in the data-canonical-src attribute6671 when links are not rewritable6672 does not store original url in the data-canonical-src attribute6673 when links point to the relative wiki path6674 does not rewrite links6675 does not rewrite links to old relative wiki path6676 when links point to the uploads folder6677 with an "a" html tag6678 rewrites links6679 with "img" html tag6680 inside an "a" html tag6681 rewrites links6682 outside an "a" html tag6683 rewrites links6684 with "video" html tag6685 rewrites links6686 with "audio" html tag6687 rewrites links6688 invalid links6689 doesn't rewrite invalid invalid_links like http://:80806690 doesn't rewrite invalid invalid_links like http://6691 doesn't rewrite invalid invalid_links like http://:8080/path6692Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules6693 #perform!6694 when pipeline has been skipped by workflow configuration6695 does not save the pipeline6696 breaks the chain6697 attaches an error to the pipeline6698 saves workflow_rules_result6699 when pipeline has not been skipped by workflow configuration6700 continues the pipeline processing chain6701 does not skip the pipeline6702 attaches no errors6703 saves workflow_rules_result6704Gitlab::HTTPConnectionAdapter6705 #connection6706 when local requests are allowed6707 sets up the connection6708 when local requests are not allowed6709 sets up the connection6710 when it is a request to local network6711 raises error6712 when local request allowed6713 sets up the connection6714 when it is a request to local address6715 raises error6716 when local request allowed6717 sets up the connection6718 when port different from URL scheme is used6719 sets up the addr_port accordingly6720 when DNS rebinding protection is disabled6721 sets up the connection6722 when URL scheme is not HTTP/HTTPS6723 raises error6724Banzai::Filter::BroadcastMessagePlaceholdersFilter6725 when current user is set6726 replaces placeholder in text6727 is expected to eq "Email: helloworld@example.com"6728 replaces placeholder when they are in a link6729 is expected to eq "<a href=\"http://example.com?email=helloworld%40example.com\">link</a>"6730 replaces placeholder when they are in an escaped link6731 is expected to eq "<a href=\"http://example.com?name=GitLab+Tanunki+%3A%29\">link</a>"6732 works with empty text6733 is expected to eq " "6734 replaces multiple placeholders in a given text6735 is expected to eq "helloworld@example.com GitLab Tanunki :)"6736 available placeholders6737 replaces the email of the user6738 is expected to eq "helloworld@example.com"6739 replaces the name of the user6740 is expected to eq "GitLab Tanunki :)"6741 replaces the ID of the user6742 is expected to eq "1752"6743 replaces the username of the user6744 is expected to eq "user807"6745 replaces the instance_id6746 is expected to eq "123"6747 when there is no current user set6748 replaces placeholder with empty string6749 is expected to eq "Email: "6750Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated6751 behaves like value stream analytics event6752 is expected to be a kind of String6753 is expected to be a kind of Symbol6754 is expected to include ApplicationRecord(abstract)6755 is expected to respond to #timestamp_projection6756 is expected to respond to #html_description6757 is expected to be a kind of Array6758 #apply_query_customization6759 expects an ActiveRecord::Relation object as argument and returns a modified version of it6760 #hash_code6761 returns a hash that uniquely identifies an event6762 does not differ when the same object is built with the same params6763 behaves like LEFT JOIN-able value stream analytics event6764 can use the event as LEFT JOIN6765 when looking at the record with data6766 contains the timestamp expression6767 when looking at the record without data6768 returns nil for the timestamp expression6769Mutations::Groups::Update6770 is expected to require graphql authorizations :admin_group6771 #resolve6772 changing shared runners setting6773 user_role: :owner, shared_examples_name: "updating the group shared runners setting"6774 behaves like updating the group shared runners setting6775 updates the group shared runners setting6776 returns no errors6777 with invalid params6778 doesn't update the shared_runners_setting6779 returns an error6780 user_role: :developer, shared_examples_name: "denying access to group shared runners setting"6781 behaves like denying access to group shared runners setting6782 raises Gitlab::Graphql::Errors::ResourceNotAvailable6783 user_role: :reporter, shared_examples_name: "denying access to group shared runners setting"6784 behaves like denying access to group shared runners setting6785 raises Gitlab::Graphql::Errors::ResourceNotAvailable6786 user_role: :guest, shared_examples_name: "denying access to group shared runners setting"6787 behaves like denying access to group shared runners setting6788 raises Gitlab::Graphql::Errors::ResourceNotAvailable6789 user_role: :anonymous, shared_examples_name: "denying access to group shared runners setting"6790 behaves like denying access to group shared runners setting6791 raises Gitlab::Graphql::Errors::ResourceNotAvailable6792ApplicationCable::Connection6793 when session cookie is set6794 when user is logged in6795 sets current_user6796 with a stale password6797 sets current_user to nil6798 when user is not logged in6799 sets current_user to nil6800 when session cookie is not set6801 sets current_user to nil6802 when session cookie is an empty string6803 sets current_user to nil6804Tooling::Danger::FeatureFlag6805 #feature_flag_files6806 retrieves added feature flag files6807 with added added feature flag files6808 returns an array of Found objects6809 without added added feature flag files6810 returns an array of Found objects6811 retrieves modified feature flag files6812 with modified modified feature flag files6813 returns an array of Found objects6814 without modified modified feature flag files6815 returns an array of Found objects6816 retrieves deleted feature flag files6817 with deleted deleted feature flag files6818 returns an array of Found objects6819 without deleted deleted feature flag files6820 returns an array of Found objects6821 #stage_label6822 when there is no stage label6823 returns nil6824 when there is a stage label6825 returns the stage label6826 Tooling::Danger::FeatureFlag::Found6827 #name6828 returns value from the YAML6829 #introduced_by_url6830 returns value from the YAML6831 #rollout_issue_url6832 returns value from the YAML6833 #milestone6834 returns value from the YAML6835 #type6836 returns value from the YAML6837 #group6838 returns value from the YAML6839 #default_enabled6840 returns value from the YAML6841 #raw6842 returns the raw YAML6843 #group_match_mr_label?6844 when group is nil6845 is true only if MR has no group label6846 when group is not nil6847 is true only if MR has the same group label6848Groups::ObservabilityHelper6849 # order random6850 #observability_page_title6851 returns the title for action: dashboards6852 returns the title for action: manage6853 returns the title for action: explore6854 returns the title for action: datasources6855 returns the default title for unknown action6856 #observability_iframe_src6857 returns the iframe src for action: dashboards6858 returns the iframe src for action: manage6859 returns the iframe src for action: explore6860 returns the iframe src for action: datasources6861 returns the iframe src when action is not recognised6862 returns the iframe src when observability_path is missing6863Tooling::Danger::ProductIntelligence6864 #check!6865 with growth experiment label6866 doesn't add new labels6867 doesn't add new warnings6868 without growth experiment label6869 with approved label6870 doesn't add new labels6871 doesn't add new warnings6872 without approved label6873For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended6874Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).6875For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).6876markdown formatted list6877 adds new labels6878 warns with proper message6879 with product intelligence::review pending label6880For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended6881Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).6882For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).6883markdown formatted list6884 doesn't add new labels6885 with product intelligence::approved label6886 doesn't add new labels6887 with the product intelligence label6888 with ci? false6889For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended6890Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).6891For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).6892markdown formatted list6893 doesn't add new labels6894 with ci? true6895For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended6896Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).6897For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).6898markdown formatted list6899 adds new labels6900 #check_affected_scopes!6901 when a model was modified6902 when a scope is changed6903 and a metrics uses the affected scope6904 producing warning6905 when no metrics using the affected scope6906 doesnt do anything6907 when an unrelated model with matching scope was modified6908 doesnt do anything6909 when models arent modified6910 doesnt do anything6911 #check_usage_data_insertions!6912 when usage_data.rb is modified6913 and has insertions6914 produces warning6915 and changes are not insertions6916 doesnt do anything6917 when usage_data.rb is not modified6918 and another file has insertions6919 doesnt do anything6920Banzai::Renderer6921 #cache_collection_render6922 when an item has a rendered field6923 does not touch redis if the field is in the cache6924 #render_field6925 without cache6926 returns cacheless render field6927 with cache6928 with a stale cache6929 caches and returns the result6930 skips database caching on a GitLab read-only instance6931 with an up-to-date cache6932 uses the cache6933 #cacheless_render6934 without cache6935 returns cacheless render field6936 #post_process6937 when xhtml6938 without :post_process_pipeline key6939 uses PostProcessPipeline6940 with :post_process_pipeline key6941 uses passed post process pipeline6942 when not xhtml6943 without :post_process_pipeline key6944 uses PostProcessPipeline6945 with :post_process_pipeline key6946 uses passed post process pipeline6947Gitlab::Database::Partitioning::SlidingListStrategy6948 #current_partitions6949 detects both partitions6950 #validate_and_fix6951 does not call change_column_default if the partitioning in a valid state6952 calls change_column_default on partition_key with the most default partition number6953 does not change the default column if it has been changed in the meanwhile by another process6954 #active_partition6955 is the partition with the largest value6956 #missing_partitions6957 when next_partition_if returns true6958 is a partition definition for the next partition in the series6959 when next_partition_if returns false6960 is empty6961 when there are no partitions for the table6962 returns a partition for value 16963 #extra_partitions6964 when some partitions are true for detach_partition_if6965 is the leading set of partitions before that value6966 when all partitions are true for detach_partition_if6967 is all but the most recent partition6968 #initial_partition6969 starts with the value 16970 #next_partition6971 is one after the active partition6972 #ensure_partitioning_column_ignored!6973 raises when the column is not ignored6974 does not raise when the column is ignored6975 redirecting inserts as the active partition changes6976 redirects to the new partition6977Mutations::Todos::MarkDone6978 is expected to require graphql authorizations :update_todo6979 #resolve6980 marks a single todo as done6981 handles a todo which is already done as expected6982 ignores requests for todos which do not belong to the current user6983Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildFinished6984 behaves like value stream analytics event6985 is expected to be a kind of String6986 is expected to be a kind of Symbol6987 is expected to include ApplicationRecord(abstract)6988 is expected to respond to #timestamp_projection6989 is expected to respond to #html_description6990 is expected to be a kind of Array6991 #apply_query_customization6992 expects an ActiveRecord::Relation object as argument and returns a modified version of it6993 #hash_code6994 returns a hash that uniquely identifies an event6995 does not differ when the same object is built with the same params6996 behaves like LEFT JOIN-able value stream analytics event6997 can use the event as LEFT JOIN6998 when looking at the record with data6999 contains the timestamp expression7000 when looking at the record without data7001 returns nil for the timestamp expression7002Issuable::DestroyLabelLinksService7003 #execute7004 when target is an Issue7005 behaves like service deleting label links of an issuable7006 deletes label links for specified target ID and type7007 when target is a MergeRequest7008 behaves like service deleting label links of an issuable7009 deletes label links for specified target ID and type7010BulkInsertSafe7011-- create_table(:_test_bulk_insert_parent_items, {:force=>true})7012 -> 0.0059s7013-- create_table(:_test_bulk_insert_items, {:force=>true})7014 -> 0.0117s7015-- create_table(:_test_bulk_insert_items_with_composite_pk, {:id=>false, :force=>true})7016 -> 0.0024s7017-- execute("ALTER TABLE _test_bulk_insert_items_with_composite_pk ADD PRIMARY KEY (id,name);")7018 -> 0.0016s7019 BulkInsertItem7020 behaves like a BulkInsertSafe model7021 when calling class methods directly7022 raises an error when method is not bulk-insert safe7023 does not raise an error when method is bulk-insert safe7024 .bulk_insert!7025 when all items are valid7026 inserts them all7027 returns an empty array7028 when some items are invalid7029 does not insert any of them and raises an error7030 inserts them anyway when bypassing validations7031 when inheriting class methods7032 raises an error when method is not bulk-insert safe7033 does not raise an error when method is bulk-insert safe7034 primary keys7035 raises error if primary keys are set prior to insertion7036 .bulk_insert!7037 inserts items in the given number of batches7038 inserts items with belongs_to association7039 items can be properly fetched from database7040 rolls back the transaction when any item is invalid7041 does nothing and returns an empty array when items are empty7042 with returns option set7043 when is set to :ids7044 is expected to contain exactly (a kind of Integer)7045 when is set to nil7046 is expected to eq []7047 when is set to a list of attributes7048 is expected to contain exactly [(a kind of Integer), "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"]7049 when duplicate items are to be inserted7050 .bulk_insert!7051 when skip_duplicates is set to false7052 raises an exception7053 when skip_duplicates is set to true7054 does not update existing object7055 .bulk_upsert!7056 updates existing object7057 when the `created_at` attribute is provided7058 does not change the existing `created_at` value7059 when a model with composite primary key is inserted7060WARNING: Active Record does not support composite primary key.7061_test_bulk_insert_items_with_composite_pk has composite primary key. Composite primary key is ignored.7062 successfully inserts an item7063-- drop_table(:_test_bulk_insert_items, {:force=>true})7064 -> 0.0041s7065-- drop_table(:_test_bulk_insert_parent_items, {:force=>true})7066 -> 0.0025s7067-- drop_table(:_test_bulk_insert_items_with_composite_pk, {:force=>true})7068 -> 0.0020s7069Gitlab::Metrics::GlobalSearchSlis7070 # order random7071 #record_error_rate7072 calls increment on the error rate SLI7073 #record_apdex7074 search_type: "basic", code_search: false, duration_target: 8.8127075 increments the global_search SLI as a success if the elapsed time is within the target7076 increments the global_search SLI as a failure if the elapsed time is not within the target7077 search_type: "basic", code_search: true, duration_target: 27.5387078 increments the global_search SLI as a success if the elapsed time is within the target7079 increments the global_search SLI as a failure if the elapsed time is not within the target7080 search_type: "advanced", code_search: false, duration_target: 2.4527081 increments the global_search SLI as a success if the elapsed time is within the target7082 increments the global_search SLI as a failure if the elapsed time is not within the target7083 search_type: "advanced", code_search: true, duration_target: 15.527084 increments the global_search SLI as a success if the elapsed time is within the target7085 increments the global_search SLI as a failure if the elapsed time is not within the target7086 #initialize_slis!7087 initializes Apdex SLIs for global_search7088 initializes ErrorRate SLIs for global_search7089 when initializeing for limited types7090 api: true, web: true7091 only initializes for the relevant endpoints7092 api: true, web: false7093 only initializes for the relevant endpoints7094 api: false, web: true7095 only initializes for the relevant endpoints7096 api: false, web: false7097 only initializes for the relevant endpoints7098Resolvers::ProjectPipelineResolver7099 is expected to have nullable GraphQL type Pipeline7100 resolves pipeline for the passed iid7101 resolves pipeline for the passed sha7102 keeps the queries under the threshold for iid7103 keeps the queries under the threshold for sha7104 does not resolve a pipeline outside the project7105 errors when no iid or sha is passed7106 errors when both iid and sha are passed7107 when the pipeline is a dangling pipeline7108 resolves pipeline for the passed iid7109Gitlab::Config::Loader::Yaml7110 when max yaml size and depth are set in ApplicationSetting7111 uses ApplicationSetting values rather than the defaults7112 when yaml syntax is correct7113 #valid?7114 returns true7115 #load!7116 returns a valid hash7117 when yaml syntax is incorrect7118 #valid?7119 returns false7120 #load!7121 raises error7122 when there is an unknown alias7123 #initialize7124 raises FormatError7125 when yaml config is empty7126 #valid?7127 returns false7128 #load_raw!7129 raises error7130 when yaml size is too large7131 #valid?7132 returns false7133 #load!7134 raises FormatError7135 when yaml has cyclic data structure7136 #valid?7137 returns false7138 #load!7139 raises FormatError7140 #load_raw!7141 loads keys as strings7142 #load!7143 symbolizes keys7144 #blank?7145 when the loaded YAML is empty7146 returns true7147 when the loaded YAML has content7148 returns false7149Grafana::TimeWindow7150 #formatted7151 is expected to eq {:end=>"2019-03-17T13:10:00Z", :start=>"2019-03-17T05:10:00Z"}7152 #in_milliseconds7153 is expected to eq {:from=>1552799400000, :to=>1552828200000}7154 when non-unix parameters are provided7155 is expected to eq {:from=>1552799400000, :to=>1552828200000}7156Grafana::RangeWithDefaults7157 #to_hash7158 is expected to eq {:from=>#<Grafana::Timestamp:0x00007f6d5c36f1e8 @time=2019-03-17 05:10:00 +0000>, :to=>#<Grafana::Timestamp:0x00007f6d5c36f058 @time=2019-03-17 13:10:00 +0000>}7159 when only "to" is provided7160 has the expected properties7161 when only "from" is provided7162 has the expected properties7163 when no parameters are provided7164 has the expected properties7165Grafana::Timestamp7166 #formatted7167 is expected to eq "2019-03-17T05:10:00Z"7168 #to_ms7169 is expected to eq 15527994000007170 .from_ms_since_epoch7171 is expected to be a kind of Grafana::Timestamp7172 when the input is not a unix-ish timestamp7173 raises an error7174RunPipelineScheduleWorker7175 has an until_executed deduplicate strategy7176 #perform7177 when a schedule not found7178 does not call the Service7179 when a schedule project is missing7180 does not call the Service7181 when a user not found7182 does not call the Service7183 #run_pipeline_schedule7184 when pipeline can be created7185 when pipeline is persisted7186 returns the service response7187 does not log errors7188 does not change the next_run_at7189 when scheduling option is given as true7190 returns the service response7191 does not log errors7192 changes the next_run_at7193 when pipeline was not persisted7194 logs a pipeline creation error7195 when schedule is already executed7196 does not change the next_run_at7197 creates a pipeline7198 when database statement timeout happens7199 increments Prometheus counter7200 logging a pipeline error7201Gitlab::Analytics::CycleAnalytics::RecordsFetcher7202 #serialized_records7203 for issue based stage7204 returns all records7205 passes a hash with all expected attributes to the serializer7206 when records are loaded by guest7207 filters out confidential issues7208 for merge request based stage7209 returns all records7210 passes a hash with all expected attributes to the serializer7211 pagination7212 limits the results7213 loads the record for the next page7214Sidebars::YourWork::Menus::MergeRequestsMenu7215 # order random7216 #pill_count7217 returns the assigned_open_merge_requests_count of the user7218 memoizes the query7219 #has_pill?7220 when count is zero7221 returns false7222 when count is larger than zero7223 returns true7224 submenu items7225 order: 0, title: "Assigned", key: :assigned7226 renders items in the right order7227 when there are no MR counts7228 shows a pill even though count is zero7229 when there are MR counts7230 shows a pill with the correct count7231 order: 1, title: "Review requests", key: :review_requested7232 renders items in the right order7233 when there are no MR counts7234 shows a pill even though count is zero7235 when there are MR counts7236 shows a pill with the correct count7237UserSerializer7238 serializer with merge request context7239 returns a user with can_merge option7240Gitlab::GitalyClient::RemoteService7241 #find_remote_root_ref7242 sends an find_remote_root_ref message and returns the root ref7243 ensure ref is a valid UTF-8 string7244 #update_remote_mirror7245 sends an update_remote_mirror message7246 .exists?7247 when the remote doesn't exist7248 returns false7249Gitlab::Usage::Metrics::Aggregates::Sources::PostgresHll7250 metric calculations7251 .calculate_events_union7252 returns the number of unique events in the union of all metrics7253 when there is no aggregated data saved7254 raises error when union data is missing7255 when there is only one metric defined as aggregated7256 returns the number of unique events for that metric7257 .calculate_metrics_intersections7258 returns the number of common events in the intersection of all metrics7259 when there is no aggregated data saved7260 raises error when union data is missing7261 when there is only one metric defined in aggregate7262 returns the number of common/unique events for the intersection of that metric7263 .save_aggregated_metrics7264 with compatible data argument7265 persists serialized data in Redis7266 with monthly key7267 persists serialized data in Redis7268 with all_time key7269 persists serialized data in Redis7270 error handling7271 rescues and reraise ::Redis::CommandError for development and test environments7272 for environment different than development7273 rescues ::Redis::CommandError7274 with incompatible data argument7275 raises error for development environment7276 for environment different than development7277 does not persist data in Redis7278LfsObjectUploader7279 behaves like builds correct paths7280 #store_dir7281 behaves like matches the method pattern7282 is expected to match /\h{2}\/\h{2}/7283 #cache_dir7284 behaves like matches the method pattern7285 is expected to match /\/lfs-objects\/tmp\/cache/7286 #work_dir7287 behaves like matches the method pattern7288 is expected to match /\/lfs-objects\/tmp\/work/7289 #upload_path7290 behaves like matches the method pattern7291 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7292 #relative_path7293 is relative (PENDING: Path not set, skipping.)7294 .absolute_path7295 behaves like matches the method pattern7296 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7297 .base_dir7298 behaves like matches the method pattern7299 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7300 path traversal exploits7301 throws an exception7302 object store is REMOTE7303 behaves like builds correct paths7304 #store_dir7305 behaves like matches the method pattern7306 is expected to match /\h{2}\/\h{2}/7307 #cache_dir7308 behaves like matches the method pattern7309 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7310 #work_dir7311 behaves like matches the method pattern7312 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7313 #upload_path7314 behaves like matches the method pattern7315 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7316 #relative_path7317 is relative (PENDING: Path not set, skipping.)7318 .absolute_path7319 behaves like matches the method pattern7320 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7321 .base_dir7322 behaves like matches the method pattern7323 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7324 path traversal exploits7325 throws an exception7326 remote file7327 with object storage enabled7328 can store file remotely7329Mutations::ResolvesIssuable7330 with issues7331 behaves like resolving an issuable in GraphQL7332 when user has access7333 resolves issuable by iid7334 the IID does not refer to a valid issuable7335 returns nil7336 the parent path is not present7337 returns nil7338 with merge requests7339 behaves like resolving an issuable in GraphQL7340 when user has access7341 resolves issuable by iid7342 the IID does not refer to a valid issuable7343 returns nil7344 the parent path is not present7345 returns nil7346Gitlab::Auth::KeyStatusChecker7347 #show_console_message?7348 for an expired key7349 is expected to eq true7350 for a key expiring in the next 7 days7351 is expected to eq true7352 for a key expiring after the next 7 days7353 is expected to eq false7354 for a key that never expires7355 is expected to eq false7356 #console_message7357 for an expired key7358 is expected to eq "INFO: Your SSH key has expired. Please generate a new key."7359 for a key expiring in the next 7 days7360 is expected to eq "INFO: Your SSH key is expiring soon. Please generate a new key."7361 for a key expiring after the next 7 days7362 is expected to be nil7363 for a key that never expires7364 is expected to be nil7365PagesDomains::CreateAcmeOrderService7366 saves order to database before requesting validation7367 generates and saves private key7368 properly saves order attributes7369 properly saves challenge attributes7370Users::MigrateRecordsToGhostUserInBatchesService7371 # order random7372 #execute7373 stops when execution time limit reached7374 calls Users::MigrateRecordsToGhostUserService7375 process jobs ordered by the consume_after timestamp7376 reschedules job in case of an error7377projects/pipeline_schedules/_pipeline_schedule7378 taking ownership of schedule7379 when non-owner is signed in7380 non-owner can take ownership of pipeline7381 when owner is signed in7382 owner cannot take ownership of pipeline7383Gitlab::Database::SchemaValidation::TrackInconsistency7384 # order random7385 #execute7386 when is not GitLab.com7387 does not create a schema inconsistency record7388 when the issue creation fails7389 does not create a schema inconsistency record7390 when a new inconsistency is found7391 creates a new schema inconsistency record7392 when the schema inconsistency already exists7393 does not create a schema inconsistency record7394Sidebars::Projects::Menus::DeploymentsMenu7395 behaves like not serializable as super_sidebar_menu_args7396 returns nil7397 #render?7398 when menu does not have any menu items7399 returns false7400 when menu has menu items7401 returns true7402 Menu Items7403 Feature flags7404 behaves like access rights checks7405 is expected not to be nil7406 when the user does not have access7407 is expected to be nil7408 when the feature is disabled7409 is expected to be nil7410 Environments7411 behaves like access rights checks7412 is expected not to be nil7413 when the user does not have access7414 is expected to be nil7415 when the feature is disabled7416 is expected to be nil7417 Releases7418 behaves like access rights checks7419 is expected not to be nil7420 when the user does not have access7421 is expected to be nil7422 when the feature is disabled7423 is expected to be nil7424Gitlab::GithubImport::Importer::Attachments::MergeRequestsImporter7425 # order random7426 #collection_method7427 is expected to eq :merge_request_attachments7428 #object_type7429 is expected to eq :merge_request_attachment7430 #id_for_already_imported_cache7431 is expected to eq 14787432 #sidekiq_worker_class7433 is expected to eq Gitlab::GithubImport::Attachments::ImportMergeRequestWorker7434 #sequential_import7435 imports each project merge request attachments7436 when merge request is already processed7437 doesn't import this merge request attachments7438CustomerRelations::Contacts::UpdateService7439 #execute7440 when the user has no permission7441 returns an error7442 when user has permission7443 when first_name is changed7444 updates the contact7445 when activating7446 updates the contact7447 when deactivating7448 updates the contact7449 when the contact is invalid7450 returns an error7451SystemNotes::AlertManagementService7452 #create_new_alert7453 has the appropriate message7454 behaves like a system note7455 has the correct attributes7456 #change_alert_status7457 with no specified reason7458 has the appropriate message7459 behaves like a system note7460 has the correct attributes7461 with reason provided7462 has the appropriate message7463 #new_alert_issue7464 has the appropriate message7465 behaves like a system note7466 has the correct attributes7467 #log_resolving_alert7468 has the appropriate message7469 behaves like a system note7470 has the correct attributes7471Packages::Helm::IndexPresenter7472 #entries7473 returns the correct hash7474 with an unknown channel7475 is expected to be empty7476 with a nil channel7477 is expected to be empty7478 #api_version7479 is expected to eq "v1"7480 #generated7481 returns the expected format7482 #server_info7483 is expected to eq {"contextPath"=>"/api/v4/projects/981/packages/helm"}7484 with url encoded project id param7485 is expected to eq {"contextPath"=>"/api/v4/projects/foo%2Fbar/packages/helm"}7486HasEnvironmentScope7487 is expected to allow :environment_scope to be ‹"*"›7488 is expected to allow :environment_scope to be ‹"review/*"›7489 is expected not to allow :environment_scope to be ‹""›7490 is expected not to allow :environment_scope to be ‹"!!()()"›7491 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure7492 .on_environment7493 returns scoped objects7494 returns only the most relevant object if relevant_only is true7495 returns scopes ordered by lowest precedence first7496 #environment_scope=7497 when the new environment_scope is nil7498 strips leading and trailing whitespaces7499 when the new environment_scope has leadind and trailing whitespaces7500 strips leading and trailing whitespaces7501 .for_environment7502 when the environment is present7503 is expected to eq [#<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "ciO3/QEczHWPxCkrYnXR0w==\n", e...ted: false, environment_scope: "production/*", masked: false, variable_type: "env_var", raw: false>]7504 when the environment is nil7505 is expected to eq [#<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "ciO3/QEczHWPxCkrYnXR0w==\n", e...982, protected: false, environment_scope: "*", masked: false, variable_type: "env_var", raw: false>]7506Preloaders::ProjectPolicyPreloader7507 # order random7508 avoids N+1 queries when authorizing a list of projects7509PrometheusMetricsFinder7510 #execute7511 with params7512 with appropriate indexes7513 with project7514 is expected to eq [#<PrometheusMetric id: 1, project_id: 991, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...16 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]7515 with group7516 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 1, project_id: 991, title: [FILTERED], query: "avg(metric)", y_label: "y_label...216 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7517 with title7518 is expected to contain exactly #<PrometheusMetric id: 1, project_id: 991, title: [FILTERED], query: "avg(metric)", y_label: "y_label...216 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7519 with y_label7520 is expected to contain exactly #<PrometheusMetric id: 1, project_id: 991, title: [FILTERED], query: "avg(metric)", y_label: "y_label...216 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7521 with common7522 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique ...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7523 with ordered7524 is expected to eq [#<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]7525 with indentifier7526 raises an error7527 with common7528 is expected to contain exactly #<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique ...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7529 with id7530 raises an error7531 with id7532 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7533 with multiple params7534 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5284 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7535 without an appropriate index7536 raises an error7537 without params7538 raises an error7539Packages::Event7540 # order random7541 .event_allowed?7542 is expected to eq true7543 behaves like handle forbidden event type7544 is expected to eq false7545 .counters_for7546 is expected to contain exactly "i_package_push_package", "i_package_push_package_by_deploy_token", and "i_package_npm_push_package"7547 behaves like handle forbidden event type7548 is expected to eq []7549 .unique_counters_for7550 is expected to contain exactly "i_package_npm_deploy_token"7551 behaves like handle forbidden event type7552 is expected to eq []7553 when an originator type is quest7554 is expected to eq []7555SystemCheck::Orphans::NamespaceCheck7556 #multi_check7557 all orphans7558 prints list of all orphaned namespaces except @hashed7559 few orphans with existing namespace7560 prints list of orphaned namespaces7561 few orphans with existing namespace and parents with same name as orphans7562 prints list of orphaned namespaces ignoring parents with same namespace as orphans7563 no orphans7564 prints an empty list ignoring @hashed7565Gitlab::Ci::Input::Arguments::Required7566 # order random7567 returns an error if user-provided value is unspecified7568 returns a user-provided value if it is present7569 returns an empty value if user-provider value is empty7570 .matches?7571 matches specs without configuration7572 matches specs with empty configuration7573 matches specs with an empty hash configuration7574 does not match specs with configuration7575Gitlab::ErrorTracking::Processor::SanitizeErrorMessageProcessor7576 .call7577 with Raven event7578 behaves like processes the exception7579 cleans the exception message7580 with Sentry event7581 behaves like processes the exception7582 cleans the exception message7583 with invalid event7584 does nothing7585Sidebars::Projects::SuperSidebarPanel7586 # order random7587 implements #super_sidebar_context_header7588 #renderable_menus7589 is exposed as a renderable menu7590API::Entities::MergeRequestChanges7591 exposes basic entity fields7592 when #expose_raw_diffs? returns false7593 does not access merge_request.raw_diffs7594 when #expose_raw_diffs? returns true7595 does not access merge_request.raw_diffs7596 :overflow field7597 when :access_raw_diffs is true7598 reports false7599Users::EmailVerification::ValidateTokenService7600 #execute7601 with a valid attribute7602 attr: :unlock_token7603 when successful7604 returns a success status7605 when rate limited7606 returns a failure status7607 when expired7608 returns a failure status7609 when invalid7610 returns a failure status7611 when encrypted token was not set and a blank token is provided7612 returns a failure status7613 attr: :confirmation_token7614 when successful7615 returns a success status7616 when rate limited7617 returns a failure status7618 when expired7619 returns a failure status7620 when invalid7621 returns a failure status7622 when encrypted token was not set and a blank token is provided7623 returns a failure status7624 with an invalid attribute7625 raises an error7626Gitlab::SafeRequestLoader7627 .execute7628 gets data from the store and returns it7629 #execute7630 without a block7631 raises an error7632 when a resource_id is nil7633 contains resource_data with nil key7634 with SafeRequestStore considerations7635 when request store is active7636 gets data from the store7637 with already loaded resource_ids7638 does not re-fetch data if resource_id already exists7639 with mixture of new and existing resource_ids7640 when block does not filter for only the missing resource_ids7641 overwrites existing keyed data with results from the block7642 when passing the missing resource_ids to a block that filters for them7643 only updates resource_data with keyed items that did not exist7644 with default_value for resource_ids that did not exist in the results7645 when default_value is provided7646 populates a default value7647 when default_value is not provided7648 populates a default_value of nil7649 when request store is not active7650 has no data added from the store7651 with mixture of new and existing resource_ids7652 when block does not filter out existing resource_data keys7653 overwrites existing keyed data with results from the block7654 when passing the missing resource_ids to a block that filters for them7655 only updates resource_data with keyed items that did not exist7656 with default_value for resource_ids that did not exist in the results7657 when default_value is provided7658 populates a default value7659 when default_value is not provided7660 populates a default_value of nil7661Gitlab::Graphql::Loaders::IssuableLoader7662 #find_all7663 factory: :project, param_name: :project_id7664 assignes the parent parameter, and batching_find_alls the finder7665 factory: :group, param_name: :group_id7666 assignes the parent parameter, and batching_find_alls the finder7667 the parent is of an unexpected type7668 raises an error if we pass an unexpected parent7669 #batching_find_all7670 the finder params are anything other than [iids]7671 batching_find_alls the finder, setting the correct parent parameter7672 allows a post-process block7673 the finder params are exactly [iids]7674 batches requests7675Issuables::CrmContactFilter7676 when a contact has issues7677 returns all contact1 issues7678 returns all contact2 issues7679 when a contact has no issues7680 returns no issues7681SystemNoteMetadata7682 associations7683 is expected to belong to note required: false7684 is expected to belong to description_version required: false7685 validation7686 is expected to validate that :note cannot be empty/falsy7687 when action type is invalid7688 is expected to be invalid7689 when action type is valid7690 is expected to be valid7691 when action type is valid7692 is expected to be valid7693 when importing7694 is expected to be valid7695DependencyProxy::GroupSettings::UpdateService7696 #execute7697 user_role: :maintainer, shared_examples_name: "updating the dependency proxy group settings"7698 behaves like updating the dependency proxy group settings7699 returns a success7700 behaves like updating the dependency proxy group settings attributes7701 updates the dependency proxy settings7702 user_role: :developer, shared_examples_name: "denying access to dependency proxy group settings"7703 behaves like denying access to dependency proxy group settings7704 with existing dependency proxy group settings7705 returns an error7706 user_role: :reporter, shared_examples_name: "denying access to dependency proxy group settings"7707 behaves like denying access to dependency proxy group settings7708 with existing dependency proxy group settings7709 returns an error7710 user_role: :guest, shared_examples_name: "denying access to dependency proxy group settings"7711 behaves like denying access to dependency proxy group settings7712 with existing dependency proxy group settings7713 returns an error7714 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy group settings"7715 behaves like denying access to dependency proxy group settings7716 with existing dependency proxy group settings7717 returns an error7718Gitlab::CycleAnalytics::Summary::Value7719 Gitlab::CycleAnalytics::Summary::Value::None7720 returns `-`7721 Gitlab::CycleAnalytics::Summary::Value::Numeric7722 returns the string representation of the number7723 Gitlab::CycleAnalytics::Summary::Value::PrettyNumeric7724 #to_s7725 returns `-` when the number is 07726 returns `-` when the number is nil7727 returns the string representation of the number7728Mutations::Clusters::Agents::Delete7729 is expected to require graphql authorizations :admin_cluster7730 #resolve7731 without user permissions7732 fails to delete the cluster agent7733 with user permissions7734 deletes a cluster agent7735Gitlab::Metrics::Dashboard::Validator::PostSchemaValidator7736 #validate7737 with no project and dashboard_path provided7738 unique local metric_ids7739 returns empty array7740 duplicate local metrics_ids7741 returns error7742 with project and dashboard_path7743 with unique metric identifiers7744 returns empty array7745 duplicate metric identifiers in database7746 with different dashboard_path7747 returns error7748 with same dashboard_path7749 returns empty array7750Gitlab::Ci::Status::Pipeline::Blocked7751 #text7752 overrides status text7753 #label7754 overrides status label7755 .matches?7756 when pipeline is blocked7757 is a correct match7758 when pipeline is not blocked7759 does not match7760RuboCop::Cop::Database::DisableReferentialIntegrity7761 # order random7762 does not flag the use of disable_referential_integrity with a send receiver7763 flags the use of disable_referential_integrity with a nil receiver7764 flags the use of disable_referential_integrity with a full definition7765 flags the use of disable_referential_integrity when passing a block7766SystemHookUrlValidator7767 #validate7768 with no options7769 allows http,https schemes by default7770 checks that the url structure is valid7771 with schemes7772 allows urls with the defined schemes7773 add error if the url scheme does not match the selected ones7774 by default7775 blocks urls pointing to localhost7776 blocks urls pointing to the local network7777 when local requests are allowed7778 does not block urls pointing to localhost7779 does not block urls pointing to the local network7780RuboCop::Cop::Migration::PreventGlobalEnableLockRetriesWithDisableDdlTransaction7781 # order random7782 when in migration7783 registers an offense when `enable_lock_retries` and `disable_ddl_transaction` is used together7784 registers no offense when `enable_lock_retries!` is used7785 registers no offense when `disable_ddl_transaction!` is used7786 when outside of migration7787 registers no offense7788RuboCop::Cop::Migration::UpdateColumnInBatches7789 # order random7790 when in migration7791 behaves like a migration file with no spec file7792 registers an offense when using update_column_in_batches7793 behaves like a migration file with a spec file7794 does not register any offenses7795 outside of a migration7796 does not register any offenses7797 EE migrations7798 when in a migration7799 behaves like a migration file with no spec file7800 registers an offense when using update_column_in_batches7801 behaves like a migration file with a spec file7802 does not register any offenses7803 when in a post migration7804 behaves like a migration file with no spec file7805 registers an offense when using update_column_in_batches7806 behaves like a migration file with a spec file7807 does not register any offenses7808 when in a post migration7809 behaves like a migration file with no spec file7810 registers an offense when using update_column_in_batches7811 behaves like a migration file with a spec file7812 does not register any offenses7813KeyPresenter7814 # order random7815 #humanized_error_message7816 when public key is unsupported7817 returns the custom error message7818 when key is expired7819 returns Active Record error message7820Gitlab::Ci::Pipeline::Chain::Helpers7821 .warning7822 when the warning includes malicious HTML7823 sanitizes7824 .error7825 when the error includes malicious HTML7826 sanitizes the error and removes the HTML tags7827 when given a drop reason7828 when config error is true7829 sets the yaml error and overrides the drop reason7830 behaves like error function7831 is expected to include "message"7832 when config error is false7833 does not set the yaml error or override the drop reason7834 behaves like error function7835 is expected to include "message"7836Gitlab::PhabricatorImport::Conduit::TasksResponse7837 #pagination7838 delegates to the conduit reponse7839 #tasks7840 builds the correct tasks representation7841Ci::CreatePipelineService7842 !reference tags7843 with valid config7844 creates a pipeline7845 with invalid config7846 creates a pipeline without builds7847Gitlab::Auth::Result7848 when actor is User7849 returns auth_user7850 does not return deploy token7851 when actor is Deploy token7852 returns deploy token7853 does not return auth_user7854 #authentication_abilities_include?7855 when authentication abilities are empty7856 returns false7857 when authentication abilities are not empty7858 returns false when ability is not allowed7859 returns true when ability is allowed7860 #can_perform_action_on_project?7861 returns if actor can do perform given action on given project7862 returns if actor cannot do perform given action on given project7863 #can?7864 returns if actor can do perform given action on given project7865 returns if actor cannot do perform given action on given project7866Resolvers::Snippets::BlobsResolver7867 is expected to have nullable GraphQL type SnippetBlobConnection7868 #resolve7869 when user is not authorized7870 redacts the field7871 when using no filter7872 returns all snippet blobs7873 when using filters7874 when paths is a single string7875 returns an array of files7876 the argument does not match anything7877 returns an empty result7878 when paths is an array of string7879 returns an array of files7880Types::BlobViewers::TypeEnum7881 is expected to eq "BlobViewersType"7882 exposes all tree entry types7883Gitlab::SQL::CTE7884 #to_arel7885 when relation is an ActiveRecord::Relation7886 generates an Arel relation for the CTE body7887 when relation is a String7888 generates an Arel relation for the CTE body7889 #alias_to7890 returns an alias for the CTE7891 #apply_to7892 applies a CTE to an ActiveRecord::Relation7893 behaves like CTE with MATERIALIZED keyword examples7894 adding MATERIALIZE to the CTE7895 when PG version is <127896 does not add MATERIALIZE keyword7897 when PG version is >=127898 adds MATERIALIZE keyword7899 when version is higher than 127900 adds MATERIALIZE keyword7901 when materialized is disabled7902 does not add MATERIALIZE keyword7903ReleasePolicy7904 when the user has access to the protected tag7905 allows the user to create, update and destroy a release7906 when the user does not have access to the protected tag7907 prevents the user from creating, updating and destroying a release7908Timelogs::DeleteService7909 #execute7910 when the timelog exists7911 removes the timelog7912 returns the removed timelog7913 when the timelog does not exist7914 returns an error7915 when the user does not have permission7916 returns an error7917 when the timelog deletion fails7918 returns an error7919Ci::ArchiveTraceWorker7920 #perform7921 when job is found7922 executes service7923 has preloaded the arguments for archiving7924 when job is not found7925 does not execute service7926Gitlab::Prometheus::Internal7927 .uri7928 behaves like returns valid uri7929 is expected not to raise Exception7930 with non default prometheus address7931 behaves like returns valid uri7932 is expected not to raise Exception7933 with :9090 symbol7934 behaves like returns valid uri7935 is expected not to raise Exception7936 with 0.0.0.0:90907937 behaves like returns valid uri7938 is expected not to raise Exception7939 when server_address is nil7940 does not fail7941 when prometheus listen address is blank in gitlab.yml7942 does not configure prometheus7943 .prometheus_enabled?7944 returns correct value7945 when prometheus setting is disabled in gitlab.yml7946 returns correct value7947 when prometheus setting is not present in gitlab.yml7948 does not fail7949 .server_address7950 returns correct value7951 when prometheus setting is not present in gitlab.yml7952 does not fail7953Packages::Nuget::ServiceIndexPresenter7954 #version7955 for a group7956 is expected to eq "3.0.0"7957 for a project7958 is expected to eq "3.0.0"7959 #resources7960 for a group7961 behaves like returning valid resources7962 has valid resources7963 does not return the publish resource7964 for a project7965 behaves like returning valid resources7966 has valid resources7967 does return the publish resource7968Subscriptions::IssuableUpdated7969 is expected to have graphql arguments :issuable_id7970 is expected to eq Types::IssuableType7971 #resolve7972 initial subscription7973 returns nil7974 when user is unauthorized7975 raises an exception7976 when issue does not exist7977 raises an exception7978 subscription updates7979 returns the resolved object7980 when user is unauthorized7981 unsubscribes the user7982Gitlab::Ci::Status::Build::Created7983 #illustration7984 is expected to include :image, :size, :title, and :content7985 .matches?7986 when build is created7987 is a correct match7988 when build is not created7989 does not match7990Code review events7991 the aggregated metrics contain all the code review metrics7992BulkImports::Common::Pipelines::LabelsPipeline7993 #run7994 imports group labels into destination group and removes tmpdir7995 #load7996 when label is not persisted7997 saves the label7998 when label is missing7999 returns8000Gitlab::Import::ImportFailureService8001 .track8002 with all arguments provided8003 invokes a new instance and executes8004 with only necessary arguments utilizing defaults8005 invokes a new instance and executes8006 #execute8007 when tracking metrics8008 tracks the failed import8009 when using the project as reference8010 when it fails the import8011 behaves like logs the exception and fails the import8012 when the failure does not abort the import8013 when it does not fail the import8014 behaves like logs the exception and does not fail the import8015 when the failure does not abort the import8016 when using the import_state as reference8017 when it fails the import8018 behaves like logs the exception and fails the import8019 when the failure does not abort the import8020 when it does not fail the import8021 behaves like logs the exception and does not fail the import8022 when the failure does not abort the import8023projects/milestones/index.html.haml8024 behaves like milestone empty states8025 with no milestones8026 shows empty state8027 does not show tabs or searchbar8028 with no open milestones8029 shows tabs and searchbar8030 shows empty state8031 with no closed milestones8032 shows tabs and searchbar8033 shows empty state on closed milestones8034DiffViewer::ServerSide8035 #render_error8036 when the diff file is stored externally8037 return :server_side_but_stored_externally8038 #render_error_reason8039 when the diff file is stored externally8040 returns error message if stored in LFS8041 returns error message if stored externally8042Pajamas::SpinnerComponent8043 class8044 has the correct custom class8045 color8046 by default8047 is dark8048 set to light8049 is light8050 inline8051 by default8052 renders a div8053 set to true8054 renders a span8055 label8056 by default8057 has "Loading" as aria-label8058 when set to something else8059 has a custom aria-label8060 size8061 has the correct size class8062Gitlab::Email::ServiceDeskReceiver8063 when the email contains a valid email address8064 when in a To header8065 finds the service desk key8066 when the email contains a valid email address in a header8067 when in a Delivered-To header8068 finds the service desk key8069 when in a Envelope-To header8070 finds the service desk key8071 when in a X-Envelope-To header8072 finds the service desk key8073 when the email contains no key in the To header and contains reference header with no key8074 sends a rejection email8075 when the email does not contain a valid email address8076 raises an error8077Emails::CreateService8078 #execute8079 creates an email with valid attributes8080 creates an email with additional attributes8081 has the right user association8082 sends a notification to the user8083 does not send a notification when the email is not persisted8084 does not send a notification email when the email is the primary, because we are creating the user8085Metrics::UsersStarredDashboards::DeleteService8086 #execute8087 without dashboard_path8088 does not scope user starred dashboards by dashboard path8089 with dashboard_path8090 does scope user starred dashboards by dashboard path8091MATLAB.gitlab-ci.yml8092 the created pipeline8093 creates all jobs8094ChatNames::FindUserService8095 #execute8096 find user mapping8097 when existing user is requested8098 returns the existing chat_name8099 updates the last used timestamp if one is not already set8100 only updates an existing timestamp once within a certain time frame8101 when different user is requested8102 returns nil8103dashboard/projects/_blank_state_welcome.html.haml8104 with regular user8105 with project creation enabled8106 has a doc_url8107 shows create project panel8108 with project creation disabled8109 doesn't show create project panel8110 shows an alert8111 with external user8112 doesn't show create project panel8113 shows an alert8114Sidebars::Admin::Menus::LabelsMenu8115 # order random8116 behaves like Admin menu without sub menus8117 does not contain any sub menu(s)8118 defines correct active route8119 behaves like Admin menu8120 renders the correct link8121 renders the correct title8122 renders the correct icon8123 #render?8124 when user is admin8125 renders8126 when user is not admin8127 does not render8128 when user is not logged in8129 does not render8130Gitlab::GitlabImport::ProjectCreator8131 creates project8132Packages::Npm8133 .scope_of8134 package_name: nil, expected_result: nil8135 is expected to eq nil8136 package_name: "test", expected_result: nil8137 is expected to eq nil8138 package_name: "@test", expected_result: nil8139 is expected to eq nil8140 package_name: "test/package", expected_result: nil8141 is expected to eq nil8142 package_name: "@/package", expected_result: nil8143 is expected to eq nil8144 package_name: "@test/package", expected_result: "test"8145 is expected to eq "test"8146 package_name: "@test/", expected_result: nil8147 is expected to eq nil8148PagesDomains::RetryAcmeOrderService8149 clears auto_ssl_failed8150 schedules renewal worker and publish PagesDomainUpdatedEvent event8151 doesn't schedule renewal worker if Let's Encrypt integration is not enabled8152 doesn't schedule renewal worker if auto ssl has not failed yet8153Gitlab::DependencyLinker::CartfileLinker8154 .support?8155 supports Cartfile8156 supports Cartfile.private8157 does not support other files8158 #link8159 links dependencies8160 links Git repos8161 links binary-only frameworks8162shared/snippets/_snippet.html.haml8163 snippet with statistics8164 renders correct file count and tooltip8165 renders correct file count and tooltip when file_count is 18166 does not render file count when file count is 08167 snippet without statistics8168 does not render file count if statistics are not present8169Gitlab::GitAccessDesign8170 #check8171 when the user is allowed to manage designs8172 is expected to be a kind of Gitlab::GitAccessResult::Success8173 when the user is not allowed to manage designs8174 raises an error8175 when the protocol is not web8176 raises an error8177WorkItems::BuildService8178 #execute8179 is expected to be a kind of WorkItem(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, u...nteger, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)8180RuboCop::Cop::ActiveRecordAssociationReload8181 # order random8182 when using ActiveRecord::Relation8183 registers an offense on reload usage8184 does not register an offense on reset usage8185 when using on self8186 registers an offense on reload usage8187 does not register an offense on reset usage8188 when using ActiveRecord::Base8189 registers an offense on reload usage8190 does not register an offense on reset usage8191WorkItems::Widgets::Milestone8192 # order random8193 #milestone8194 is expected to eq #<Milestone id:16 namespace1117/project1136%"My title 1420">8195 #type8196 is expected to eq :milestone8197 .type8198 is expected to eq :milestone8199Gitlab::GithubGistsImport::StartImportWorker8200 # order random8201 .sidekiq_retries_exhausted8202 sets status to failed8203 #perform8204 when import was successfull8205 imports all the gists8206 when importer returns an error8207 raises an error8208 when rate limit is reached8209 reschedules worker8210Security::CiConfiguration::ContainerScanningBuildAction8211 with existing .gitlab-ci.yml8212 container_scanning has not been included8213 template includes are an array8214 generates the correct YML8215 template include is not an array8216 generates the correct YML8217 container_scanning has been included8218 container_scanning template include are an array8219 generates the correct YML8220 container_scanning template include is not an array8221 generates the correct YML8222 with no .gitlab-ci.yml8223 autodevops disabled8224 generates the correct YML8225 with autodevops enabled8226 generates the correct YML8227Gitlab::DiscussionsDiff::HighlightCache8228 #write_multiple8229 sets multiple keys serializing content as JSON8230 #read_multiple8231 reads multiple keys and serializes content into Gitlab::Diff::Line objects8232 returns nil when cached key is not found8233 returns lines which rich_text are HTML-safe8234 #clear_multiple8235 removes all named keys8236 only removed named keys8237RuboCop::Cop::Gitlab::NoCodeCoverageComment8238 # order random8239 with nocov as default comment token8240 behaves like nocov check8241 flags related code comments8242 ignores unrelated comments8243 with configured comment token8244 behaves like nocov check8245 flags related code comments8246 ignores unrelated comments8247Gitlab::Kubernetes::Ingress8248 #canary?8249 with canary ingress parameters8250 is expected to be truthy8251 with stable ingress parameters8252 is expected to be falsey8253 #canary_weight8254 with canary ingress parameters8255 is expected to eq 508256 with stable ingress parameters8257 is expected to be nil8258 #name8259 is expected to eq "production-auto-deploy"8260FeatureFlagSummarySerializer8261 #represent8262 has summary information8263Gitlab::Ci::Ansi2json::State8264 # order random8265 #initialize8266 restores valid prior state8267 ignores signed state8268 ignores invalid Base64 and logs a warning8269 ignores invalid JSON and logs a warning8270U2fRegistration8271 .authenticate8272 when registration is found8273 returns true8274 when registration not found8275 returns nil8276 when args passed in are invalid8277 returns false8278SafelyChangeColumnDefault8279 # order random8280 prevents writing new default in place of the old default8281 does not send the old column value if the default has changed8282 does not write the column without a change8283 forces the column to be written on a change8284API::Validations::Validators::IntegerOrCustomValue8285 valid parameters8286 does not raise a validation error8287 when custom values is empty and value is an integer8288 does not raise a validation error8289 invalid parameters8290 raises a validation error8291 when custom values is empty and value is not an integer8292 raises a validation error8293Gitlab::Checks::TimedLogger8294 #log_timed8295 logs message8296 when time limit was reached8297 cancels action8298 cancels action with time elapsed if work was performed8299Gitlab::GithubImport::Representation::ToHash8300 #to_hash8301 converts an object to a Hash8302 converts nested objects to Hashes8303 converts Array values to Hashes8304 keeps values as-is if they do not respond to #to_hash8305Gitlab::Pages::Settings8306 #path8307 is expected to eq "the path"8308 when running under a web server outside of test mode8309 logs a DiskAccessDenied error8310 when local_store settings does not exist yet8311 is expected to eq "the path"8312 when local store exists but legacy storage is disabled8313 logs a DiskAccessDenied error8314Ci::ProcessPipelineService8315 processing events counter8316 increments processing events counter8317Gitlab::EventStore::Event8318 when schema is not defined8319 raises an error on initialization8320 when schema is defined8321 schema validation8322 when data matches the schema8323 initializes the event correctly8324 when required properties are present as well as unknown properties8325 initializes the event correctly8326 when some properties are missing8327 expects all properties to be present8328 when data is not a Hash8329 raises an error8330Gitlab::GithubImport::Attachments::ImportReleaseWorker8331 # order random8332 #import8333 imports an release attachments8334Gitlab::GithubImport::Stage::ImportBaseDataWorker8335 #import8336 imports the base data of a project8337 raises an error8338Gitlab::GithubImport::Representation::DiffNotes::DiscussionId8339 # order random8340 #discussion_id8341 when the note is not a reply to a discussion8342 generates and caches new discussion_id8343 when the note is a reply to a discussion8344 uses the cached value as the discussion_id8345 when cached value does not exist8346 falls back to generating a new discussion_id8347Banzai::Filter::BlockquoteFenceFilter8348 converts blockquote fences to blockquote lines8349 does not require newlines at start or end of string8350 allows trailing whitespace on blockquote fence lines8351 when incomplete blockquote fences with multiple blocks are present8352 does not raise timeout error8353Integrations::HarborSerializers::ArtifactEntity8354 returns the Harbor artifact8355Gitlab::Database::SchemaMigrations::Migrations8356 #touch_all8357 creates a file containing a checksum for each version with a matching migration8358 #load_all8359 when there are no version files8360 does nothing8361 when there are version files8362 inserts the missing versions into schema_migrations8363Import metrics on development seed8364 imports all prometheus metrics8365Gitlab::Metrics::Memory8366 .gc_heap_fragmentation8367 when the Ruby heap is perfectly utilized8368 is expected to eq 08369 when the Ruby heap is greatly fragmented8370 is expected to be > 0.998371 when the Ruby heap is semi-fragmented8372 is expected to eq 0.58373Banzai::Filter::MarkdownEngines::Base8374 # order random8375 turns off sourcepos8376 raise error if render not implemented8377Types::ContainerRepositorySortEnum8378 is expected to eq "ContainerRepositorySort"8379 exposes all the existing issue sort values8380 behaves like common sort values8381 exposes all the existing common sort values8382Types::Repository::BlobType8383 is expected to eq "RepositoryBlob"8384 is expected to have graphql fields :id, :oid, :name, :path, :web_path, :lfs_oid, :mode, :size, :raw_size, :raw_blob, :raw_text_blob, :file_type, :edit_blob_path, :stored_externally, :external_storage, :raw_path, :replace_path, :pipeline_editor_path, :gitpod_blob_url, :find_file_path, :blame_path, :history_path, :permalink_path, :environment_formatted_external_url, :environment_external_url_for_route_map, :code_navigation_path, :project_blob_path_root, :simple_viewer, :rich_viewer, :plain_data, :can_modify_blob, :can_current_user_push_to_branch, :archived, :ide_edit_path, :external_storage_url, :fork_and_edit_path, :ide_fork_and_edit_path, :fork_and_view_path, and :language8385 handles blobs of huge size8386sawyer_patch8387 # order random8388 raises error when acessing Sawyer Resource dynamic methods8389 raises error when acessing a method that expects an argument8390Gitlab::Database::PostgresqlAdapter::DumpSchemaVersionsMixin8391 calls SchemaMigrations touch_all and skips original implementation8392 does not call touch_all in production8393Resolvers::Ci::RunnerPlatformsResolver8394 #resolve8395 returns all possible runner platforms8396API::Entities::BulkImports::Entity8397 has the correct attributes8398Gitlab::PhabricatorImport::Conduit::UsersResponse8399 #users8400 builds the correct users representation8401BaseContainerService8402 #initialize8403 accepts container and current_user8404 treats current_user as optional8405Admin::UserEntity8406 #as_json8407 exposes correct attributes8408Gitlab::Database::Migrations::Observers::QueryDetails8409 records details of executed queries8410 unsubscribes after the observation8411Types::Ci::TestCaseStatusEnum8412 is expected to eq "TestCaseStatus"8413 exposes all test case status types8414Gitlab::Memory::ReportsUploader8415 # order random8416 #upload8417 calls fog, logs upload requested and success with duration8418 when Google API responds with an error8419 logs error raised by Fog and do not re-raise8420Gitlab::GithubImport::ImportProtectedBranchWorker8421 # order random8422 #import8423 imports protected branch rule8424Ci::Catalog::ResourcesHelper8425 # order random8426 #can_view_namespace_catalog?8427 user cannot view the Catalog in CE regardless of permissions8428 #js_ci_catalog_data8429 returns catalog data8430ContainerRegistryHelper8431 #container_repository_gid_prefix8432 is expected to eq "gid://gitlab/ContainerRepository/"8433Onboarding::UserAddedWorker#perform8434 # order random8435 behaves like records an onboarding progress action8436 is expected to receive execute({:action=>:user_added}) 1 time8437Gitlab::Ci::Config::Normalizer::Factory8438 #create8439 when no strategy applies8440 is expected to be empty8441BlocksUnsafeSerialization8442 behaves like blocks unsafe serialization8443 blocks as_json8444 blocks to_json8445Sidebars::UncategorizedMenu8446 # order random8447 has title and sprite_icon8448Types::Notes::DeletedNoteType8449 # order random8450 exposes the expected fields8451BlobViewer::PodspecJson8452 #package_name8453 returns the package name8454API::Entities::Projects::RepositoryStorageMove8455 #as_json8456 includes basic fields8457Sidebars::Admin::Panel8458 # order random8459 implements #super_sidebar_context_header8460Types::WorkItems::Widgets::NotesType8461 # order random8462 exposes the expected fields8463#<Class:0x00007f6da6bcca58>8464 # order random8465 has the expected fields8466Knapsack report was generated. Preview:8467{8468 "spec/models/merge_request_spec.rb": 319.91107444100004,8469 "spec/models/project_team_spec.rb": 126.90012736100005,8470 "spec/models/namespace/traversal_hierarchy_spec.rb": 99.36631324100006,8471 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 77.50552547300003,8472 "spec/finders/notes_finder_spec.rb": 57.41398793299993,8473 "spec/services/event_create_service_spec.rb": 39.54729896499998,8474 "spec/lib/gitlab/email/handler/service_desk_handler_spec.rb": 46.667099320000034,8475 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb": 46.45275361699987,8476 "spec/finders/ci/runners_finder_spec.rb": 20.764498469000046,8477 "spec/models/ci/ref_spec.rb": 32.280620190000036,8478 "spec/services/database/consistency_check_service_spec.rb": 35.860752792000085,8479 "spec/lib/gitlab/url_builder_spec.rb": 8.776918717999934,8480 "spec/lib/banzai/pipeline/wiki_pipeline_spec.rb": 5.4552899349998825,8481 "spec/models/suggestion_spec.rb": 17.17026842899986,8482 "spec/finders/ci/pipelines_finder_spec.rb": 13.997059709000041,8483 "spec/components/pajamas/button_component_spec.rb": 3.478433945000006,8484 "spec/lib/gitlab/ci/config/entry/reports_spec.rb": 3.3943143930000588,8485 "spec/lib/gitlab/usage/metric_definition_spec.rb": 5.192322600999887,8486 "spec/models/ci/secure_file_spec.rb": 11.272982507000052,8487 "spec/routing/import_routing_spec.rb": 5.336394344999917,8488 "spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb": 17.020583638000062,8489 "spec/models/integrations/buildkite_spec.rb": 6.388765181000053,8490 "spec/services/namespaces/in_product_marketing_emails_service_spec.rb": 9.47315272800006,8491 "spec/models/user_detail_spec.rb": 4.156571593999843,8492 "spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb": 14.323916556000086,8493 "spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb": 13.139440177000097,8494 "spec/haml_lint/linter/documentation_links_spec.rb": 2.7890663719999793,8495 "spec/finders/packages/build_infos_finder_spec.rb": 5.880388340999843,8496 "spec/services/snippets/update_statistics_service_spec.rb": 11.905931475999978,8497 "spec/serializers/ci/trigger_entity_spec.rb": 8.406126232000133,8498 "spec/services/issuable/discussions_list_service_spec.rb": 9.85676417500008,8499 "spec/lib/gitlab/import_export/merge_request_parser_spec.rb": 11.104363695000075,8500 "spec/services/projects/operations/update_service_spec.rb": 7.053805749000048,8501 "spec/services/protected_branches/cache_service_spec.rb": 6.03021724700011,8502 "spec/lib/gitlab/deploy_key_access_spec.rb": 7.772170047000145,8503 "spec/presenters/ci/stage_presenter_spec.rb": 8.066841774000068,8504 "spec/graphql/mutations/merge_requests/create_spec.rb": 7.820410946000038,8505 "spec/serializers/diff_file_entity_spec.rb": 8.966628282000102,8506 "spec/graphql/mutations/issues/set_escalation_status_spec.rb": 5.217659819999881,8507 "spec/models/ci/commit_with_pipeline_spec.rb": 11.152639485999998,8508 "spec/models/concerns/participable_spec.rb": 3.978140709999934,8509 "spec/policies/award_emoji_policy_spec.rb": 7.473152130000017,8510 "spec/models/ci/sources/pipeline_spec.rb": 7.010435601999916,8511 "spec/lib/gitlab/shell_spec.rb": 5.907620036000026,8512 "spec/lib/gitlab/repository_cache_spec.rb": 2.0166641240000445,8513 "spec/lib/gitlab/ci/config/entry/trigger_spec.rb": 1.642693657000109,8514 "spec/lib/gitlab/ci/config/external/file/remote_spec.rb": 2.2487034660000518,8515 "spec/graphql/mutations/design_management/delete_spec.rb": 8.009382111999912,8516 "spec/finders/crm/organizations_finder_spec.rb": 3.530757913000116,8517 "spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb": 5.468286152000019,8518 "spec/lib/gitlab/lfs_token_spec.rb": 2.6779255950000334,8519 "spec/services/error_tracking/issue_update_service_spec.rb": 6.224650562000079,8520 "spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb": 4.534870620999982,8521 "spec/services/milestones/issues_count_service_spec.rb": 4.066249576000018,8522 "spec/views/admin/dashboard/index.html.haml_spec.rb": 5.932665959000133,8523 "spec/services/projects/move_lfs_objects_projects_service_spec.rb": 4.457242692000136,8524 "spec/finders/groups/accepting_project_shares_finder_spec.rb": 5.1187437360001695,8525 "spec/finders/clusters/agents_finder_spec.rb": 6.449408112000128,8526 "spec/services/projects/move_project_group_links_service_spec.rb": 4.518553416000032,8527 "spec/services/users/create_service_spec.rb": 3.706691439999986,8528 "spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb": 6.2036669540000275,8529 "spec/workers/namespaces/root_statistics_worker_spec.rb": 1.5544771099998798,8530 "spec/lib/gitlab/conflict/file_collection_spec.rb": 6.942819118999978,8531 "spec/finders/packages/go/version_finder_spec.rb": 2.65438654400009,8532 "spec/workers/namespaces/process_sync_events_worker_spec.rb": 3.807571935000169,8533 "spec/models/packages/debian/project_component_spec.rb": 1.8476931469999727,8534 "spec/workers/x509_issuer_crl_check_worker_spec.rb": 6.170513292000123,8535 "spec/services/personal_access_tokens/create_service_spec.rb": 3.7092143099998793,8536 "spec/lib/gitlab/github_import/representation/note_spec.rb": 1.0372160690001238,8537 "spec/views/projects/diffs/_viewer.html.haml_spec.rb": 4.224127256999964,8538 "spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb": 1.869519776999823,8539 "spec/lib/gitlab/ci/reports/test_report_spec.rb": 2.2965524589999404,8540 "spec/services/discussions/capture_diff_note_position_service_spec.rb": 5.430471332000025,8541 "spec/lib/gitlab/rack_attack_spec.rb": 1.2674941719999424,8542 "spec/lib/gitlab/auth/ldap/adapter_spec.rb": 1.6306287529998826,8543 "spec/models/ci/runner_namespace_spec.rb": 4.704847230000041,8544 "spec/services/packages/generic/create_package_file_service_spec.rb": 3.1594989120001173,8545 "spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb": 2.46861428599982,8546 "spec/finders/ci/job_artifacts_finder_spec.rb": 2.403786486999934,8547 "spec/models/concerns/sanitizable_spec.rb": 1.3788037939998503,8548 "spec/lib/gitlab/untrusted_regexp_spec.rb": 1.3384384840001076,8549 "spec/lib/banzai/filter/wiki_link_filter_spec.rb": 1.1737269580000884,8550 "spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb": 4.503283538000005,8551 "spec/lib/gitlab/http_connection_adapter_spec.rb": 1.1957949699999517,8552 "spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb": 0.868765134999876,8553 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb": 1.3394565930000226,8554 "spec/graphql/mutations/groups/update_spec.rb": 2.531562957999995,8555 "spec/channels/application_cable/connection_spec.rb": 0.8200968849998844,8556 "spec/tooling/danger/feature_flag_spec.rb": 0.8877171219999127,8557 "spec/helpers/groups/observability_helper_spec.rb": 0.8902447880000182,8558 "spec/tooling/danger/product_intelligence_spec.rb": 1.0181225700000596,8559 "spec/lib/banzai/renderer_spec.rb": 0.8249582190001092,8560 "spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb": 1.3204372560001048,8561 "spec/graphql/mutations/todos/mark_done_spec.rb": 2.382196912000154,8562 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb": 2.588654647999874,8563 "spec/services/issuable/destroy_label_links_service_spec.rb": 3.691751123000131,8564 "spec/models/concerns/bulk_insert_safe_spec.rb": 1.7307764390000102,8565 "spec/lib/gitlab/metrics/global_search_slis_spec.rb": 1.0100140709998868,8566 "spec/graphql/resolvers/project_pipeline_resolver_spec.rb": 3.6819388219998928,8567 "spec/lib/gitlab/config/loader/yaml_spec.rb": 1.2663355639999736,8568 "spec/lib/grafana/time_window_spec.rb": 1.5718064099999083,8569 "spec/workers/run_pipeline_schedule_worker_spec.rb": 1.6618112870000914,8570 "spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb": 3.616404922999891,8571 "spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb": 0.9745369540000866,8572 "spec/serializers/user_serializer_spec.rb": 2.2568730090001736,8573 "spec/lib/gitlab/gitaly_client/remote_service_spec.rb": 1.8599936130001424,8574 "spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb": 0.887680034999903,8575 "spec/uploaders/lfs_object_uploader_spec.rb": 1.4976354020000144,8576 "spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb": 2.0271416150001187,8577 "spec/lib/gitlab/auth/key_status_checker_spec.rb": 0.656437373000017,8578 "spec/services/pages_domains/create_acme_order_service_spec.rb": 2.613701864999939,8579 "spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb": 1.745808893000003,8580 "spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb": 1.4301751780001268,8581 "spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb": 2.410941202999993,8582 "spec/lib/sidebars/projects/menus/deployments_menu_spec.rb": 2.0504462100000183,8583 "spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb": 1.1474488149999615,8584 "spec/services/customer_relations/contacts/update_service_spec.rb": 1.3042541080001229,8585 "spec/services/system_notes/alert_management_service_spec.rb": 2.5014878919998864,8586 "spec/presenters/packages/helm/index_presenter_spec.rb": 1.0930215189998762,8587 "spec/models/concerns/has_environment_scope_spec.rb": 1.6203047419999166,8588 "spec/models/preloaders/project_policy_preloader_spec.rb": 3.219512619999932,8589 "spec/finders/prometheus_metrics_finder_spec.rb": 1.096053867999899,8590 "spec/models/packages/event_spec.rb": 0.6062342650000119,8591 "spec/lib/system_check/orphans/namespace_check_spec.rb": 0.8338235399999121,8592 "spec/lib/gitlab/ci/input/arguments/required_spec.rb": 0.8403281089999837,8593 "spec/lib/gitlab/error_tracking/processor/sanitize_error_message_processor_spec.rb": 0.5868913799999973,8594 "spec/lib/sidebars/projects/super_sidebar_panel_spec.rb": 2.388202237999849,8595 "spec/lib/api/entities/merge_request_changes_spec.rb": 2.2426202240001203,8596 "spec/services/users/email_verification/validate_token_service_spec.rb": 1.026172815000109,8597 "spec/lib/gitlab/safe_request_loader_spec.rb": 0.8594030140000086,8598 "spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb": 1.833283012000038,8599 "spec/finders/issuables/crm_contact_filter_spec.rb": 1.0511772580000525,8600 "spec/models/system_note_metadata_spec.rb": 0.6939874839999902,8601 "spec/services/dependency_proxy/group_settings/update_service_spec.rb": 1.7658696579999287,8602 "spec/lib/gitlab/cycle_analytics/summary/value_spec.rb": 0.5629380949999359,8603 "spec/graphql/mutations/clusters/agents/delete_spec.rb": 1.7694782969999778,8604 "spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb": 1.8364561900000353,8605 "spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb": 1.4071805440000844,8606 "spec/rubocop/cop/database/disable_referential_integrity_spec.rb": 0.5699541929998304,8607 "spec/validators/system_hook_url_validator_spec.rb": 1.46841872899995,8608 "spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb": 0.5200268659998528,8609 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 0.6835137860000486,8610 "spec/presenters/key_presenter_spec.rb": 0.3670851419999508,8611 "spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb": 2.074011923999933,8612 "spec/lib/gitlab/phabricator_import/conduit/tasks_response_spec.rb": 0.4339405149999038,8613 "spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb": 1.8361444360000405,8614 "spec/lib/gitlab/auth/result_spec.rb": 1.0765055259998917,8615 "spec/graphql/resolvers/snippets/blobs_resolver_spec.rb": 1.5185147499998948,8616 "spec/graphql/types/blob_viewers/type_enum_spec.rb": 0.6230921650001164,8617 "spec/lib/gitlab/sql/cte_spec.rb": 0.9276706010000453,8618 "spec/policies/release_policy_spec.rb": 1.7463980659999834,8619 "spec/services/timelogs/delete_service_spec.rb": 1.2757655109999178,8620 "spec/workers/ci/archive_trace_worker_spec.rb": 1.7994171289999485,8621 "spec/lib/gitlab/prometheus/internal_spec.rb": 0.7547046360000422,8622 "spec/presenters/packages/nuget/service_index_presenter_spec.rb": 0.8816467239998929,8623 "spec/graphql/subscriptions/issuable_updated_spec.rb": 1.4851347740000165,8624 "spec/lib/gitlab/ci/status/build/created_spec.rb": 1.7953233150001324,8625 "spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb": 1.7197197760001472,8626 "spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb": 1.4074731939999765,8627 "spec/lib/gitlab/import/import_failure_service_spec.rb": 1.2912576040000658,8628 "spec/views/projects/milestones/index.html.haml_spec.rb": 1.0398150270000315,8629 "spec/models/diff_viewer/server_side_spec.rb": 1.4965928130000066,8630 "spec/components/pajamas/spinner_component_spec.rb": 0.9981358659999842,8631 "spec/lib/gitlab/email/service_desk_receiver_spec.rb": 0.5458819739999399,8632 "spec/services/emails/create_service_spec.rb": 0.9347585359998902,8633 "spec/services/metrics/users_starred_dashboards/delete_service_spec.rb": 1.2910402040001827,8634 "spec/lib/gitlab/ci/templates/MATLAB_spec.rb": 1.8091997459998765,8635 "spec/services/chat_names/find_user_service_spec.rb": 0.6387190870000268,8636 "spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb": 0.9434504129999368,8637 "spec/lib/sidebars/admin/menus/labels_menu_spec.rb": 0.5223238559999572,8638 "spec/lib/gitlab/gitlab_import/project_creator_spec.rb": 1.1200821280001492,8639 "spec/models/packages/npm_spec.rb": 0.5559404979999272,8640 "spec/services/pages_domains/retry_acme_order_service_spec.rb": 0.9900431969999772,8641 "spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb": 0.5601509980001538,8642 "spec/views/shared/snippets/_snippet.html.haml_spec.rb": 1.1172903070000757,8643 "spec/lib/gitlab/git_access_design_spec.rb": 0.922388189000003,8644 "spec/services/work_items/build_service_spec.rb": 1.2696963009998399,8645 "spec/rubocop/cop/active_record_association_reload_spec.rb": 0.7296621200000573,8646 "spec/models/work_items/widgets/milestone_spec.rb": 0.8268459739999798,8647 "spec/workers/gitlab/github_gists_import/start_import_worker_spec.rb": 0.7503601070000059,8648 "spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb": 0.6329911359998732,8649 "spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb": 0.8219162259999848,8650 "spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb": 0.806770848000042,8651 "spec/lib/gitlab/kubernetes/ingress_spec.rb": 0.6592572019999352,8652 "spec/serializers/feature_flag_summary_serializer_spec.rb": 1.2777799509999568,8653 "spec/lib/gitlab/ci/ansi2json/state_spec.rb": 0.5138302149998708,8654 "spec/models/u2f_registration_spec.rb": 0.6222855280000203,8655 "spec/models/concerns/safely_change_column_default_spec.rb": 0.5880158230002053,8656 "spec/lib/api/validations/validators/integer_or_custom_value_spec.rb": 0.4866930399998637,8657 "spec/lib/gitlab/checks/timed_logger_spec.rb": 0.4191412819998277,8658 "spec/lib/gitlab/github_import/representation/to_hash_spec.rb": 0.48368663999985984,8659 "spec/lib/gitlab/pages/settings_spec.rb": 0.5712043769999582,8660 "spec/services/ci/process_pipeline_service_spec.rb": 0.7098376440001175,8661 "spec/lib/gitlab/event_store/event_spec.rb": 0.5502060399999209,8662 "spec/workers/gitlab/github_import/attachments/import_release_worker_spec.rb": 0.754212626999788,8663 "spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb": 0.7329008899998826,8664 "spec/lib/gitlab/github_import/representation/diff_notes/discussion_id_spec.rb": 0.5048924969999007,8665 "spec/lib/banzai/filter/blockquote_fence_filter_spec.rb": 0.6100600190000023,8666 "spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb": 0.8500769299998865,8667 "spec/lib/gitlab/database/schema_migrations/migrations_spec.rb": 1.054114446000085,8668 "spec/db/development/import_common_metrics_spec.rb": 0.5872518339999715,8669 "spec/lib/gitlab/metrics/memory_spec.rb": 0.7974963599999683,8670 "spec/lib/banzai/filter/markdown_engines/base_spec.rb": 0.4852015199999187,8671 "spec/graphql/types/container_repository_sort_enum_spec.rb": 0.5717705770000521,8672 "spec/graphql/types/repository/blob_type_spec.rb": 0.4597087240001656,8673 "spec/initializers/sawyer_patch_spec.rb": 0.32948570600001403,8674 "spec/lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin_spec.rb": 0.517053874000112,8675 "spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb": 0.35288319300002513,8676 "spec/lib/api/entities/bulk_imports/entity_spec.rb": 0.45809652499997355,8677 "spec/lib/gitlab/phabricator_import/conduit/users_response_spec.rb": 0.4282931400000507,8678 "spec/services/base_container_service_spec.rb": 0.438562248999915,8679 "spec/serializers/admin/user_entity_spec.rb": 0.4184202110000115,8680 "spec/lib/gitlab/database/migrations/observers/query_details_spec.rb": 0.5173714459999701,8681 "spec/graphql/types/ci/test_case_status_enum_spec.rb": 0.3849850860001425,8682 "spec/lib/gitlab/memory/reports_uploader_spec.rb": 0.47680834199991295,8683 "spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb": 0.5942128130000128,8684 "spec/helpers/ci/catalog/resources_helper_spec.rb": 0.6682751200000894,8685 "spec/helpers/container_registry_helper_spec.rb": 0.5166977149999639,8686 "spec/workers/onboarding/user_added_worker_spec.rb": 0.46973863299990626,8687 "spec/lib/gitlab/ci/config/normalizer/factory_spec.rb": 0.4680267819999244,8688 "spec/models/concerns/blocks_unsafe_serialization_spec.rb": 0.4121207919999961,8689 "spec/lib/sidebars/uncategorized_menu_spec.rb": 0.41149817199993777,8690 "spec/graphql/types/notes/deleted_note_type_spec.rb": 0.4855664500000785,8691 "spec/models/blob_viewer/podspec_json_spec.rb": 0.40870436499994867,8692 "spec/lib/api/entities/projects/repository_storage_move_spec.rb": 0.5203055770000447,8693 "spec/lib/sidebars/admin/panel_spec.rb": 0.42212405499981287,8694 "spec/graphql/types/work_items/widgets/notes_type_spec.rb": 0.4903106089998346,8695 "spec/graphql/types/ci/project_variable_connection_type_spec.rb": 0.47288372100001658696}8697Knapsack global time execution for tests: 24m 40s8698Pending: (Failures listed here are expected and do not affect your suite's status)8699 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8700 # No reason given8701 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498702 2) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8703 # No reason given8704 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578705 3) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 8706 # No pattern provided, skipping.8707 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88708 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 8709 # No pattern provided, skipping.8710 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88711 5) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative8712 # Path not set, skipping.8713 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408714 6) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8715 # No pattern provided, skipping.8716 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88717 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8718 # No pattern provided, skipping.8719 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88720 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8721 # No pattern provided, skipping.8722 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88723 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative8724 # Path not set, skipping.8725 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408726 10) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8727 # No pattern provided, skipping.8728 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88729 11) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8730 # No pattern provided, skipping.8731 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88732 12) Ci::Sources::Pipeline partitioning assigns partition_id and source_partition_id from pipeline and source_job8733 # Skipping partitioning tests until `ci_builds` is partitioned8734 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8735 RSpec::Core::Pending::SkipDeclaredInExample8736 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8737 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8738 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8739 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8740 13) LfsObjectUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8741 # No pattern provided, skipping.8742 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88743 14) LfsObjectUploader behaves like builds correct paths #relative_path is relative8744 # Path not set, skipping.8745 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408746 15) LfsObjectUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8747 # No pattern provided, skipping.8748 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88749 16) LfsObjectUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8750 # No pattern provided, skipping.8751 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88752 17) LfsObjectUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8753 # No pattern provided, skipping.8754 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88755 18) LfsObjectUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8756 # No pattern provided, skipping.8757 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88758 19) LfsObjectUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 8759 # No pattern provided, skipping.8760 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88761 20) LfsObjectUploader object store is REMOTE behaves like builds correct paths #relative_path is relative8762 # Path not set, skipping.8763 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408764 21) LfsObjectUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8765 # No pattern provided, skipping.8766 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88767 22) LfsObjectUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8768 # No pattern provided, skipping.8769 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88770Finished in 24 minutes 44 seconds (files took 47.98 seconds to load)87713526 examples, 0 failures, 22 pending8772Randomized with seed 443298773[TEST PROF INFO] Time spent in factories: 15:37.998 (62.95% of total time)8774RSpec exited with 0.8775No examples to retry, congrats!8777Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8779Uploading artifacts...8780coverage/: found 5 matching artifact files and directories 8781WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8782WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8783knapsack/: found 3 matching artifact files and directories 8784query_recorder/: found 2 matching artifact files and directories 8785rspec/: found 8 matching artifact files and directories 8786WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8787log/*.log: found 15 matching artifact files and directories 8788WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4139146374/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8789WARNING: Retrying... context=artifacts-uploader error=request redirected8790Uploading artifacts as "archive" to coordinator... 201 Created id=4139146374 responseStatus=201 Created token=64_wHrwE8791Uploading artifacts...8792rspec/junit_rspec.xml: found 1 matching artifact files and directories 8793WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4139146374/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8794WARNING: Retrying... context=artifacts-uploader error=request redirected8795Uploading artifacts as "junit" to coordinator... 201 Created id=4139146374 responseStatus=201 Created token=64_wHrwE8797Job succeeded