rspec unit pg12 20/22
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
2 * [new ref] refs/pipelines/574770947 -> refs/pipelines/5747709473Checking out f470b997 as refs/merge-requests/90613/merge...4Skipping Git submodules setup5$ git remote set-url origin "${CI_REPOSITORY_URL}"7Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...8cache.zip is up to date 9Successfully extracted cache10Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...11cache.zip is up to date 12Successfully extracted cache14Downloading artifacts for compile-test-assets (2649391517)...15Downloading artifacts from coordinator... ok id=2649391517 responseStatus=200 OK token=Y8ioUi_h16Downloading artifacts for detect-tests (2649391533)...17Downloading artifacts from coordinator... ok id=2649391533 responseStatus=200 OK token=Y8ioUi_h18Downloading artifacts for retrieve-tests-metadata (2649391540)...19Downloading artifacts from coordinator... ok id=2649391540 responseStatus=200 OK token=Y8ioUi_h20Downloading artifacts for setup-test-env (2649391527)...21Downloading artifacts from coordinator... ok id=2649391527 responseStatus=200 OK token=Y8ioUi_h23Using docker image sha256:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...24$ echo $FOSS_ONLY25$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb26$ export GOPATH=$CI_PROJECT_DIR/.go27$ mkdir -p $GOPATH28$ source scripts/utils.sh29$ source scripts/prepare_build.sh303.2.3331Bundler version 2.2.3332Successfully installed bundler-2.3.15331 gem installed34production:development35Settings are listed in order of priority. The top value will be used.36clean37Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true38frozen39Set via BUNDLE_FROZEN: true40install_flags41Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"42path43Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"44without45Set via BUNDLE_WITHOUT: [:production, :development]46$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check47Don't run Bundler as root. Bundler can ask for sudo if it is needed, and48installing your bundle as root will break this application for all non-root49users on this machine.50The Gemfile's dependencies are satisfied51==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.52$ bundle pristine pg53Installing pg 1.3.5 with native extensions54==> 'bundle pristine pg' succeeded in 13 seconds.55Using decomposed database config (config/database.yml.decomposed-postgresql)56$ setup_db_user_only57CREATE ROLE58GRANT59==> 'setup_db_user_only' succeeded in 0 seconds.60$ bundle exec rake db:drop db:create db:schema:load db:migrate61Dropped database 'gitlabhq_test'62Dropped database 'gitlabhq_test_ci'63Dropped database 'gitlabhq_geo_test'64Created database 'gitlabhq_test'65Created database 'gitlabhq_test_ci'66Created database 'gitlabhq_geo_test'67==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 39 seconds.68$ setup_db_praefect69SELECT pg_catalog.set_config('search_path', '', false);70CREATE DATABASE praefect_test ENCODING 'UTF8';71==> 'setup_db_praefect' succeeded in 1 seconds.72$ run_timed_command "gem install knapsack --no-document"73$ gem install knapsack --no-document74Successfully installed knapsack-4.0.0751 gem installed76==> 'gem install knapsack --no-document' succeeded in 0 seconds.77$ run_timed_command "scripts/gitaly-test-spawn"78$ scripts/gitaly-test-spawn79find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory80Don't run Bundler as root. Bundler can ask for sudo if it is needed, and81installing your bundle as root will break this application for all non-root82users on this machine.83Using abstract_type 0.0.784Using concurrent-ruby 1.1.1085Using i18n 1.10.086Using minitest 5.15.087Using tzinfo 2.0.488Using zeitwerk 2.5.489Using activesupport 6.1.4.790Using builder 3.2.491Using erubi 1.10.092Using mini_portile2 2.8.093Using racc 1.6.094Using nokogiri 1.13.6 (x86_64-linux)95Using rails-dom-testing 2.0.396Using crass 1.0.697Using loofah 2.16.098Using rails-html-sanitizer 1.4.299Using actionview 6.1.4.7100Using rack 2.2.3101Using rack-test 1.1.0102Using actionpack 6.1.4.7103Using ice_nine 0.11.2104Using thread_safe 0.3.6105Using memoizable 0.4.2106Using adamantium 0.2.0107Using public_suffix 4.0.6108Using addressable 2.7.0109Using ast 2.4.2110Using binding_ninja 0.2.3111Using bundler 2.3.15112Using charlock_holmes 0.7.7113Using coderay 1.1.2114Using equalizer 0.0.11115Using concord 0.1.5116Using diff-lcs 1.3117Using dotenv 2.7.6118Using escape_utils 1.2.1119Using factory_bot 5.0.2120Using multipart-post 2.1.1121Using faraday 1.0.1122Using ffi 1.15.3123Using json 2.5.1124Using gemojione 3.3.0125Using mini_mime 1.0.2126Using rugged 1.2.0127Using github-linguist 7.12.1128Using github-markup 1.7.0129Using mime-types-data 3.2020.1104130Using mime-types 3.3.1131Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1132Using rouge 3.27.0133Using sanitize 6.0.0134Using stringex 2.8.5135Using gitlab-gollum-lib 4.2.7.10.gitlab.2136Using google-protobuf 3.19.1 (x86_64-linux)137Using googleapis-common-protos-types 1.3.0138Using grpc 1.42.0 (x86_64-linux)139Using opentracing 0.5.0140Using thrift 0.15.0141Using jaeger-client 1.1.0142Using pg_query 2.1.1143Using redis 4.4.0144Using gitlab-labkit 0.21.2145Using rubyzip 2.3.2146Using thor 1.1.0147Using tomlrb 2.0.1148Using with_env 1.1.0149Using rexml 3.2.5150Using xml-simple 1.1.9151Using gitlab-license_finder 6.14.2.1152Using gitlab-markup 1.7.1153Using grpc-tools 1.42.0154Using sawyer 0.8.2155Using octokit 4.20.0156Using reverse_markdown 1.4.0157Using licensee 9.14.1158Using method_source 0.9.2159Using msgpack 1.3.3160Using optimist 3.0.1161Using parallel 1.19.2162Using parser 3.0.3.2163Using procto 0.0.3164Using unparser 0.4.7165Using proc_to_ast 0.1.0166Using pry 0.12.2167Using rainbow 3.0.0168Using rbtrace 0.4.14169Using rdoc 6.3.2170Using regexp_parser 1.8.1171Using rspec-support 3.8.0172Using rspec-core 3.8.0173Using rspec-expectations 3.8.3174Using rspec-mocks 3.8.0175Using rspec 3.8.0176Using rspec-parameterized 0.4.2177Using rubocop-ast 0.2.0178Using ruby-progressbar 1.10.1179Using unicode-display_width 1.7.0180Using rubocop 0.86.0181Using sentry-raven 3.0.4182Using timecop 0.9.1183Bundle complete! 22 Gemfile dependencies, 100 gems now installed.184Gems in the groups 'production' and 'development' were not installed.185Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`186Checking gitaly-ruby Gemfile...187Checking gitaly-ruby bundle...188The Gemfile's dependencies are satisfied189Trying to connect to gitaly: ................................................ OK190Trying to connect to gitaly2: ....................................................................... OK191Starting Praefect with in-memory election strategyTrying to connect to praefect: ....... OK192==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds.193$ source ./scripts/rspec_helpers.sh194$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"195SKIP_FLAKY_TESTS_AUTOMATICALLY: true196RETRY_FAILED_TESTS_IN_NEW_PROCESS: true197KNAPSACK_GENERATE_REPORT: true198FLAKY_RSPEC_GENERATE_REPORT: true199KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,events,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb200KNAPSACK_LOG_LEVEL: debug201KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_20_22_report.json202FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json203FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_20_22_report.json204NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_20_22_report.json205SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_20_22_report.txt206RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_20_22_report.txt207CRYSTALBALL: 208Knapsack node specs:209spec/models/ci/pipeline_spec.rb210spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb211spec/services/groups/transfer_service_spec.rb212spec/finders/snippets_finder_spec.rb213spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb214spec/models/integrations/mattermost_spec.rb215spec/lib/gitlab/database/migration_helpers_spec.rb216spec/policies/environment_policy_spec.rb217spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb218spec/services/projects/alerting/notify_service_spec.rb219spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb220spec/models/diff_note_spec.rb221spec/lib/gitlab/auth/auth_finders_spec.rb222spec/lib/banzai/filter/references/commit_reference_filter_spec.rb223spec/models/integrations/webex_teams_spec.rb224spec/helpers/groups_helper_spec.rb225spec/models/ci/bridge_spec.rb226spec/services/members/approve_access_request_service_spec.rb227spec/helpers/namespaces_helper_spec.rb228spec/lib/gitlab/url_builder_spec.rb229spec/services/packages/debian/extract_metadata_service_spec.rb230spec/workers/packages/debian/process_changes_worker_spec.rb231spec/finders/group_projects_finder_spec.rb232spec/graphql/resolvers/todo_resolver_spec.rb233spec/models/concerns/project_api_compatibility_spec.rb234spec/models/project_statistics_spec.rb235spec/models/incident_management/issuable_escalation_status_spec.rb236spec/services/web_hook_service_spec.rb237spec/models/timelog_spec.rb238spec/models/concerns/chronic_duration_attribute_spec.rb239spec/lib/gitlab/checks/branch_check_spec.rb240spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb241spec/views/projects/_home_panel.html.haml_spec.rb242spec/models/label_spec.rb243spec/lib/gitlab/email/handler/create_issue_handler_spec.rb244spec/services/projects/cleanup_service_spec.rb245spec/lib/gitlab/auth/request_authenticator_spec.rb246spec/lib/banzai/filter/references/reference_filter_spec.rb247spec/services/clusters/applications/prometheus_update_service_spec.rb248spec/lib/gitlab/github_import/client_spec.rb249spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb250spec/lib/gitlab/redis/queues_spec.rb251spec/presenters/projects/settings/deploy_keys_presenter_spec.rb252spec/lib/gitlab/background_migration/populate_container_repository_migration_plan_spec.rb253spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb254spec/workers/packages/nuget/extraction_worker_spec.rb255spec/services/snippets/destroy_service_spec.rb256spec/finders/packages/maven/package_finder_spec.rb257spec/lib/gitlab/search/recent_merge_requests_spec.rb258spec/lib/object_storage/config_spec.rb259spec/graphql/types/issue_type_spec.rb260spec/services/work_items/task_list_reference_removal_service_spec.rb261spec/lib/gitlab/redis/cache_spec.rb262spec/lib/gitlab/background_migration/populate_namespace_statistics_spec.rb263spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb264spec/lib/gitlab/ci/config/normalizer_spec.rb265spec/policies/base_policy_spec.rb266spec/lib/gitlab/auth/current_user_mode_spec.rb267spec/models/pages_domain_acme_order_spec.rb268spec/lib/gitlab/ci/reports/test_suite_spec.rb269spec/views/ci/status/_icon.html.haml_spec.rb270spec/models/hooks/project_hook_spec.rb271spec/helpers/invite_members_helper_spec.rb272spec/lib/gitlab/background_migration/backfill_ci_runner_semver_spec.rb273spec/services/error_tracking/issue_update_service_spec.rb274spec/services/users/refresh_authorized_projects_service_spec.rb275spec/components/pajamas/button_component_spec.rb276spec/finders/packages/tags_finder_spec.rb277spec/models/concerns/cacheable_attributes_spec.rb278spec/lib/gitlab/file_finder_spec.rb279spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb280spec/lib/gitlab/chat/output_spec.rb281spec/finders/boards/boards_finder_spec.rb282spec/tasks/gitlab/task_helpers_spec.rb283spec/models/concerns/ci/has_ref_spec.rb284spec/lib/gitlab/i18n/translation_entry_spec.rb285spec/services/metrics/dashboard/annotations/delete_service_spec.rb286spec/lib/gitlab/git/attributes_parser_spec.rb287spec/finders/ci/daily_build_group_report_results_finder_spec.rb288spec/views/layouts/application.html.haml_spec.rb289spec/services/ci/expire_pipeline_cache_service_spec.rb290spec/lib/banzai/filter/emoji_filter_spec.rb291spec/lib/gitlab/ci/config/entry/include_spec.rb292spec/models/packages/dependency_link_spec.rb293spec/uploaders/dependency_proxy/file_uploader_spec.rb294spec/presenters/ci/legacy_stage_presenter_spec.rb295spec/policies/deploy_key_policy_spec.rb296spec/models/design_management/action_spec.rb297spec/models/wiki_page/slug_spec.rb298spec/lib/gitlab/profiler_spec.rb299spec/models/deploy_keys_project_spec.rb300spec/models/label_link_spec.rb301spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb302spec/services/merge_requests/reload_merge_head_diff_service_spec.rb303spec/lib/gitlab/mail_room/mail_room_spec.rb304spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb305spec/helpers/badges_helper_spec.rb306spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb307spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb308spec/rack_servers/puma_spec.rb309spec/lib/gitlab/database/reindexing_spec.rb310spec/lib/gitlab/github_import_spec.rb311spec/graphql/resolvers/crm/contacts_resolver_spec.rb312spec/lib/gitlab/utils/mime_type_spec.rb313spec/finders/ci/auth_job_finder_spec.rb314spec/lib/gitlab/sample_data_template_spec.rb315spec/services/branches/delete_service_spec.rb316spec/services/error_tracking/issue_details_service_spec.rb317spec/lib/gitlab/auth/user_access_denied_reason_spec.rb318spec/workers/object_pool/create_worker_spec.rb319spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb320spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb321spec/graphql/mutations/merge_requests/set_subscription_spec.rb322spec/lib/gitlab/ci/build/rules/rule_spec.rb323spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb324spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb325spec/lib/gitlab/visibility_level_checker_spec.rb326spec/services/ci/create_pipeline_service/include_spec.rb327spec/models/user_custom_attribute_spec.rb328spec/workers/pipeline_process_worker_spec.rb329spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb330spec/finders/ci/variables_finder_spec.rb331spec/helpers/hooks_helper_spec.rb332spec/presenters/instance_clusterable_presenter_spec.rb333spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb334spec/lib/gitlab/jira_import/issue_serializer_spec.rb335spec/lib/gitlab/http_connection_adapter_spec.rb336spec/services/gpg_keys/destroy_service_spec.rb337spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb338spec/lib/gitlab/kubernetes/helm/v2/reset_command_spec.rb339spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb340spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb341spec/workers/hashed_storage/project_rollback_worker_spec.rb342spec/services/projects/move_lfs_objects_projects_service_spec.rb343spec/lib/gitlab/import_export/attributes_finder_spec.rb344spec/lib/gitlab/graphql/pagination/array_connection_spec.rb345spec/models/integrations/asana_spec.rb346spec/serializers/trigger_variable_entity_spec.rb347spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb348spec/views/projects/environments/terminal.html.haml_spec.rb349spec/models/users/credit_card_validation_spec.rb350spec/workers/error_tracking_issue_link_worker_spec.rb351spec/graphql/resolvers/paginated_tree_resolver_spec.rb352spec/graphql/types/member_interface_spec.rb353spec/lib/safe_zip/extract_spec.rb354spec/views/layouts/_head.html.haml_spec.rb355spec/services/user_project_access_changed_service_spec.rb356spec/services/packages/generic/create_package_file_service_spec.rb357spec/views/projects/settings/integrations/edit.html.haml_spec.rb358spec/lib/gitlab/import_export/uploads_restorer_spec.rb359spec/lib/gitlab/template/gitignore_template_spec.rb360spec/lib/gitlab/project_transfer_spec.rb361spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb362spec/lib/gitlab/sql/cte_spec.rb363spec/models/lfs_objects_project_spec.rb364spec/graphql/mutations/todos/mark_done_spec.rb365spec/workers/hashed_storage/migrator_worker_spec.rb366spec/services/protected_tags/create_service_spec.rb367spec/models/concerns/has_user_type_spec.rb368spec/lib/gitlab/ci/mask_secret_spec.rb369spec/models/oauth_access_token_spec.rb370spec/services/projects/fetch_statistics_increment_service_spec.rb371spec/workers/group_import_worker_spec.rb372spec/models/packages/rubygems/metadatum_spec.rb373spec/policies/application_setting_policy_spec.rb374spec/lib/gitlab/data_builder/feature_flag_spec.rb375spec/helpers/stat_anchors_helper_spec.rb376spec/lib/gitlab/auth/saml/identity_linker_spec.rb377spec/workers/bulk_imports/stuck_import_worker_spec.rb378spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb379spec/lib/gitlab/usage/metrics/instrumentations/jira_imports_total_imported_issues_count_metric_spec.rb380spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb381spec/models/guest_spec.rb382spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb383spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb384spec/graphql/types/ci/runner_upgrade_status_type_enum_spec.rb385spec/models/concerns/strip_attribute_spec.rb386spec/services/applications/create_service_spec.rb387spec/graphql/types/event_type_spec.rb388spec/helpers/sidebars_helper_spec.rb389spec/events/pages/page_deleted_event_spec.rb390spec/lib/gitlab/middleware/compressed_json_spec.rb391spec/helpers/blame_helper_spec.rb392spec/initializers/global_id_spec.rb393spec/services/reset_project_cache_service_spec.rb394spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb395spec/services/pages_domains/create_acme_order_service_spec.rb396spec/graphql/types/container_expiration_policy_type_spec.rb397spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb398spec/lib/banzai/filter/suggestion_filter_spec.rb399spec/graphql/mutations/environments/canary_ingress/update_spec.rb400spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb401spec/services/ci/create_pipeline_service/artifacts_spec.rb402spec/lib/gitlab/audit/deploy_token_author_spec.rb403spec/presenters/search_service_presenter_spec.rb404spec/lib/gitlab/asset_proxy_spec.rb405spec/graphql/types/custom_emoji_type_spec.rb406spec/lib/backup/task_spec.rb407spec/lib/gitlab/ci/status/running_spec.rb408spec/views/projects/settings/operations/show.html.haml_spec.rb409spec/presenters/terraform/modules_presenter_spec.rb410spec/workers/mail_scheduler/notification_service_worker_spec.rb411spec/workers/releases/create_evidence_worker_spec.rb412spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb413spec/lib/gitlab/code_navigation_path_spec.rb414spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb415spec/lib/serializers/json_spec.rb416spec/graphql/types/alert_management/severity_enum_spec.rb417spec/graphql/types/duration_type_spec.rb418spec/workers/concerns/gitlab/notify_upon_death_spec.rb419spec/views/projects/imports/new.html.haml_spec.rb420spec/lib/gitlab/ci/ansi2json/parser_spec.rb421spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb422spec/models/concerns/cross_database_modification_spec.rb423spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb424spec/lib/sidebars/projects/menus/repository_menu_spec.rb425spec/workers/ci/pipeline_bridge_status_worker_spec.rb426spec/lib/gitlab/view/presenter/delegated_spec.rb427spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb428spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb429spec/lib/api/entities/design_management/design_spec.rb430spec/lib/gitlab/external_authorization/cache_spec.rb431spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb432spec/validators/future_date_validator_spec.rb433spec/services/product_analytics/build_activity_graph_service_spec.rb434spec/graphql/types/permission_types/base_permission_type_spec.rb435spec/lib/gitlab/faraday/error_callback_spec.rb436spec/views/registrations/welcome/show.html.haml_spec.rb437spec/lib/sidebars/projects/menus/snippets_menu_spec.rb438spec/models/bulk_imports/failure_spec.rb439spec/lib/bulk_imports/clients/graphql_spec.rb440spec/graphql/types/ci/group_type_spec.rb441spec/lib/gitlab/phabricator_import/worker_state_spec.rb442spec/lib/gitlab/etag_caching/router_spec.rb443spec/graphql/types/permission_types/work_item_spec.rb444spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb445spec/lib/gitlab/experimentation/group_types_spec.rb446spec/lib/api/entities/ssh_key_spec.rb447spec/lib/gitlab/database/migrations/observers/query_log_spec.rb448spec/graphql/types/issuable_state_enum_spec.rb449spec/lib/banzai/filter/normalize_source_filter_spec.rb450spec/services/metrics/sample_metrics_service_spec.rb451spec/services/emails/confirm_service_spec.rb452spec/graphql/types/container_expiration_policy_older_than_enum_spec.rb453spec/rubocop/cop/rspec/modify_sidekiq_middleware_spec.rb454spec/serializers/rollout_statuses/ingress_entity_spec.rb455spec/graphql/types/notes/diff_position_type_spec.rb456spec/uploaders/uploader_helper_spec.rb457spec/lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric_spec.rb458spec/lib/gitlab/usage/metrics/instrumentations/service_ping_features_metric_spec.rb459spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb460spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb461spec/models/blob_viewer/composer_json_spec.rb462spec/lib/gitlab/ci/config/normalizer/factory_spec.rb463spec/lib/peek/views/active_record_spec.rb464spec/workers/todos_destroyer/group_private_worker_spec.rb465spec/workers/concerns/cluster_queue_spec.rb466spec/graphql/types/packages/package_dependency_type_enum_spec.rb467Filter specs:468Running specs:469Running all node tests without filter470spec/models/ci/pipeline_spec.rb471spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb472spec/services/groups/transfer_service_spec.rb473spec/finders/snippets_finder_spec.rb474spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb475spec/models/integrations/mattermost_spec.rb476spec/lib/gitlab/database/migration_helpers_spec.rb477spec/policies/environment_policy_spec.rb478spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb479spec/services/projects/alerting/notify_service_spec.rb480spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb481spec/models/diff_note_spec.rb482spec/lib/gitlab/auth/auth_finders_spec.rb483spec/lib/banzai/filter/references/commit_reference_filter_spec.rb484spec/models/integrations/webex_teams_spec.rb485spec/helpers/groups_helper_spec.rb486spec/models/ci/bridge_spec.rb487spec/services/members/approve_access_request_service_spec.rb488spec/helpers/namespaces_helper_spec.rb489spec/lib/gitlab/url_builder_spec.rb490spec/services/packages/debian/extract_metadata_service_spec.rb491spec/workers/packages/debian/process_changes_worker_spec.rb492spec/finders/group_projects_finder_spec.rb493spec/graphql/resolvers/todo_resolver_spec.rb494spec/models/concerns/project_api_compatibility_spec.rb495spec/models/project_statistics_spec.rb496spec/models/incident_management/issuable_escalation_status_spec.rb497spec/services/web_hook_service_spec.rb498spec/models/timelog_spec.rb499spec/models/concerns/chronic_duration_attribute_spec.rb500spec/lib/gitlab/checks/branch_check_spec.rb501spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb502spec/views/projects/_home_panel.html.haml_spec.rb503spec/models/label_spec.rb504spec/lib/gitlab/email/handler/create_issue_handler_spec.rb505spec/services/projects/cleanup_service_spec.rb506spec/lib/gitlab/auth/request_authenticator_spec.rb507spec/lib/banzai/filter/references/reference_filter_spec.rb508spec/services/clusters/applications/prometheus_update_service_spec.rb509spec/lib/gitlab/github_import/client_spec.rb510spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb511spec/lib/gitlab/redis/queues_spec.rb512spec/presenters/projects/settings/deploy_keys_presenter_spec.rb513spec/lib/gitlab/background_migration/populate_container_repository_migration_plan_spec.rb514spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb515spec/workers/packages/nuget/extraction_worker_spec.rb516spec/services/snippets/destroy_service_spec.rb517spec/finders/packages/maven/package_finder_spec.rb518spec/lib/gitlab/search/recent_merge_requests_spec.rb519spec/lib/object_storage/config_spec.rb520spec/graphql/types/issue_type_spec.rb521spec/services/work_items/task_list_reference_removal_service_spec.rb522spec/lib/gitlab/redis/cache_spec.rb523spec/lib/gitlab/background_migration/populate_namespace_statistics_spec.rb524spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb525spec/lib/gitlab/ci/config/normalizer_spec.rb526spec/policies/base_policy_spec.rb527spec/lib/gitlab/auth/current_user_mode_spec.rb528spec/models/pages_domain_acme_order_spec.rb529spec/lib/gitlab/ci/reports/test_suite_spec.rb530spec/views/ci/status/_icon.html.haml_spec.rb531spec/models/hooks/project_hook_spec.rb532spec/helpers/invite_members_helper_spec.rb533spec/lib/gitlab/background_migration/backfill_ci_runner_semver_spec.rb534spec/services/error_tracking/issue_update_service_spec.rb535spec/services/users/refresh_authorized_projects_service_spec.rb536spec/components/pajamas/button_component_spec.rb537spec/finders/packages/tags_finder_spec.rb538spec/models/concerns/cacheable_attributes_spec.rb539spec/lib/gitlab/file_finder_spec.rb540spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb541spec/lib/gitlab/chat/output_spec.rb542spec/finders/boards/boards_finder_spec.rb543spec/tasks/gitlab/task_helpers_spec.rb544spec/models/concerns/ci/has_ref_spec.rb545spec/lib/gitlab/i18n/translation_entry_spec.rb546spec/services/metrics/dashboard/annotations/delete_service_spec.rb547spec/lib/gitlab/git/attributes_parser_spec.rb548spec/finders/ci/daily_build_group_report_results_finder_spec.rb549spec/views/layouts/application.html.haml_spec.rb550spec/services/ci/expire_pipeline_cache_service_spec.rb551spec/lib/banzai/filter/emoji_filter_spec.rb552spec/lib/gitlab/ci/config/entry/include_spec.rb553spec/models/packages/dependency_link_spec.rb554spec/uploaders/dependency_proxy/file_uploader_spec.rb555spec/presenters/ci/legacy_stage_presenter_spec.rb556spec/policies/deploy_key_policy_spec.rb557spec/models/design_management/action_spec.rb558spec/models/wiki_page/slug_spec.rb559spec/lib/gitlab/profiler_spec.rb560spec/models/deploy_keys_project_spec.rb561spec/models/label_link_spec.rb562spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb563spec/services/merge_requests/reload_merge_head_diff_service_spec.rb564spec/lib/gitlab/mail_room/mail_room_spec.rb565spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb566spec/helpers/badges_helper_spec.rb567spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb568spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb569spec/rack_servers/puma_spec.rb570spec/lib/gitlab/database/reindexing_spec.rb571spec/lib/gitlab/github_import_spec.rb572spec/graphql/resolvers/crm/contacts_resolver_spec.rb573spec/lib/gitlab/utils/mime_type_spec.rb574spec/finders/ci/auth_job_finder_spec.rb575spec/lib/gitlab/sample_data_template_spec.rb576spec/services/branches/delete_service_spec.rb577spec/services/error_tracking/issue_details_service_spec.rb578spec/lib/gitlab/auth/user_access_denied_reason_spec.rb579spec/workers/object_pool/create_worker_spec.rb580spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb581spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb582spec/graphql/mutations/merge_requests/set_subscription_spec.rb583spec/lib/gitlab/ci/build/rules/rule_spec.rb584spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb585spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb586spec/lib/gitlab/visibility_level_checker_spec.rb587spec/services/ci/create_pipeline_service/include_spec.rb588spec/models/user_custom_attribute_spec.rb589spec/workers/pipeline_process_worker_spec.rb590spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb591spec/finders/ci/variables_finder_spec.rb592spec/helpers/hooks_helper_spec.rb593spec/presenters/instance_clusterable_presenter_spec.rb594spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb595spec/lib/gitlab/jira_import/issue_serializer_spec.rb596spec/lib/gitlab/http_connection_adapter_spec.rb597spec/services/gpg_keys/destroy_service_spec.rb598spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb599spec/lib/gitlab/kubernetes/helm/v2/reset_command_spec.rb600spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb601spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb602spec/workers/hashed_storage/project_rollback_worker_spec.rb603spec/services/projects/move_lfs_objects_projects_service_spec.rb604spec/lib/gitlab/import_export/attributes_finder_spec.rb605spec/lib/gitlab/graphql/pagination/array_connection_spec.rb606spec/models/integrations/asana_spec.rb607spec/serializers/trigger_variable_entity_spec.rb608spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb609spec/views/projects/environments/terminal.html.haml_spec.rb610spec/models/users/credit_card_validation_spec.rb611spec/workers/error_tracking_issue_link_worker_spec.rb612spec/graphql/resolvers/paginated_tree_resolver_spec.rb613spec/graphql/types/member_interface_spec.rb614spec/lib/safe_zip/extract_spec.rb615spec/views/layouts/_head.html.haml_spec.rb616spec/services/user_project_access_changed_service_spec.rb617spec/services/packages/generic/create_package_file_service_spec.rb618spec/views/projects/settings/integrations/edit.html.haml_spec.rb619spec/lib/gitlab/import_export/uploads_restorer_spec.rb620spec/lib/gitlab/template/gitignore_template_spec.rb621spec/lib/gitlab/project_transfer_spec.rb622spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb623spec/lib/gitlab/sql/cte_spec.rb624spec/models/lfs_objects_project_spec.rb625spec/graphql/mutations/todos/mark_done_spec.rb626spec/workers/hashed_storage/migrator_worker_spec.rb627spec/services/protected_tags/create_service_spec.rb628spec/models/concerns/has_user_type_spec.rb629spec/lib/gitlab/ci/mask_secret_spec.rb630spec/models/oauth_access_token_spec.rb631spec/services/projects/fetch_statistics_increment_service_spec.rb632spec/workers/group_import_worker_spec.rb633spec/models/packages/rubygems/metadatum_spec.rb634spec/policies/application_setting_policy_spec.rb635spec/lib/gitlab/data_builder/feature_flag_spec.rb636spec/helpers/stat_anchors_helper_spec.rb637spec/lib/gitlab/auth/saml/identity_linker_spec.rb638spec/workers/bulk_imports/stuck_import_worker_spec.rb639spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb640spec/lib/gitlab/usage/metrics/instrumentations/jira_imports_total_imported_issues_count_metric_spec.rb641spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb642spec/models/guest_spec.rb643spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb644spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb645spec/graphql/types/ci/runner_upgrade_status_type_enum_spec.rb646spec/models/concerns/strip_attribute_spec.rb647spec/services/applications/create_service_spec.rb648spec/graphql/types/event_type_spec.rb649spec/helpers/sidebars_helper_spec.rb650spec/events/pages/page_deleted_event_spec.rb651spec/lib/gitlab/middleware/compressed_json_spec.rb652spec/helpers/blame_helper_spec.rb653spec/initializers/global_id_spec.rb654spec/services/reset_project_cache_service_spec.rb655spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb656spec/services/pages_domains/create_acme_order_service_spec.rb657spec/graphql/types/container_expiration_policy_type_spec.rb658spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb659spec/lib/banzai/filter/suggestion_filter_spec.rb660spec/graphql/mutations/environments/canary_ingress/update_spec.rb661spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb662spec/services/ci/create_pipeline_service/artifacts_spec.rb663spec/lib/gitlab/audit/deploy_token_author_spec.rb664spec/presenters/search_service_presenter_spec.rb665spec/lib/gitlab/asset_proxy_spec.rb666spec/graphql/types/custom_emoji_type_spec.rb667spec/lib/backup/task_spec.rb668spec/lib/gitlab/ci/status/running_spec.rb669spec/views/projects/settings/operations/show.html.haml_spec.rb670spec/presenters/terraform/modules_presenter_spec.rb671spec/workers/mail_scheduler/notification_service_worker_spec.rb672spec/workers/releases/create_evidence_worker_spec.rb673spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb674spec/lib/gitlab/code_navigation_path_spec.rb675spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb676spec/lib/serializers/json_spec.rb677spec/graphql/types/alert_management/severity_enum_spec.rb678spec/graphql/types/duration_type_spec.rb679spec/workers/concerns/gitlab/notify_upon_death_spec.rb680spec/views/projects/imports/new.html.haml_spec.rb681spec/lib/gitlab/ci/ansi2json/parser_spec.rb682spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb683spec/models/concerns/cross_database_modification_spec.rb684spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rbKnapsack report generator started!685DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call686/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here687 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)688Run options: exclude {:quarantine=>true, :level=>"migration"}689==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.053712055 seconds...690Test environment set up in 0.812302392 seconds691Ci::Pipeline692 paginates 15 pipelines per page693 is expected to belong to project required: false694 is expected to belong to user required: false695 is expected to belong to auto_canceled_by required: false696 is expected to belong to pipeline_schedule required: false697 is expected to belong to merge_request required: false698 is expected to belong to external_pull_request required: false699 is expected to have many statuses700 is expected to have many trigger_requests701 is expected to have many variables702 is expected to have many builds703 is expected to have many statuses_order_id_desc704 is expected to have many bridges705 is expected to have many job_artifacts through builds706 is expected to have many build_trace_chunks through builds707 is expected to have many auto_canceled_pipelines708 is expected to have many auto_canceled_jobs709 is expected to have many sourced_pipelines710 is expected to have many triggered_pipelines711 is expected to have many pipeline_artifacts712 is expected to have one chat_data713 is expected to have one source_pipeline714 is expected to have one triggered_by_pipeline715 is expected to have one source_job716 is expected to have one pipeline_config717 is expected to respond to #git_author_name718 is expected to respond to #git_author_email719 is expected to respond to #git_author_full_text720 is expected to respond to #short_sha721 is expected to delegate #project_full_path to the #project object as #full_path722 behaves like having unique enum values723 has unique values in "source"724 has unique values in "config_source"725 has unique values in "failure_reason"726 has unique values in "locked"727 validations728 is expected to validate that :sha cannot be empty/falsy729 is expected to validate that :status cannot be empty/falsy730 associations731 has a bidirectional relationship with projects732 #latest_builds733 has a one to many relationship with its latest builds734 #latest_successful_builds735 has a one to many relationship with its latest successful builds736 #downloadable_artifacts737 when artifacts are locked738 returns downloadable artifacts including locked artifacts739 when artifacts are unlocked740 returns only downloadable artifacts not expired741 state machine transitions742 from failed to success743 schedules CoverageReportWorker744 #set_status745 from_status: :created, to_status: :waiting_for_resource746 is expected to eq true747 from_status: :created, to_status: :preparing748 is expected to eq true749 from_status: :created, to_status: :pending750 is expected to eq true751 from_status: :created, to_status: :running752 is expected to eq true753 from_status: :created, to_status: :failed754 is expected to eq true755 from_status: :created, to_status: :success756 is expected to eq true757 from_status: :created, to_status: :canceled758 is expected to eq true759 from_status: :created, to_status: :skipped760 is expected to eq true761 from_status: :created, to_status: :manual762 is expected to eq true763 from_status: :created, to_status: :scheduled764 is expected to eq true765 from_status: :waiting_for_resource, to_status: :waiting_for_resource766 is expected to eq false767 from_status: :waiting_for_resource, to_status: :preparing768 is expected to eq true769 from_status: :waiting_for_resource, to_status: :pending770 is expected to eq true771 from_status: :waiting_for_resource, to_status: :running772 is expected to eq true773 from_status: :waiting_for_resource, to_status: :failed774 is expected to eq true775 from_status: :waiting_for_resource, to_status: :success776 is expected to eq true777 from_status: :waiting_for_resource, to_status: :canceled778 is expected to eq true779 from_status: :waiting_for_resource, to_status: :skipped780 is expected to eq true781 from_status: :waiting_for_resource, to_status: :manual782 is expected to eq true783 from_status: :waiting_for_resource, to_status: :scheduled784 is expected to eq true785 from_status: :preparing, to_status: :waiting_for_resource786 is expected to eq true787 from_status: :preparing, to_status: :preparing788 is expected to eq false789 from_status: :preparing, to_status: :pending790 is expected to eq true791 from_status: :preparing, to_status: :running792 is expected to eq true793 from_status: :preparing, to_status: :failed794 is expected to eq true795 from_status: :preparing, to_status: :success796 is expected to eq true797 from_status: :preparing, to_status: :canceled798 is expected to eq true799 from_status: :preparing, to_status: :skipped800 is expected to eq true801 from_status: :preparing, to_status: :manual802 is expected to eq true803 from_status: :preparing, to_status: :scheduled804 is expected to eq true805 from_status: :pending, to_status: :waiting_for_resource806 is expected to eq true807 from_status: :pending, to_status: :preparing808 is expected to eq true809 from_status: :pending, to_status: :pending810 is expected to eq false811 from_status: :pending, to_status: :running812 is expected to eq true813 from_status: :pending, to_status: :failed814 is expected to eq true815 from_status: :pending, to_status: :success816 is expected to eq true817 from_status: :pending, to_status: :canceled818 is expected to eq true819 from_status: :pending, to_status: :skipped820 is expected to eq true821 from_status: :pending, to_status: :manual822 is expected to eq true823 from_status: :pending, to_status: :scheduled824 is expected to eq true825 from_status: :running, to_status: :waiting_for_resource826 is expected to eq true827 from_status: :running, to_status: :preparing828 is expected to eq true829 from_status: :running, to_status: :pending830 is expected to eq true831 from_status: :running, to_status: :running832 is expected to eq false833 from_status: :running, to_status: :failed834 is expected to eq true835 from_status: :running, to_status: :success836 is expected to eq true837 from_status: :running, to_status: :canceled838 is expected to eq true839 from_status: :running, to_status: :skipped840 is expected to eq true841 from_status: :running, to_status: :manual842 is expected to eq true843 from_status: :running, to_status: :scheduled844 is expected to eq true845 from_status: :failed, to_status: :waiting_for_resource846 is expected to eq true847 from_status: :failed, to_status: :preparing848 is expected to eq true849 from_status: :failed, to_status: :pending850 is expected to eq true851 from_status: :failed, to_status: :running852 is expected to eq true853 from_status: :failed, to_status: :failed854 is expected to eq false855 from_status: :failed, to_status: :success856 is expected to eq true857 from_status: :failed, to_status: :canceled858 is expected to eq true859 from_status: :failed, to_status: :skipped860 is expected to eq true861 from_status: :failed, to_status: :manual862 is expected to eq true863 from_status: :failed, to_status: :scheduled864 is expected to eq true865 from_status: :success, to_status: :waiting_for_resource866 is expected to eq true867 from_status: :success, to_status: :preparing868 is expected to eq true869 from_status: :success, to_status: :pending870 is expected to eq true871 from_status: :success, to_status: :running872 is expected to eq true873 from_status: :success, to_status: :failed874 is expected to eq true875 from_status: :success, to_status: :success876 is expected to eq false877 from_status: :success, to_status: :canceled878 is expected to eq true879 from_status: :success, to_status: :skipped880 is expected to eq true881 from_status: :success, to_status: :manual882 is expected to eq true883 from_status: :success, to_status: :scheduled884 is expected to eq true885 from_status: :canceled, to_status: :waiting_for_resource886 is expected to eq true887 from_status: :canceled, to_status: :preparing888 is expected to eq true889 from_status: :canceled, to_status: :pending890 is expected to eq true891 from_status: :canceled, to_status: :running892 is expected to eq true893 from_status: :canceled, to_status: :failed894 is expected to eq true895 from_status: :canceled, to_status: :success896 is expected to eq true897 from_status: :canceled, to_status: :canceled898 is expected to eq false899 from_status: :canceled, to_status: :skipped900 is expected to eq true901 from_status: :canceled, to_status: :manual902 is expected to eq true903 from_status: :canceled, to_status: :scheduled904 is expected to eq true905 from_status: :skipped, to_status: :waiting_for_resource906 is expected to eq true907 from_status: :skipped, to_status: :preparing908 is expected to eq true909 from_status: :skipped, to_status: :pending910 is expected to eq true911 from_status: :skipped, to_status: :running912 is expected to eq true913 from_status: :skipped, to_status: :failed914 is expected to eq true915 from_status: :skipped, to_status: :success916 is expected to eq true917 from_status: :skipped, to_status: :canceled918 is expected to eq true919 from_status: :skipped, to_status: :skipped920 is expected to eq false921 from_status: :skipped, to_status: :manual922 is expected to eq true923 from_status: :skipped, to_status: :scheduled924 is expected to eq true925 from_status: :manual, to_status: :waiting_for_resource926 is expected to eq true927 from_status: :manual, to_status: :preparing928 is expected to eq true929 from_status: :manual, to_status: :pending930 is expected to eq true931 from_status: :manual, to_status: :running932 is expected to eq true933 from_status: :manual, to_status: :failed934 is expected to eq true935 from_status: :manual, to_status: :success936 is expected to eq true937 from_status: :manual, to_status: :canceled938 is expected to eq true939 from_status: :manual, to_status: :skipped940 is expected to eq true941 from_status: :manual, to_status: :manual942 is expected to eq false943 from_status: :manual, to_status: :scheduled944 is expected to eq true945 from_status: :scheduled, to_status: :waiting_for_resource946 is expected to eq true947 from_status: :scheduled, to_status: :preparing948 is expected to eq true949 from_status: :scheduled, to_status: :pending950 is expected to eq true951 from_status: :scheduled, to_status: :running952 is expected to eq true953 from_status: :scheduled, to_status: :failed954 is expected to eq true955 from_status: :scheduled, to_status: :success956 is expected to eq true957 from_status: :scheduled, to_status: :canceled958 is expected to eq true959 from_status: :scheduled, to_status: :skipped960 is expected to eq true961 from_status: :scheduled, to_status: :manual962 is expected to eq true963 from_status: :scheduled, to_status: :scheduled964 is expected to eq false965 .processables966 has an association with processable CI/CD entities967 makes it possible to append a new processable968 .for_iid969 returns the pipeline970 .for_sha971 returns the pipeline972 when argument is array973 returns the pipelines974 when sha is empty975 does not return anything976 .where_not_sha977 returns the pipeline without the specified sha978 when argument is array979 returns the pipelines without the specified shas980 .for_source_sha981 returns the pipeline982 when argument is array983 returns the pipelines984 when source_sha is empty985 does not return anything986 .for_sha_or_source_sha987 when sha is matched988 returns the pipeline989 when source sha is matched990 returns the pipeline991 when both sha and source sha are not matched992 does not return anything993 .for_branch994 returns the pipeline995 with tag pipeline996 returns nothing997 .with_pipeline_source998 contains pipelines created due to specified source999 .ci_sources1000 contains pipelines having CI only sources1001 filters on expected sources1002 .ci_branch_sources1003 contains pipelines having CI only sources1004 filters on expected sources1005 .outside_pipeline_family1006 only returns pipelines outside pipeline family1007 .before_pipeline1008 only returns older pipelines outside pipeline family1009 #merge_request?1010 is expected to be merge request1011 when merge request is already loaded1012 does not reload the record and returns true1013 when merge request is not loaded1014 executes a database query and returns true1015 caches the result1016 when merge request was removed1017 executes a database query and returns false1018 when merge request id is not present1019 is expected not to be merge request1020 #detached_merge_request_pipeline?1021 is expected to be truthy1022 when target sha exists1023 is expected to be falsy1024 #merged_result_pipeline?1025 is expected to be truthy1026 when target sha is empty1027 is expected to be falsy1028 #merge_request_ref?1029 calls MergeRequest#merge_request_ref?1030 #merge_request_event_type1031 when pipeline is merge request pipeline1032 is expected to eq :merged_result1033 when pipeline is detached merge request pipeline1034 is expected to eq :detached1035 #legacy_detached_merge_request_pipeline?1036 is expected to be truthy1037 when pipeline ref is a merge request ref1038 is expected to be falsy1039 when target sha is set1040 is expected to be falsy1041 #matches_sha_or_source_sha?1042 when sha matches1043 is expected to be truthy1044 when source_sha matches1045 is expected to be truthy1046 when both sha and source_sha do not match1047 is expected to be falsy1048 #source_ref1049 returns source ref1050 when the pipeline is a detached merge request pipeline1051 returns source ref1052 #source_ref_slug1053 slugifies with the source ref1054 when the pipeline is a detached merge request pipeline1055 slugifies with the source ref of the merge request1056 .with_reports1057 when pipeline has a test report1058 selects the pipeline1059 when pipeline has a coverage report1060 selects the pipeline1061 when pipeline has an accessibility report1062 selects the pipeline1063 when pipeline has a codequality report1064 selects the pipeline1065 when pipeline has a terraform report1066 selects the pipeline1067 when pipeline does not have metrics reports1068 does not select the pipeline1069 .merge_request_event1070 when there is a merge request pipeline1071 returns merge request pipeline first1072 when there are no merge request pipelines1073 returns empty array1074 modules1075 behaves like AtomicInternalId1076 .has_internal_id1077 Module inclusion1078 is expected to includes the AtomicInternalId module1079 Validation1080 when presence validation is required1081 when creating an object1082 raises an error if the internal id is blank (PENDING: No reason given)1083 when updating an object1084 raises an error if the internal id is blank (PENDING: No reason given)1085 when presence validation is not required1086 when creating an object1087 does not raise an error if the internal id is blank1088 when updating an object1089 does not raise an error if the internal id is blank1090 Creating an instance1091 saves a new instance properly1092 internal id generation1093 calls InternalId.generate_next and sets internal id attribute1094 does not overwrite an existing internal id1095 when the instance has an internal ID set1096 calls InternalId.update_last_value and sets the `last_value` to that of the instance1097 unsetting the instance internal id on rollback1098 when the internal id has been changed1099 when the internal id is automatically set1100 clears it on the instance1101 when the internal id is manually set1102 does not clear it on the instance1103 when the internal id has not been changed1104 preserves the value on the instance1105 supply of internal ids1106 provides a persistent supply of IID values, sensitive to the current state1107 #reset_scope_internal_id_attribute1108 rewinds the allocated IID1109 allocates the same IID1110 #source1111 when creating new pipeline1112 prevents from creating an object1113 when updating existing pipeline1114 object is valid1115 #block1116 changes pipeline status to manual1117 #delay1118 changes pipeline status to schedule1119 #valid_commit_sha1120 commit.sha can not start with 000000001121 commit errors should not be empty1122 #short_sha1123 has 8 items1124 is expected to start with "b83d6e39"1125 #retried1126 returns old builds1127 #coverage1128 with multiple pipelines1129 calculates average when there are two builds with coverage1130 calculates average when there are two builds with coverage and one with nil1131 calculates average when there are two builds with coverage and one is retried1132 when there is one build without coverage1133 calculates average to nil1134 #update_builds_coverage1135 builds with coverage_regex defined1136 updates the coverage value of each build from the trace1137 builds without coverage_regex defined1138 does not update the coverage value of each build from the trace1139 builds with coverage values already present1140 does not update the coverage value of each build from the trace1141 #retryable?1142 no failed builds1143 is not retryable1144 one canceled job1145 is retryable1146 with failed builds1147 is retryable1148 #persisted_variables1149 when pipeline is not persisted yet1150 does not contain some variables1151 when pipeline is persisted1152 does contains persisted variables1153 #predefined_variables1154 includes all predefined variables in a valid order1155 when merge request is present1156 when pipeline for merge request is created1157 exposes merge request pipeline variables1158 exposes diff variables1159 without assignee1160 does not expose assignee variable1161 without milestone1162 does not expose milestone variable1163 without labels1164 does not expose labels variable1165 when pipeline on branch is created1166 when a merge request is created1167 when user has access to project1168 merge request references are returned matching the pipeline1169 when user does not have access to project1170 CI_OPEN_MERGE_REQUESTS is not returned1171 when no a merge request is created1172 CI_OPEN_MERGE_REQUESTS is not returned1173 with merged results1174 exposes merge request pipeline variables1175 exposes diff variables1176 when source is external pull request1177 exposes external pull request pipeline variables1178 variable CI_KUBERNETES_ACTIVE1179 when pipeline.has_kubernetes_active? is true1180 is included with value 'true'1181 when pipeline.has_kubernetes_active? is false1182 is not included1183 variable CI_GITLAB_FIPS_MODE1184 when FIPS flag is enabled1185 is included with value 'true'1186 when FIPS flag is disabled1187 is not included1188 without a commit1189 does not expose commit variables1190 #protected_ref?1191 delegates method to project1192 #legacy_trigger1193 returns first trigger request1194 #auto_canceled?1195 when it is canceled1196 when there is auto_canceled_by1197 is auto canceled1198 when there is no auto_canceled_by1199 is not auto canceled1200 when it is retried and canceled manually1201 is not auto canceled1202 pipeline stages1203 legacy stages1204 #legacy_stages1205 stages list1206 returns ordered list of stages1207 stages with statuses1208 returns list of stages with correct statuses1209 when there is a stage with warnings1210 populates stage with correct number of warnings1211 #stages_count1212 returns a valid number of stages1213 #stages_names1214 returns a valid names of stages1215 #legacy_stage1216 with status in stage1217 is expected to be a kind of Ci::LegacyStage1218 is expected to eq "test"1219 is expected not to be empty1220 without status in stage1221 return stage object1222 #stages1223 when pipelines is not complete1224 returns stages in valid order1225 when pipeline is complete1226 returns stages in valid order1227 state machine1228 when the pipeline recieved succeed! event1229 deletes a persistent ref1230 when the pipeline recieved drop! event1231 deletes a persistent ref1232 when the pipeline recieved cancel! event1233 deletes a persistent ref1234 when the pipeline recieved skip! event1235 deletes a persistent ref1236 when the pipeline recieved block! event1237 deletes a persistent ref1238 when the pipeline recieved delay! event1239 deletes a persistent ref1240 synching status to Jira1241 when Jira Connect subscription does not exist1242 does not trigger a Jira synch worker1243 when Jira Connect subscription exists1244 when we call pipeline.prepare!1245 triggers a Jira synch worker1246 when we call pipeline.run!1247 triggers a Jira synch worker1248 when we call pipeline.skip!1249 triggers a Jira synch worker1250 when we call pipeline.drop!1251 triggers a Jira synch worker1252 when we call pipeline.succeed!1253 triggers a Jira synch worker1254 when we call pipeline.cancel!1255 triggers a Jira synch worker1256 when we call pipeline.block!1257 triggers a Jira synch worker1258 when we call pipeline.delay!1259 triggers a Jira synch worker1260 #duration1261 when multiple builds are finished1262 matches sum of builds duration1263 when pipeline becomes blocked1264 recalculates pipeline duration1265 #started_at1266 from created1267 updates on transitioning to running1268 from preparing1269 updates on transitioning to running1270 from pending1271 updates on transitioning to running1272 from created1273 does not update on transitioning to success1274 from success1275 does not update on transitioning to running1276 #finished_at1277 updates on transitioning to success1278 does not update on transitioning to running1279 merge request metrics1280 when transitioning to running1281 from created1282 schedules metrics workers1283 from preparing1284 schedules metrics workers1285 from pending1286 schedules metrics workers1287 when transitioning to success1288 schedules metrics workers1289 merge on success1290 from created1291 schedules daily build group report results worker1292 from preparing1293 schedules daily build group report results worker1294 from pending1295 schedules daily build group report results worker1296 from running1297 schedules daily build group report results worker1298 pipeline caching1299 executes Ci::ExpirePipelineCacheService1300 #dangling?1301 returns true if pipeline comes from any dangling sources1302 returns true if pipeline comes from any CI sources1303 auto merge1304 when auto merge is enabled1305 when the pipeline recieved succeed! event1306 performs AutoMergeProcessWorker1307 when the pipeline recieved drop! event1308 performs AutoMergeProcessWorker1309 when the pipeline recieved cancel! event1310 performs AutoMergeProcessWorker1311 when the pipeline recieved skip! event1312 performs AutoMergeProcessWorker1313 when auto merge is not enabled in the merge request1314 performs AutoMergeProcessWorker1315 auto devops pipeline metrics1316 action: :succeed, status: "success"1317 when pipeline receives action 'succeed'1318 is expected to change `auto_devops_pipelines_completed_total(status)` by 11319 when not auto_devops_source?1320 is expected not to change `auto_devops_pipelines_completed_total(status)`1321 action: :drop, status: "failed"1322 when pipeline receives action 'drop'1323 is expected to change `auto_devops_pipelines_completed_total(status)` by 11324 when not auto_devops_source?1325 is expected not to change `auto_devops_pipelines_completed_total(status)`1326 action: :skip, status: "skipped"1327 when pipeline receives action 'skip'1328 is expected to change `auto_devops_pipelines_completed_total(status)` by 11329 when not auto_devops_source?1330 is expected not to change `auto_devops_pipelines_completed_total(status)`1331 action: :cancel, status: "canceled"1332 when pipeline receives action 'cancel'1333 is expected to change `auto_devops_pipelines_completed_total(status)` by 11334 when not auto_devops_source?1335 is expected not to change `auto_devops_pipelines_completed_total(status)`1336 bridge triggered pipeline1337 multi-project pipelines1338 behaves like upstream downstream pipeline1339 when source bridge is dependent on pipeline status1340 schedules the pipeline bridge worker1341 when the downstream pipeline first fails then retries and succeeds1342 makes the upstream pipeline successful1343 when the downstream pipeline first succeeds then retries and fails1344 makes the upstream pipeline failed1345 when the upstream pipeline has another dependent upstream pipeline1346 when the downstream pipeline first fails then retries and succeeds1347 makes upstream pipelines successful1348 when source bridge is not dependent on pipeline status1349 does not schedule the pipeline bridge worker1350 parent-child pipelines1351 behaves like upstream downstream pipeline1352 when source bridge is dependent on pipeline status1353 schedules the pipeline bridge worker1354 when the downstream pipeline first fails then retries and succeeds1355 makes the upstream pipeline successful1356 when the downstream pipeline first succeeds then retries and fails1357 makes the upstream pipeline failed1358 when the upstream pipeline has another dependent upstream pipeline1359 when the downstream pipeline first fails then retries and succeeds1360 makes upstream pipelines successful1361 when source bridge is not dependent on pipeline status1362 does not schedule the pipeline bridge worker1363 #ensure_persistent_ref1364 when the persistent ref does not exist1365 creates a ref1366 when the persistent ref exists1367 does not create a ref1368 #branch?1369 when ref is not a tag1370 return true1371 when pipeline is merge request1372 returns false1373 when ref is a tag1374 return false1375 #git_ref1376 when ref is branch1377 returns branch ref1378 when ref is tag1379 returns branch ref1380 when ref is merge request1381 returns branch ref1382 ref_exists?1383 when repository exists1384 tag: false, ref: "master", result: true1385 correctly detects ref1386 tag: false, ref: "non-existent-branch", result: false1387 correctly detects ref1388 tag: true, ref: "v1.1.0", result: true1389 correctly detects ref1390 tag: true, ref: "non-existent-tag", result: false1391 correctly detects ref1392 when repository does not exist1393 always returns false1394 with non-empty project1395 #lazy_ref_commit1396 returns the latest commit for a ref lazily1397 #latest?1398 with latest sha1399 returns true1400 with a branch name as the ref1401 looks up a commit for a branch1402 with a tag name as a ref1403 looks up a commit for a tag1404 with not latest sha1405 returns false1406 #manual_actions1407 when none defined1408 when action defined1409 returns one action1410 there are multiple of the same name1411 returns latest one1412 #branch_updated?1413 when pipeline has before SHA1414 runs on a branch update push1415 when pipeline does not have before SHA1416 does not run on a branch updating push1417 #modified_paths1418 when old and new revisions are set1419 fetches stats for changes between commits1420 when either old or new revision is missing1421 returns nil1422 when source is merge request1423 returns merge request modified paths1424 when source is an external pull request1425 returns external pull request modified paths1426 #all_worktree_paths1427 returns all file paths cached1428 #top_level_worktree_paths1429 returns top-level file paths cached1430 #has_kubernetes_active?1431 when kubernetes is active1432 when user configured kubernetes from CI/CD > Clusters1433 returns true1434 when kubernetes is not active1435 returns false1436 #has_warnings?1437 build which is allowed to fail fails1438 returns true1439 build which is allowed to fail succeeds1440 returns false1441 build is retried and succeeds1442 returns false1443 bridge which is allowed to fail fails1444 returns true1445 bridge which is allowed to fail is successful1446 returns false1447 #number_of_warnings1448 returns the number of warnings1449 supports eager loading of the number of warnings1450 #needs_processing?1451 processed: nil, result: true1452 is expected to eq true1453 processed: false, result: true1454 is expected to eq true1455 processed: true, result: false1456 is expected to eq false1457 with outdated pipelines1458 .newest_first1459 returns the pipelines from new to old1460 searches limited backlog1461 .latest_status1462 when no ref is specified1463 returns the status of the latest pipeline1464 when ref is specified1465 returns the status of the latest pipeline for the given ref1466 .latest_successful_for_ref1467 returns the latest successful pipeline1468 .latest_running_for_ref1469 returns the latest running pipeline1470 .latest_failed_for_ref1471 returns the latest failed pipeline1472 .latest_successful_for_sha1473 returns the latest successful pipeline1474 .latest_successful_for_refs1475 when refs are specified1476 returns the latest successful pipeline for both refs1477 when no refs are specified1478 returns an empty relation whenno refs are specified1479 .latest_pipeline_per_commit1480 without a ref1481 returns a Hash containing the latest pipeline per commit for all refs1482 only includes the latest pipeline of the given commit SHAs1483 when there are two pipelines for a ref and SHA1484 returns the latest pipeline1485 with a ref1486 only includes the pipelines for the given ref1487 when method is scoped1488 returns the latest pipeline after applying the scope1489 .latest_successful_ids_per_project1490 returns expected pipeline ids1491 .last_finished_for_ref_id1492 returns the expected pipeline1493 .internal_sources1494 is expected to be a kind of Array1495 .bridgeable_statuses1496 is expected to be a kind of Array1497 is expected not to include "created", "waiting_for_resource", "preparing", and "pending"1498 #status1499 on waiting for resource1500 is expected to eq "waiting_for_resource"1501 on prepare1502 is expected to eq "preparing"1503 on queuing1504 is expected to eq "pending"1505 on run1506 is expected to eq "running"1507 on drop1508 is expected to eq "failed"1509 on success1510 is expected to eq "success"1511 on cancel1512 when build is pending1513 is expected to eq "canceled"1514 on failure and build retry1515 is expected to eq "running"1516 #detailed_status1517 when pipeline is created1518 returns detailed status for created pipeline1519 when pipeline is pending1520 returns detailed status for pending pipeline1521 when pipeline is running1522 returns detailed status for running pipeline1523 when pipeline is successful1524 returns detailed status for successful pipeline1525 when pipeline is failed1526 returns detailed status for failed pipeline1527 when pipeline is canceled1528 returns detailed status for canceled pipeline1529 when pipeline is skipped1530 returns detailed status for skipped pipeline1531 when pipeline is blocked1532 returns detailed status for blocked pipeline1533 when pipeline is successful but with warnings1534 retruns detailed status for successful pipeline with warnings1535 #cancelable?1536 when there is a build created1537 is cancelable1538 when there is an external job created1539 is cancelable1540 when there are generic_commit_status jobs for created and success1541 is cancelable1542 when there are generic_commit_status and ci_build jobs for created and success1543 is cancelable1544 when there are ci_build jobs for created and success1545 is cancelable1546 when there are generic_commit_status jobs for created and failed1547 is cancelable1548 when there are generic_commit_status and ci_build jobs for created and failed1549 is cancelable1550 when there are ci_build jobs for created and failed1551 is cancelable1552 when there are generic_commit_status jobs for created and canceled1553 is cancelable1554 when there are generic_commit_status and ci_build jobs for created and canceled1555 is cancelable1556 when there are ci_build jobs for created and canceled1557 is cancelable1558 when there is a build running1559 is cancelable1560 when there is an external job running1561 is cancelable1562 when there are generic_commit_status jobs for running and success1563 is cancelable1564 when there are generic_commit_status and ci_build jobs for running and success1565 is cancelable1566 when there are ci_build jobs for running and success1567 is cancelable1568 when there are generic_commit_status jobs for running and failed1569 is cancelable1570 when there are generic_commit_status and ci_build jobs for running and failed1571 is cancelable1572 when there are ci_build jobs for running and failed1573 is cancelable1574 when there are generic_commit_status jobs for running and canceled1575 is cancelable1576 when there are generic_commit_status and ci_build jobs for running and canceled1577 is cancelable1578 when there are ci_build jobs for running and canceled1579 is cancelable1580 when there is a build pending1581 is cancelable1582 when there is an external job pending1583 is cancelable1584 when there are generic_commit_status jobs for pending and success1585 is cancelable1586 when there are generic_commit_status and ci_build jobs for pending and success1587 is cancelable1588 when there are ci_build jobs for pending and success1589 is cancelable1590 when there are generic_commit_status jobs for pending and failed1591 is cancelable1592 when there are generic_commit_status and ci_build jobs for pending and failed1593 is cancelable1594 when there are ci_build jobs for pending and failed1595 is cancelable1596 when there are generic_commit_status jobs for pending and canceled1597 is cancelable1598 when there are generic_commit_status and ci_build jobs for pending and canceled1599 is cancelable1600 when there are ci_build jobs for pending and canceled1601 is cancelable1602 when there is a build success1603 is not cancelable1604 when there is an external job success1605 is not cancelable1606 when there is a build failed1607 is not cancelable1608 when there is an external job failed1609 is not cancelable1610 when there is a build canceled1611 is not cancelable1612 when there is an external job canceled1613 is not cancelable1614 when there is a manual action present in the pipeline1615 is not cancelable1616 #cancel_running1617 when there is a running external job and a regular job1618 cancels both jobs1619 when jobs are in different stages1620 cancels both jobs1621 when there are created builds present in the pipeline1622 cancels created builds1623 preloading relations1624 preloads relations for each build to avoid N+1 queries1625 when the first try cannot get an exclusive lock1626 retries again and cancels the build1627 when the retries parameter is 01628 raises error1629 .cancelable1630 behaves like containing the pipeline1631 when it's running pipeline1632 is expected to contain exactly #<Ci::Pipeline id: 322, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 81, locked: "artifacts_locked">1633 behaves like containing the pipeline1634 when it's pending pipeline1635 is expected to contain exactly #<Ci::Pipeline id: 323, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 82, locked: "artifacts_locked">1636 behaves like containing the pipeline1637 when it's waiting_for_resource pipeline1638 is expected to contain exactly #<Ci::Pipeline id: 324, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 83, locked: "artifacts_locked">1639 behaves like containing the pipeline1640 when it's preparing pipeline1641 is expected to contain exactly #<Ci::Pipeline id: 325, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 84, locked: "artifacts_locked">1642 behaves like containing the pipeline1643 when it's created pipeline1644 is expected to contain exactly #<Ci::Pipeline id: 326, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 85, locked: "artifacts_locked">1645 behaves like containing the pipeline1646 when it's scheduled pipeline1647 is expected to contain exactly #<Ci::Pipeline id: 327, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 86, locked: "artifacts_locked">1648 behaves like containing the pipeline1649 when it's manual pipeline1650 is expected to contain exactly #<Ci::Pipeline id: 328, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 87, locked: "artifacts_locked">1651 behaves like not containing the pipeline1652 when it's failed pipeline1653 is expected to be empty1654 behaves like not containing the pipeline1655 when it's success pipeline1656 is expected to be empty1657 behaves like not containing the pipeline1658 when it's skipped pipeline1659 is expected to be empty1660 behaves like not containing the pipeline1661 when it's canceled pipeline1662 is expected to be empty1663 #retry_failed1664 when there is a failed build and failed external status1665 retries only build1666 when builds are in different stages1667 retries both builds1668 when there are canceled and failed1669 retries both builds1670 hooks trigerring1671 when pipeline action is enqueue1672 schedules a new PipelineHooksWorker job1673 with blocked users1674 does not schedule a new PipelineHooksWorker job1675 when pipeline action is request_resource1676 schedules a new PipelineHooksWorker job1677 with blocked users1678 does not schedule a new PipelineHooksWorker job1679 when pipeline action is prepare1680 schedules a new PipelineHooksWorker job1681 with blocked users1682 does not schedule a new PipelineHooksWorker job1683 when pipeline action is run1684 schedules a new PipelineHooksWorker job1685 with blocked users1686 does not schedule a new PipelineHooksWorker job1687 when pipeline action is skip1688 schedules a new PipelineHooksWorker job1689 with blocked users1690 does not schedule a new PipelineHooksWorker job1691 when pipeline action is drop1692 schedules a new PipelineHooksWorker job1693 with blocked users1694 does not schedule a new PipelineHooksWorker job1695 when pipeline action is succeed1696 schedules a new PipelineHooksWorker job1697 with blocked users1698 does not schedule a new PipelineHooksWorker job1699 when pipeline action is cancel1700 schedules a new PipelineHooksWorker job1701 with blocked users1702 does not schedule a new PipelineHooksWorker job1703 when pipeline action is block1704 schedules a new PipelineHooksWorker job1705 with blocked users1706 does not schedule a new PipelineHooksWorker job1707 when pipeline action is delay1708 schedules a new PipelineHooksWorker job1709 with blocked users1710 does not schedule a new PipelineHooksWorker job1711 #merge_requests_as_head_pipeline1712 returns merge requests whose `diff_head_sha` matches the pipeline's SHA1713 doesn't return merge requests whose source branch doesn't match the pipeline's ref1714 doesn't return merge requests whose `diff_head_sha` doesn't match the pipeline's SHA1715 #all_merge_requests1716 behaves like a method that returns all merge requests for a given pipeline1717 returns all merge requests having the same source branch and the pipeline sha1718 doesn't return merge requests having the same source branch without the pipeline sha1719 doesn't return merge requests having a different source branch1720 when there is a merge request pipeline1721 returns an associated merge request1722 when there is another merge request pipeline that targets a different branch1723 does not return an associated merge request1724 for a fork1725 behaves like a method that returns all merge requests for a given pipeline1726 returns all merge requests having the same source branch and the pipeline sha1727 doesn't return merge requests having the same source branch without the pipeline sha1728 doesn't return merge requests having a different source branch1729 when there is a merge request pipeline1730 returns an associated merge request1731 when there is another merge request pipeline that targets a different branch1732 does not return an associated merge request1733 #related_merge_requests1734 for a branch pipeline1735 when no merge request is created1736 when another merge requests are created1737 for a merge pipeline1738 when only merge pipeline is created1739 when a merge request is created1740 #open_merge_requests_refs1741 when user is a developer1742 returns open merge requests1743 does not return closed merge requests1744 limits amount of returned merge requests1745 returns only last 4 in a reverse order1746 when user does not have permissions1747 does not return any merge requests1748 #same_family_pipeline_ids1749 when pipeline is not child nor parent1750 returns just the pipeline id1751 when pipeline is child1752 returns parent sibling and self ids1753 when pipeline is parent1754 returns self and child ids1755 when pipeline is a child of a child pipeline1756 returns all family ids1757 when pipeline is a triggered pipeline1758 returns self id1759 #environments_in_self_and_descendants1760 when pipeline is not child nor parent1761 returns just the pipeline environment1762 when deployment SHA is not matched1763 does not return environments1764 when an associated environment does not have deployments1765 does not return environments1766 when pipeline is in extended family1767 returns its own environment and from all descendants1768 does not return parent environment1769 does not return sibling environment1770 when each pipeline has multiple environments1771 returns all related environments1772 when pipeline has no environment1773 returns empty1774 #root_ancestor1775 when pipeline is child of child pipeline1776 returns the root ancestor1777 when pipeline is root ancestor1778 returns itself1779 when pipeline is standalone1780 returns itself1781 when pipeline is multi-project downstream pipeline1782 ignores cross project ancestors1783 #upstream_root1784 when pipeline is child of child pipeline1785 returns the root ancestor1786 when pipeline is root ancestor1787 returns itself1788 when pipeline is standalone1789 returns itself1790 when pipeline is multi-project downstream pipeline1791 returns the upstream pipeline1792 #stuck?1793 when pipeline is stuck1794 is stuck1795 when pipeline is not stuck1796 is not stuck1797 #add_error_message1798 adds a new pipeline error message1799 #has_yaml_errors?1800 returns false if yaml_errors is not set1801 when yaml_errors is set1802 returns true if yaml_errors is set1803 notifications when pipeline success or failed1804 with success pipeline1805 enqueues PipelineNotificationWorker1806 behaves like sending a notification1807 sends an email1808 when pipeline is not the latest1809 does not pass ref_status1810 when the user is blocked1811 does not enqueue PipelineNotificationWorker1812 with failed pipeline1813 enqueues PipelineNotificationWorker1814 behaves like sending a notification1815 sends an email1816 when the user is blocked1817 does not enqueue PipelineNotificationWorker1818 with skipped pipeline1819 behaves like not sending any notification1820 does not send any email1821 with cancelled pipeline1822 behaves like not sending any notification1823 does not send any email1824 updates ci_ref when pipeline finished1825 when ci_ref exists1826 updates the ci_ref1827 when ci_ref does not exist1828 does not raise an exception1829 #ensure_ci_ref!1830 when ci_ref does not exist yet1831 creates a new ci_ref and assigns it1832 when ci_ref already exists1833 fetches a new ci_ref and assigns it1834 #self_and_descendants_complete?1835 when all pipelines in the hierarchy is complete1836 is expected to equal true1837 when a pipeline in the hierarchy is not complete1838 is expected to equal false1839 #builds_in_self_and_descendants1840 when pipeline is standalone1841 returns the list of builds1842 when pipeline is parent of another pipeline1843 returns the list of builds1844 when pipeline is parent of another parent pipeline1845 returns the list of builds1846 #build_with_artifacts_in_self_and_descendants1847 returns the build with a given name, having artifacts1848 when same job name is present in both parent and child pipeline1849 returns the job in the parent pipeline1850 #find_job_with_archive_artifacts1851 finds the expected job1852 #latest_builds_with_artifacts1853 returns an Array1854 returns the latest builds with non-expired artifacts1855 does not return builds with expired artifacts1856 memoizes the returned relation1857 #batch_lookup_report_artifact_for_file_type1858 with code quality report artifact1859 returns the code quality artifact1860 #latest_report_builds1861 returns build with test artifacts1862 filters builds by scope1863 only returns not retried builds1864 #latest_report_builds_in_self_and_descendants1865 returns builds with reports artifacts from pipelines in the hierarcy1866 filters builds by scope1867 only returns builds that are not retried1868 #has_reports?1869 when pipeline has builds with test reports1870 when pipeline status is running1871 is expected to be falsey1872 when pipeline status is success1873 is expected to be truthy1874 when pipeline does not have builds with test reports1875 is expected to be falsey1876 when retried build has test reports1877 is expected to be falsey1878 #has_coverage_reports?1879 when pipeline has a code coverage artifact1880 is expected to be truthy1881 when pipeline does not have a code coverage artifact1882 is expected to be falsey1883 #has_codequality_mr_diff_report?1884 when pipeline has a codequality mr diff report1885 is expected to be truthy1886 when pipeline does not have a codequality mr diff report1887 is expected to be falsey1888 #can_generate_codequality_reports?1889 when pipeline has builds with codequality reports1890 when pipeline status is running1891 is expected to be falsey1892 when pipeline status is success1893 can generate a codequality report1894 when pipeline does not have builds with codequality reports1895 is expected to be falsey1896 #test_report_summary1897 when pipeline has multiple builds with report results1898 returns test report summary with collected data1899 when pipeline does not have any builds with report results1900 returns empty test report summary1901 #test_reports1902 when pipeline has multiple builds with test reports1903 returns test reports with collected data1904 when builds are retried1905 does not take retried builds into account1906 when pipeline does not have any builds with test reports1907 returns empty test reports1908 #accessibility_reports1909 when pipeline has multiple builds with accessibility reports1910 returns accessibility report with collected data1911 when builds are retried1912 returns empty urls for accessibility reports1913 when pipeline does not have any builds with accessibility reports1914 returns empty urls for accessibility reports1915 #codequality_reports1916 when pipeline has multiple builds with codequality reports1917 returns codequality report with collected data1918 when builds are retried1919 returns a codequality reports without degradations1920 when pipeline does not have any builds with codequality reports1921 returns codequality reports without degradations1922 #uses_needs?1923 when the scheduling type is `dag`1924 returns true1925 when the scheduling type is nil or stage1926 returns false1927 #total_size1928 returns all jobs (including failed and retried)1929 #status1930 when transitioning to failed1931 when pipeline has autodevops as source1932 calls autodevops disable service1933 when pipeline has other source1934 does not call auto devops disable service1935 with failure_reason1936 increments the counter with the failure_reason1937 #default_branch?1938 when pipeline ref is the default branch of the project1939 returns true1940 when pipeline ref is not the default branch of the project1941 returns false1942 #find_stage_by_name1943 when stage exists1944 is expected to eq #<Ci::Stage project_id: 1, pipeline_id: 449, created_at: "2022-06-28 10:23:18.324885624 +0000", updat...8 10:23:18.324885624 +0000", name: "test", status: "pending", lock_version: 0, position: 1, id: 219>1945 when stage does not exist1946 raises an ActiveRecord exception1947 #full_error_messages1948 when pipeline has errors1949 returns the full error messages1950 when pipeline does not have errors1951 returns empty string1952 #created_successfully?1953 when pipeline is not persisted1954 is expected to be falsey1955 when pipeline is persisted1956 when pipeline has failure reasons1957 is expected to be falsey1958 when pipeline has no failure reasons1959 is expected to be truthy1960 #parent_pipeline1961 when pipeline is triggered by a pipeline from the same project1962 returns the parent pipeline1963 is child1964 when pipeline is triggered by a pipeline from another project1965 returns nil1966 is not child1967 when pipeline is not triggered by a pipeline1968 returns nil1969 is not child1970 #child_pipelines1971 when pipeline triggered other pipelines on same project1972 returns the child pipelines1973 is parent1974 when pipeline triggered other pipelines on another project1975 returns empty array1976 is not parent1977 when pipeline did not trigger any pipelines1978 returns empty array1979 is not parent1980 upstream status interactions1981 when a pipeline has an upstream status1982 when an upstream status is a bridge1983 #bridge_triggered?1984 is a pipeline triggered by a bridge1985 #source_job1986 has a correct source job1987 #source_bridge1988 has a correct bridge source1989 when an upstream status is a build1990 #bridge_triggered?1991 is a pipeline that has not been triggered by a bridge1992 #source_job1993 has a correct source job1994 #source_bridge1995 does not have a bridge source1996 #source_ref_path1997 when pipeline is for a branch1998 is expected to eq "refs/heads/master"1999 when pipeline is for a merge request2000 is expected to eq "refs/heads/master"2001 when pipeline is for a tag2002 is expected to eq "refs/tags/master"2003 #builds_with_coverage2004 returns builds with coverage only2005 returns only latest builds2006 #self_and_upstreams2007 when pipeline is not child nor parent2008 returns just the pipeline itself2009 when pipeline is child2010 returns parent and self2011 when pipeline is parent2012 returns self2013 when pipeline is a child of a child pipeline2014 returns self, parent and ancestor2015 when pipeline is a triggered pipeline from a different project2016 returns upstream and self2017 #self_and_ancestors2018 when pipeline is child2019 returns parent and self2020 when pipeline is a triggered pipeline from a different project2021 returns only self2022 #reset_source_bridge!2023 when the pipeline is a child pipeline and the bridge is depended2024 marks source bridge as pending2025 when the parent pipeline has subsequent jobs after the bridge2026 marks subsequent jobs of the bridge as processable2027 when the parent pipeline has a dependent upstream pipeline2028 marks all source bridges as pending2029 when the pipeline is a child pipeline and the bridge is not depended2030 does not touch source bridge2031 when the parent pipeline has a dependent upstream pipeline2032 does not touch any source bridge2033 test failure history processing2034 performs the service asynchronously when the pipeline is completed2035 #latest_test_report_builds2036 returns pipeline builds with test report artifacts2037 preloads project on each build to avoid N+1 queries2038 #builds_with_failed_tests2039 returns pipeline builds with test report artifacts2040 supports limiting the number of builds to fetch2041 preloads project on each build to avoid N+1 queries2042 #build_matchers2043 returns build matchers2044 with retried builds2045 does not include retried builds2046 #authorized_cluster_agents2047 retrieves agent records from the finder and caches the result2048 #has_expired_test_reports?2049 when artifacts are not expired2050 is expected to be falsey2051 when artifacts are expired2052 is expected to be truthy2053 when the pipeline is still running2054 is expected to be falsey2055 when the pipeline is completed without test reports2056 is expected to be falsey2057 behaves like it has loose foreign keys2058 has at least one loose foreign key definition2059 has the deletion trigger present2060 records record deletions2061 cleans up record deletions2062 loose foreign key on ci_pipelines.user_id2063 behaves like cleanup by a loose foreign key2064 cleans up (delete or nullify) the model2065 tags count2066 is expected to eq 02067 is expected to eq 02068 with builds2069 is expected to eq 42070 is expected to eq 32071 loose foreign key on ci_pipelines.merge_request_id2072 behaves like cleanup by a loose foreign key2073 cleans up (delete or nullify) the model2074 loose foreign key on ci_pipelines.project_id2075 behaves like cleanup by a loose foreign key2076 cleans up (delete or nullify) the model2077 #jobs_git_ref2078 when tag is true2079 returns a tag ref2080 when tag is false2081 returns a branch ref2082 when tag is nil2083 returns a branch ref2084 when it is triggered by a merge request2085 returns nil2086Ci::PipelineProcessing::AtomicProcessingService2087 Pipeline Processing Service Tests With Yaml2088 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_succeeds_test_on_failure.yml"2089 follows transitions2090 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_fails_with_allow_failure.yml"2091 follows transitions2092 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_other_build_succeeds_deploy_needs_one_build_and_test.yml"2093 follows transitions2094 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_with_allow_failure_test_on_failure.yml"2095 follows transitions2096 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_same_stage_needs.yml"2097 follows transitions2098 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails.yml"2099 follows transitions2100 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_succeeds_test_manual_allow_failure_true.yml"2101 follows transitions2102 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_deploy_on_failure.yml"2103 follows transitions2104 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_is_delayed_and_needs_test.yml"2105 follows transitions2106 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_test_manual_review_deploy.yml"2107 follows transitions2108 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeds_test_manual_allow_failure_true_deploy_needs_test.yml"2109 follows transitions2110 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_rules_out_test_needs_build_with_optional.yml"2111 follows transitions2112 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_deploy_always.yml"2113 follows transitions2114 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_always.yml"2115 follows transitions2116 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails.yml"2117 follows transitions2118 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_fails_with_allow_failure.yml"2119 follows transitions2120 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeeds_test_on_failure.yml"2121 follows transitions2122 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true_deploy_on_failure.yml"2123 follows transitions2124 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_needs_test.yml"2125 follows transitions2126 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_on_failure_deploy_needs_test.yml"2127 follows transitions2128 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_deploy_on_failure.yml"2129 follows transitions2130 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_other_build_succeeds_deploy_needs_one_build_and_test_when_always.yml"2131 follows transitions2132 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_other_test_succeeds_deploy_needs_both.yml"2133 follows transitions2134 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_is_manual_and_needs_test.yml"2135 follows transitions2136 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_post_test_needs_deploy_is_stage.yml"2137 follows transitions2138 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_test_two_manual_review_test_staging_production.yml"2139 follows transitions2140 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_builds_succeed_test_on_failure_deploy_needs_one_build_and_test.yml"2141 follows transitions2142 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeds_test_manual_allow_failure_true_deploy_needs_both.yml"2143 follows transitions2144 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build2_build1_rules_out_test_needs_build1_with_optional.yml"2145 follows transitions2146 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_succeeds.yml"2147 follows transitions2148 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails_test_on_failure.yml"2149 follows transitions2150 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeeds_test_on_failure_deploy_needs_test.yml"2151 follows transitions2152 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails_with_allow_failure_test_on_failure.yml"2153 follows transitions2154 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_false.yml"2155 follows transitions2156 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_test_manual_review_deploy.yml"2157 follows transitions2158 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true_deploy_always.yml"2159 follows transitions2160 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_on_failure.yml"2161 follows transitions2162 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false.yml"2163 follows transitions2164 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_other_test_succeeds_deploy_needs_both.yml"2165 follows transitions2166 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_fails.yml"2167 follows transitions2168 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_needs_test_when_always.yml"2169 follows transitions2170 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_builds_succeed_test_on_failure_deploy_needs_one_build_and_test_when_always.yml"2171 follows transitions2172 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true.yml"2173 follows transitions2174 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_same_and_different_stage_needs.yml"2175 follows transitions2176 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_deploy_needs_empty.yml"2177 follows transitions2178 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_same_stages.yml"2179 follows transitions2180 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_deploy_always.yml"2181 follows transitions2182 Pipeline Processing Service2183 when simple pipeline is defined2184 processes a pipeline2185 does not process pipeline if existing stage is running2186 custom stage with first job allowed to fail2187 automatically triggers a next stage when build finishes2188 when optional manual actions are defined2189 when builds are successful2190 properly processes the pipeline2191 when test job fails2192 properly processes the pipeline2193 when test and test_failure jobs fail2194 properly processes the pipeline2195 when deploy job fails2196 properly processes the pipeline2197 when build is canceled in the second stage2198 does not schedule builds after build has been canceled2199 when listing optional manual actions2200 returns only for skipped builds2201 when delayed jobs are defined2202 when the scene is timed incremental rollout2203 when builds are successful2204 properly processes the pipeline2205 when build job fails2206 properly processes the pipeline2207 when rollout 10% is unscheduled2208 properly processes the pipeline2209 when user plays rollout 10%2210 schedules rollout100%2211 when rollout 10% fails2212 properly processes the pipeline2213 when user retries rollout 10%2214 does not schedule rollout10% again2215 when rollout 10% is played immidiately2216 properly processes the pipeline2217 when only one scheduled job exists in a pipeline2218 properly processes the pipeline2219 when there are two delayed jobs in a stage2220 blocks the stage until all scheduled jobs finished2221 when a delayed job is allowed to fail2222 blocks the stage and continues after it failed2223 when an exception is raised during a persistent ref creation2224 process the pipeline2225 when there are manual action in earlier stages2226 when first stage has only optional manual actions2227 starts from the second stage2228 when second stage has only optional manual actions2229 skips second stage and continues on third stage2230 when there are only manual actions in stages2231 processes all jobs until blocking actions encountered2232 when there is only one manual action2233 skips the pipeline2234 when the action was played2235 queues the action and pipeline2236 when blocking manual actions are defined2237 when first stage succeeds2238 blocks pipeline on stage with first manual action2239 when first stage fails2240 does not take blocking action into account2241 when pipeline is promoted sequentially up to the end2242 properly processes entire pipeline2243 when second stage has only on_failure jobs2244 skips second stage and continues on third stage2245 when failed build in the middle stage is retried2246 when failed build is the only unsuccessful build in the stage2247 does trigger builds in the next stage2248 when builds with auto-retries are configured2249 automatically retries builds in a valid order2250 when pipeline with needs is created2251 when linux:* finishes first it runs it out of order2252 when one of the jobs is run on a failure2253 when another job in build phase fails first2254 does skip linux:notify2255 when linux:build job fails first2256 does run linux:notify2257 when there is a job scheduled with dag but no need (needs: [])2258 runs deploy_pages without waiting prior stages2259 when a needed job is skipped2260 skips the jobs depending on it2261 when a needed job is manual2262 makes deploy DAG to be skipped2263 when a bridge job has parallel:matrix config2264 creates pipeline with bridges, then passes the matrix variables to downstream jobs2265 when a bridge job has invalid downstream project2266 creates a pipeline, then fails the bridge job2267 when the dependency is stage-independent2268 processes subsequent jobs in the correct order when playing first job2269Groups::TransferService2270 handling packages2271 with an npm package2272 behaves like transfer not allowed2273 does not allow transfer when there is a root namespace change2274 with a project within subgroup2275 behaves like transfer not allowed2276 does not allow transfer when there is a root namespace change2277 without a root namespace change2278 allows transfer2279 when transferring a group into a root group2280 behaves like transfer not allowed2281 does not allow transfer when there is a root namespace change2282 without an npm package2283 when transferring a group into a root group2284 allows transfer2285 #execute2286 when transforming a group into a root group2287 behaves like ensuring allowed transfer for a group2288 when there's an exception on GitLab shell directories2289 returns false2290 adds an error on group2291 when the group is already a root group2292 adds an error on group2293 when the user does not have the right policies2294 returns false2295 adds an error on group2296 when there is a group with the same path2297 returns false2298 adds an error on group2299 when the group is a subgroup and the transfer is valid2300 updates group attributes2301 updates group children path2302 updates group projects path2303 when projects have project namespaces2304 behaves like project namespace path is in sync with project path2305 keeps project and project namespace attributes in sync2306 when transferring a subgroup into another group2307 behaves like ensuring allowed transfer for a group2308 when there's an exception on GitLab shell directories2309 returns false2310 adds an error on group2311 when the new parent group is the same as the previous parent group2312 returns false2313 adds an error on group2314 when the user does not have the right policies2315 returns false2316 adds an error on group2317 when the parent has a group with the same path2318 returns false2319 adds an error on group2320 when the parent group has a project with the same path2321 adds an error on group2322 when projects have project namespaces2323 behaves like project namespace path is in sync with project path2324 keeps project and project namespace attributes in sync2325 when the group is allowed to be transferred2326 updates visibility for the group based on the parent group2327 updates parent group to the new parent2328 returns the group as children of the new parent2329 creates a redirect for the group2330 when the group has a lower visibility than the parent group2331 does not update the visibility for the group2332 when the group has a higher visibility than the parent group2333 updates visibility level based on the parent group2334 with a group integration2335 with an inherited integration2336 replaces inherited integrations2337 with a custom integration2338 does not updates the integrations2339 shared runners configuration2340 if parent group has disabled shared runners but allows overrides2341 calls update service2342 if parent group does not allow shared runners2343 calls update service2344 if parent group allows shared runners2345 does not call update service and keeps them disabled on the group2346 when a group is transferred to its subgroup2347 does not execute the transfer2348 when transferring a group with group descendants2349 updates subgroups path2350 creates redirects for the subgroups2351 when the new parent has a higher visibility than the children2352 does not update the children visibility2353 when the new parent has a lower visibility than the children2354 updates children visibility to match the new parent2355 when transferring a group with project descendants2356 updates projects path2357 creates permanent redirects for the projects2358 when the new parent has a higher visibility than the projects2359 does not update projects visibility2360 behaves like project namespace path is in sync with project path2361 keeps project and project namespace attributes in sync2362 when the new parent has a lower visibility than the projects2363 updates projects visibility to match the new parent2364 behaves like project namespace path is in sync with project path2365 keeps project and project namespace attributes in sync2366 when transferring a group with subgroups & projects descendants2367 updates subgroups path2368 updates projects path2369 creates redirect for the subgroups and projects2370 behaves like project namespace path is in sync with project path2371 keeps project and project namespace attributes in sync2372 when transferring a group with nested groups and projects2373 updated paths2374 updates subgroups path2375 updates projects path2376 creates redirect for the subgroups and projects2377 resets project authorizations2378 removes old project authorizations2379 adds new project authorizations2380 performs authorizations job immediately2381 for nested projects2382 removes old project authorizations2383 adds new project authorizations2384 preserves existing project authorizations for direct project members2385 for nested groups with unique members2386 preserves existing project authorizations2387 for groups with many projects2388 adds new project authorizations for the user which makes a transfer2389 adds project authorizations for users in the new hierarchy2390 removes project authorizations for users in the old hierarchy2391 schedules authorizations job2392 transferring groups with shared_projects2393 when the group that has existing project share is transferred2394 behaves like drops the authorizations of ancestor members from the old hierarchy2395 drops the authorizations of ancestor members from the old hierarchy2396 when the group whose subgroup has an existing project share is transferred2397 behaves like drops the authorizations of ancestor members from the old hierarchy2398 drops the authorizations of ancestor members from the old hierarchy2399 when a group that has existing group share is transferred2400 retains the authorizations of direct members2401 when transferring a group with two factor authentication switched on2402 does not update group two factor authentication setting2403 when new parent disallows two factor authentication switched on for descendants2404 updates group two factor authentication setting2405 schedules update of group two factor authentication setting for descendants2406 when updating the group goes wrong2407 restores group and projects visibility2408 when group has pending builds2409 updates pending builds for the group2410 when transferring a subgroup into root group2411 ensures there is still an owner for the transferred group2412 when group has explicit owner2413 does not add additional owner2414 when a project has container images2415 within group2416 does not transfer2417 within subgroup2418 does not transfer2419 crm2420 moving up2421DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated2422and will be no longer quoted as id value in Rails 6.2.2423 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)2424 retains issue contacts2425 moving down2426 retains issue contacts2427 moving sideways2428 retains issue contacts2429 moving to new root group2430 moves all crm objects2431 retains issue contacts2432 moving to a subgroup within a new root group2433 with permission on the root group2434 moves all crm objects2435 retains issue contacts2436 with permission on the subgroup2437 raises error2438SnippetsFinder2439 #initialize2440 raises ArgumentError when a project and author are given2441 #execute2442 filter by scope2443 returns all snippets for 'all' scope2444 returns all snippets for 'are_private' scope2445 returns all snippets for 'are_internal' scope2446 returns all snippets for 'are_public' scope2447 filter by author2448 returns internal snippets2449 returns private snippets2450 returns public snippets2451 returns all snippets2452 returns only public snippets if unauthenticated user2453 returns all snippets for an admin in admin mode2454 returns all public and internal snippets for an admin without admin mode2455 when the author is a User object2456 returns all public and internal snippets2457 when the author is the User id2458 returns all public and internal snippets2459 when author is not valid2460 returns quickly2461 filter by project2462 returns public and internal snippets for non project members2463 returns public snippets for non project members2464 returns internal snippets for non project members2465 does not return private snippets for non project members2466 returns all snippets for project members2467 returns private snippets for project members2468 returns all snippets for an admin in admin mode2469 returns public and internal snippets for an admin without admin mode2470 when project is a Project object2471 returns public personal and project snippets for unauthorized user2472 when project is a Project id2473 returns public personal and project snippets for unauthorized user2474 filter by author2475 returns all snippets for project members2476 when project is not valid2477 returns quickly2478 filter by snippet type2479 when filtering by only_personal snippet2480 returns only personal snippet2481 when filtering by only_project snippet2482 returns only project snippet2483 filtering by ids2484 returns only personal snippet2485 explore snippets2486 returns only public personal snippets for unauthenticated users2487 also returns internal personal snippets for authenticated users2488 returns all personal snippets for admins when in admin mode2489 also returns internal personal snippets for admins without admin mode2490 when the user cannot read cross project2491 returns only personal snippets when the user cannot read cross project2492 when only project snippets are required2493 returns no records2494 when project snippets are disabled2495 returns quickly2496 no sort param is provided2497 returns snippets sorted by id2498 sort param is provided2499 returns snippets sorted by sort param2500 behaves like snippet visibility2501 For project snippets2502 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: true2503 For project and unauthenticated users2504 returns proper outcome2505 Without a given project and unauthenticated users2506 returns proper outcome2507 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2508 For project and unauthenticated users2509 returns proper outcome2510 Without a given project and unauthenticated users2511 returns proper outcome2512 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2513 For project and unauthenticated users2514 returns proper outcome2515 Without a given project and unauthenticated users2516 returns proper outcome2517 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: true2518 For project and external users2519 returns proper outcome2520 Without a given project and external users2521 returns proper outcome2522 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: false2523 For project and external users2524 returns proper outcome2525 Without a given project and external users2526 returns proper outcome2527 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: false2528 For project and external users2529 returns proper outcome2530 Without a given project and external users2531 returns proper outcome2532 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: true2533 For project and non_member users2534 returns proper outcome2535 Without a given project and non_member users2536 returns proper outcome2537 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: true2538 For project and non_member users2539 returns proper outcome2540 Without a given project and non_member users2541 returns proper outcome2542 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false2543 For project and non_member users2544 returns proper outcome2545 Without a given project and non_member users2546 returns proper outcome2547 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true2548 For project and member users2549 returns proper outcome2550 Without a given project and member users2551 returns proper outcome2552 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true2553 For project and member users2554 returns proper outcome2555 Without a given project and member users2556 returns proper outcome2557 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true2558 For project and member users2559 returns proper outcome2560 Without a given project and member users2561 returns proper outcome2562 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true2563 For project and author users2564 returns proper outcome2565 Without a given project and author users2566 returns proper outcome2567 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true2568 For project and author users2569 returns proper outcome2570 Without a given project and author users2571 returns proper outcome2572 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true2573 For project and author users2574 returns proper outcome2575 Without a given project and author users2576 returns proper outcome2577 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2578 For project and unauthenticated users2579 returns proper outcome2580 Without a given project and unauthenticated users2581 returns proper outcome2582 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2583 For project and unauthenticated users2584 returns proper outcome2585 Without a given project and unauthenticated users2586 returns proper outcome2587 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2588 For project and unauthenticated users2589 returns proper outcome2590 Without a given project and unauthenticated users2591 returns proper outcome2592 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: false2593 For project and external users2594 returns proper outcome2595 Without a given project and external users2596 returns proper outcome2597 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: false2598 For project and external users2599 returns proper outcome2600 Without a given project and external users2601 returns proper outcome2602 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: false2603 For project and external users2604 returns proper outcome2605 Without a given project and external users2606 returns proper outcome2607 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false2608 For project and non_member users2609 returns proper outcome2610 Without a given project and non_member users2611 returns proper outcome2612 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false2613 For project and non_member users2614 returns proper outcome2615 Without a given project and non_member users2616 returns proper outcome2617 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false2618 For project and non_member users2619 returns proper outcome2620 Without a given project and non_member users2621 returns proper outcome2622 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true2623 For project and member users2624 returns proper outcome2625 Without a given project and member users2626 returns proper outcome2627 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true2628 For project and member users2629 returns proper outcome2630 Without a given project and member users2631 returns proper outcome2632 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true2633 For project and member users2634 returns proper outcome2635 Without a given project and member users2636 returns proper outcome2637 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true2638 For project and author users2639 returns proper outcome2640 Without a given project and author users2641 returns proper outcome2642 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true2643 For project and author users2644 returns proper outcome2645 Without a given project and author users2646 returns proper outcome2647 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true2648 For project and author users2649 returns proper outcome2650 Without a given project and author users2651 returns proper outcome2652 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2653 For project and unauthenticated users2654 returns proper outcome2655 Without a given project and unauthenticated users2656 returns proper outcome2657 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2658 For project and unauthenticated users2659 returns proper outcome2660 Without a given project and unauthenticated users2661 returns proper outcome2662 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2663 For project and unauthenticated users2664 returns proper outcome2665 Without a given project and unauthenticated users2666 returns proper outcome2667 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false2668 For project and external users2669 returns proper outcome2670 Without a given project and external users2671 returns proper outcome2672 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false2673 For project and external users2674 returns proper outcome2675 Without a given project and external users2676 returns proper outcome2677 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false2678 For project and external users2679 returns proper outcome2680 Without a given project and external users2681 returns proper outcome2682 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false2683 For project and non_member users2684 returns proper outcome2685 Without a given project and non_member users2686 returns proper outcome2687 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2688 For project and non_member users2689 returns proper outcome2690 Without a given project and non_member users2691 returns proper outcome2692 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false2693 For project and non_member users2694 returns proper outcome2695 Without a given project and non_member users2696 returns proper outcome2697 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false2698 For project and member users2699 returns proper outcome2700 Without a given project and member users2701 returns proper outcome2702 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false2703 For project and member users2704 returns proper outcome2705 Without a given project and member users2706 returns proper outcome2707 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false2708 For project and member users2709 returns proper outcome2710 Without a given project and member users2711 returns proper outcome2712 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false2713 For project and author users2714 returns proper outcome2715 Without a given project and author users2716 returns proper outcome2717 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false2718 For project and author users2719 returns proper outcome2720 Without a given project and author users2721 returns proper outcome2722 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false2723 For project and author users2724 returns proper outcome2725 Without a given project and author users2726 returns proper outcome2727 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2728 For project and unauthenticated users2729 returns proper outcome2730 Without a given project and unauthenticated users2731 returns proper outcome2732 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2733 For project and unauthenticated users2734 returns proper outcome2735 Without a given project and unauthenticated users2736 returns proper outcome2737 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2738 For project and unauthenticated users2739 returns proper outcome2740 Without a given project and unauthenticated users2741 returns proper outcome2742 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: false2743 For project and external users2744 returns proper outcome2745 Without a given project and external users2746 returns proper outcome2747 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: false2748 For project and external users2749 returns proper outcome2750 Without a given project and external users2751 returns proper outcome2752 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: false2753 For project and external users2754 returns proper outcome2755 Without a given project and external users2756 returns proper outcome2757 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: true2758 For project and non_member users2759 returns proper outcome2760 Without a given project and non_member users2761 returns proper outcome2762 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: true2763 For project and non_member users2764 returns proper outcome2765 Without a given project and non_member users2766 returns proper outcome2767 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false2768 For project and non_member users2769 returns proper outcome2770 Without a given project and non_member users2771 returns proper outcome2772 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true2773 For project and member users2774 returns proper outcome2775 Without a given project and member users2776 returns proper outcome2777 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true2778 For project and member users2779 returns proper outcome2780 Without a given project and member users2781 returns proper outcome2782 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true2783 For project and member users2784 returns proper outcome2785 Without a given project and member users2786 returns proper outcome2787 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true2788 For project and author users2789 returns proper outcome2790 Without a given project and author users2791 returns proper outcome2792 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true2793 For project and author users2794 returns proper outcome2795 Without a given project and author users2796 returns proper outcome2797 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true2798 For project and author users2799 returns proper outcome2800 Without a given project and author users2801 returns proper outcome2802 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2803 For project and unauthenticated users2804 returns proper outcome2805 Without a given project and unauthenticated users2806 returns proper outcome2807 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2808 For project and unauthenticated users2809 returns proper outcome2810 Without a given project and unauthenticated users2811 returns proper outcome2812 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2813 For project and unauthenticated users2814 returns proper outcome2815 Without a given project and unauthenticated users2816 returns proper outcome2817 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: false2818 For project and external users2819 returns proper outcome2820 Without a given project and external users2821 returns proper outcome2822 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: false2823 For project and external users2824 returns proper outcome2825 Without a given project and external users2826 returns proper outcome2827 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: false2828 For project and external users2829 returns proper outcome2830 Without a given project and external users2831 returns proper outcome2832 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false2833 For project and non_member users2834 returns proper outcome2835 Without a given project and non_member users2836 returns proper outcome2837 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false2838 For project and non_member users2839 returns proper outcome2840 Without a given project and non_member users2841 returns proper outcome2842 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false2843 For project and non_member users2844 returns proper outcome2845 Without a given project and non_member users2846 returns proper outcome2847 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true2848 For project and member users2849 returns proper outcome2850 Without a given project and member users2851 returns proper outcome2852 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true2853 For project and member users2854 returns proper outcome2855 Without a given project and member users2856 returns proper outcome2857 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true2858 For project and member users2859 returns proper outcome2860 Without a given project and member users2861 returns proper outcome2862 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true2863 For project and author users2864 returns proper outcome2865 Without a given project and author users2866 returns proper outcome2867 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true2868 For project and author users2869 returns proper outcome2870 Without a given project and author users2871 returns proper outcome2872 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true2873 For project and author users2874 returns proper outcome2875 Without a given project and author users2876 returns proper outcome2877 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2878 For project and unauthenticated users2879 returns proper outcome2880 Without a given project and unauthenticated users2881 returns proper outcome2882 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2883 For project and unauthenticated users2884 returns proper outcome2885 Without a given project and unauthenticated users2886 returns proper outcome2887 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2888 For project and unauthenticated users2889 returns proper outcome2890 Without a given project and unauthenticated users2891 returns proper outcome2892 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false2893 For project and external users2894 returns proper outcome2895 Without a given project and external users2896 returns proper outcome2897 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false2898 For project and external users2899 returns proper outcome2900 Without a given project and external users2901 returns proper outcome2902 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false2903 For project and external users2904 returns proper outcome2905 Without a given project and external users2906 returns proper outcome2907 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false2908 For project and non_member users2909 returns proper outcome2910 Without a given project and non_member users2911 returns proper outcome2912 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2913 For project and non_member users2914 returns proper outcome2915 Without a given project and non_member users2916 returns proper outcome2917 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false2918 For project and non_member users2919 returns proper outcome2920 Without a given project and non_member users2921 returns proper outcome2922 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false2923 For project and member users2924 returns proper outcome2925 Without a given project and member users2926 returns proper outcome2927 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false2928 For project and member users2929 returns proper outcome2930 Without a given project and member users2931 returns proper outcome2932 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false2933 For project and member users2934 returns proper outcome2935 Without a given project and member users2936 returns proper outcome2937 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false2938 For project and author users2939 returns proper outcome2940 Without a given project and author users2941 returns proper outcome2942 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false2943 For project and author users2944 returns proper outcome2945 Without a given project and author users2946 returns proper outcome2947 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false2948 For project and author users2949 returns proper outcome2950 Without a given project and author users2951 returns proper outcome2952 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2953 For project and unauthenticated users2954 returns proper outcome2955 Without a given project and unauthenticated users2956 returns proper outcome2957 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2958 For project and unauthenticated users2959 returns proper outcome2960 Without a given project and unauthenticated users2961 returns proper outcome2962 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2963 For project and unauthenticated users2964 returns proper outcome2965 Without a given project and unauthenticated users2966 returns proper outcome2967 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: true2968 For project and external users2969 returns proper outcome2970 Without a given project and external users2971 returns proper outcome2972 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: true2973 For project and external users2974 returns proper outcome2975 Without a given project and external users2976 returns proper outcome2977 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: true2978 For project and external users2979 returns proper outcome2980 Without a given project and external users2981 returns proper outcome2982 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: false2983 For project and non_member users2984 returns proper outcome2985 Without a given project and non_member users2986 returns proper outcome2987 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2988 For project and non_member users2989 returns proper outcome2990 Without a given project and non_member users2991 returns proper outcome2992 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false2993 For project and non_member users2994 returns proper outcome2995 Without a given project and non_member users2996 returns proper outcome2997 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true2998 For project and member users2999 returns proper outcome3000 Without a given project and member users3001 returns proper outcome3002 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true3003 For project and member users3004 returns proper outcome3005 Without a given project and member users3006 returns proper outcome3007 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true3008 For project and member users3009 returns proper outcome3010 Without a given project and member users3011 returns proper outcome3012 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true3013 For project and author users3014 returns proper outcome3015 Without a given project and author users3016 returns proper outcome3017 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true3018 For project and author users3019 returns proper outcome3020 Without a given project and author users3021 returns proper outcome3022 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true3023 For project and author users3024 returns proper outcome3025 Without a given project and author users3026 returns proper outcome3027 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false3028 For project and unauthenticated users3029 returns proper outcome3030 Without a given project and unauthenticated users3031 returns proper outcome3032 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false3033 For project and unauthenticated users3034 returns proper outcome3035 Without a given project and unauthenticated users3036 returns proper outcome3037 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false3038 For project and unauthenticated users3039 returns proper outcome3040 Without a given project and unauthenticated users3041 returns proper outcome3042 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: true3043 For project and external users3044 returns proper outcome3045 Without a given project and external users3046 returns proper outcome3047 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: true3048 For project and external users3049 returns proper outcome3050 Without a given project and external users3051 returns proper outcome3052 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: true3053 For project and external users3054 returns proper outcome3055 Without a given project and external users3056 returns proper outcome3057 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false3058 For project and non_member users3059 returns proper outcome3060 Without a given project and non_member users3061 returns proper outcome3062 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false3063 For project and non_member users3064 returns proper outcome3065 Without a given project and non_member users3066 returns proper outcome3067 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false3068 For project and non_member users3069 returns proper outcome3070 Without a given project and non_member users3071 returns proper outcome3072 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true3073 For project and member users3074 returns proper outcome3075 Without a given project and member users3076 returns proper outcome3077 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true3078 For project and member users3079 returns proper outcome3080 Without a given project and member users3081 returns proper outcome3082 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true3083 For project and member users3084 returns proper outcome3085 Without a given project and member users3086 returns proper outcome3087 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true3088 For project and author users3089 returns proper outcome3090 Without a given project and author users3091 returns proper outcome3092 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true3093 For project and author users3094 returns proper outcome3095 Without a given project and author users3096 returns proper outcome3097 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true3098 For project and author users3099 returns proper outcome3100 Without a given project and author users3101 returns proper outcome3102 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false3103 For project and unauthenticated users3104 returns proper outcome3105 Without a given project and unauthenticated users3106 returns proper outcome3107 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false3108 For project and unauthenticated users3109 returns proper outcome3110 Without a given project and unauthenticated users3111 returns proper outcome3112 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false3113 For project and unauthenticated users3114 returns proper outcome3115 Without a given project and unauthenticated users3116 returns proper outcome3117 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false3118 For project and external users3119 returns proper outcome3120 Without a given project and external users3121 returns proper outcome3122 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false3123 For project and external users3124 returns proper outcome3125 Without a given project and external users3126 returns proper outcome3127 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false3128 For project and external users3129 returns proper outcome3130 Without a given project and external users3131 returns proper outcome3132 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false3133 For project and non_member users3134 returns proper outcome3135 Without a given project and non_member users3136 returns proper outcome3137 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false3138 For project and non_member users3139 returns proper outcome3140 Without a given project and non_member users3141 returns proper outcome3142 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false3143 For project and non_member users3144 returns proper outcome3145 Without a given project and non_member users3146 returns proper outcome3147 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false3148 For project and member users3149 returns proper outcome3150 Without a given project and member users3151 returns proper outcome3152 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false3153 For project and member users3154 returns proper outcome3155 Without a given project and member users3156 returns proper outcome3157 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false3158 For project and member users3159 returns proper outcome3160 Without a given project and member users3161 returns proper outcome3162 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false3163 For project and author users3164 returns proper outcome3165 Without a given project and author users3166 returns proper outcome3167 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false3168 For project and author users3169 returns proper outcome3170 Without a given project and author users3171 returns proper outcome3172 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false3173 For project and author users3174 returns proper outcome3175 Without a given project and author users3176 returns proper outcome3177 For personal snippets3178 snippet_visibility: :public, user_type: :unauthenticated, outcome: true3179 For personal and public snippets with unauthenticated user3180 returns proper outcome3181 snippet_visibility: :public, user_type: :external, outcome: true3182 For personal and public snippets with external user3183 returns proper outcome3184 snippet_visibility: :public, user_type: :non_member, outcome: true3185 For personal and public snippets with non_member user3186 returns proper outcome3187 snippet_visibility: :public, user_type: :author, outcome: true3188 For personal and public snippets with author user3189 returns proper outcome3190 snippet_visibility: :internal, user_type: :unauthenticated, outcome: false3191 For personal and internal snippets with unauthenticated user3192 returns proper outcome3193 snippet_visibility: :internal, user_type: :external, outcome: false3194 For personal and internal snippets with external user3195 returns proper outcome3196 snippet_visibility: :internal, user_type: :non_member, outcome: true3197 For personal and internal snippets with non_member user3198 returns proper outcome3199 snippet_visibility: :internal, user_type: :author, outcome: true3200 For personal and internal snippets with author user3201 returns proper outcome3202 snippet_visibility: :private, user_type: :unauthenticated, outcome: false3203 For personal and private snippets with unauthenticated user3204 returns proper outcome3205 snippet_visibility: :private, user_type: :external, outcome: false3206 For personal and private snippets with external user3207 returns proper outcome3208 snippet_visibility: :private, user_type: :non_member, outcome: false3209 For personal and private snippets with non_member user3210 returns proper outcome3211 snippet_visibility: :private, user_type: :author, outcome: true3212 For personal and private snippets with author user3213 returns proper outcome3214 when the user cannot read cross project3215 returns only personal snippets3216 external authorization3217 includes the result if the external service allows access3218 does not include any results if the external service denies access3219 behaves like a finder with external authorization service3220 finds the subject3221 with an external authorization service3222 does not include the subject when no project was given3223 includes the subject when a project id was given3224layouts/nav/sidebar/_project3225 behaves like has nav sidebar3226 has collapsed nav sidebar on mobile3227 Project context3228 has a link to the project path3229 Project information3230 has a link to the project activity path3231 Activity3232 has a link to the project activity path3233 Labels3234 has a link to the labels path3235 Members3236 has a link to the members page3237 Learn GitLab3238 has a link to the learn GitLab3239 Repository3240 has a link to the project tree path3241 Files3242 has a link to the project tree path3243 Commits3244 has a link to the project commits path3245 Branches3246 has a link to the project branches path3247 Tags3248 has a link to the project tags path3249 Contributors3250 has a link to the project contributors path3251 Graph3252 has a link to the project graph path3253 Compare3254 has a link to the project compare path3255 Issues3256 has a link to the issue list path3257 shows pill with the number of open issues3258 Issue List3259 has a link to the issue list path3260 Issue Boards3261 has a link to the issue boards path3262 Service Desk3263 has a link to the service desk path3264 Milestones3265 has a link to the milestones path3266 External Issue Tracker3267 with custom external issue tracker3268 when external issue tracker is configured and active3269 has a link to the external issue tracker3270 when external issue tracker is not configured and active3271 does not have a link to the external issue tracker3272 with Jira issue tracker3273 has a link to the Jira issue tracker3274 Merge Requests3275 has a link to the merge request list path3276 shows pill with the number of merge requests3277 CI/CD3278 has a link to pipelines page3279 Artifacts3280 has a link to the artifacts page3281 Jobs3282 has a link to the jobs page3283 Pipeline Schedules3284 has a link to the pipeline schedules page3285 Pipelines3286 has a link to the pipelines page3287 Pipeline Editor3288 with a current_ref3289 has a link to the pipeline editor3290 with the default_branch3291 has a link to the pipeline editor3292 when user cannot access pipeline editor3293 does not has a link to the pipeline editor3294 Security and Compliance3295 when user does not have permissions3296 top level navigation link is not visible3297 when user has permissions3298 top level navigation link is visible3299 security configuration link is visible3300 Deployments3301 Feature Flags3302 has a link to the feature flags page3303 when the user does not have access3304 does not have a link to the feature flags page3305 Environments3306 has a link to the environments page3307 when the user does not have access3308 does not have a link to the environments page3309 Releases3310 has a link to the project releases path3311 Monitor3312 top level navigation link is visible for user with permissions3313 Metrics Dashboard3314 has a link to the metrics dashboard page3315 when the user does not have access3316 does not have a link to the metrics page3317 Error Tracking3318 has a link to the error tracking page3319 when the user does not have access3320 does not have a link to the error tracking page3321 Alert Management3322 has a link to the alert management page3323 when the user does not have access3324 does not have a link to the alert management page3325 Incidents3326 has a link to the incidents page3327 when the user does not have access3328 does not have a link to the incidents page3329 Product Analytics3330 has a link to the product analytics page3331 when feature flag :product_analytics is disabled3332 does not have a link to the feature flags page3333 Infrastructure3334 Terraform3335 has a link to the terraform page3336 when the user does not have access3337 does not have a link to the terraform page3338 Kubernetes clusters3339 has a link to the kubernetes page3340 when the user does not have access3341 does not have a link to the kubernetes page3342 Google Cloud3343 has a link to the google cloud page3344 when the user does not have access3345 does not have a link to the google cloud page3346 Packages and Registries3347 top level navigation link is visible and points to package registry page3348 Packages Registry3349 shows link to package registry page3350 when packages config setting is not enabled3351 does not show link to package registry page3352 Container Registry3353 shows link to container registry page3354 when container config setting is not enabled3355 does not show link to package registry page3356 Infrastructure Registry3357 shows link to infrastructure registry page3358 when package registry config is disabled3359 does not show link to package registry page3360 Analytics3361 top level navigation link is visible points to the value stream page3362 CI/CD3363 has a link to the CI/CD analytics page3364 when user does not have access3365 does not have a link to the CI/CD analytics page3366 Repository3367 has a link to the repository analytics page3368 when user does not have access3369 does not have a link to the repository analytics page3370 Value stream3371 has a link to the value stream page3372 when user does not have access3373 does not have a link to the value stream page3374 Confluence3375 when the Confluence integration is active3376 shows the Confluence link3377 does not show the GitLab wiki link3378 when it is disabled3379 does not show the Confluence link3380 shows the GitLab wiki link3381 Wiki3382 when wiki is enabled3383 shows the wiki tab with the wiki internal link3384 when wiki is disabled3385 does not show the wiki link3386 External Wiki3387 when it is active3388 shows the external wiki tab with the external wiki service link3389 when it is disabled3390 does not show the external wiki link3391 Snippets3392 when user can access snippets3393 shows Snippets link3394 when user cannot access snippets3395 does not show Snippets link3396 Settings3397 General3398 has a link to the General settings3399 Integrations3400 has a link to the Integrations settings3401 WebHooks3402 has a link to the WebHooks settings3403 Access Tokens3404 self-managed instance3405 has a link to the Access Tokens settings3406 gitlab.com3407 has a link to the Access Tokens settings3408 Repository3409 has a link to the Repository settings3410 CI/CD3411 when project is archived3412 does not have a link to the CI/CD settings3413 when project is not archived3414 has a link to the CI/CD settings3415 Monitor3416 when project is archived3417 does not have a link to the Monitor settings3418 when project is not archived active3419 has a link to the Monitor settings3420 Pages3421 when pages are enabled3422 has a link to the Pages settings3423 when pages are not enabled3424 does not have a link to the Pages settings3425 Packages & Registries3426 when registry is enabled3427 has a link to the Packages & Registries settings3428 when registry is not enabled3429 does not have a link to the Packages & Registries settings3430 Usage Quotas3431 has a link to Usage Quotas3432 Hidden menus3433 has a link to the Activity page3434 has a link to the Graph page3435 has a link to the New Issue page3436 has a link to the Jobs page3437 has a link to the Commits page3438 has a link to the Issue Boards page3439 behaves like sidebar includes snowplow attributes3440 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"3441 Collapsed menu items3442 does not render the collapsed top menu as a link3443Integrations::Mattermost3444 behaves like Integrations::SlackMattermostNotifier3445 Associations3446 is expected to belong to project required: false3447 is expected to have one service_hook3448 Validations3449 when integration is active3450 is expected to validate that :webhook cannot be empty/falsy3451 behaves like issue tracker integration URL attribute3452 is expected to allow :webhook to be ‹"https://example.com"›3453 is expected not to allow :webhook to be ‹"example.com"›3454 is expected not to allow :webhook to be ‹"ftp://example.com"›3455 is expected not to allow :webhook to be ‹"herp-and-derp"›3456 when integration is inactive3457 is expected not to validate that :webhook cannot be empty/falsy3458 #execute3459 with username for slack configured3460 uses the username as an option3461 push events3462 behaves like calls the integration API with the event message3463 is expected to request POST https://8.8.8.9/ 1 time3464 with event channel3465 uses the right channel for push event3466 tag_push events3467 behaves like calls the integration API with the event message3468 is expected to request POST https://8.8.8.9/ 1 time3469 issue events3470 behaves like calls the integration API with the event message3471 is expected to request POST https://8.8.8.9/ 1 time3472 whith event channel3473 uses the right channel for issue event3474 for confidential issues3475 falls back to issue channel3476 and confidential_issue_channel is defined3477 uses the confidential issue channel when it is defined3478 merge request events3479 behaves like calls the integration API with the event message3480 is expected to request POST https://8.8.8.9/ 1 time3481 with event channel3482 uses the right channel for merge request event3483 wiki page events3484 behaves like calls the integration API with the event message3485 is expected to request POST https://8.8.8.9/ 1 time3486 with event channel3487 uses the right channel for wiki event3488 deployment events3489 behaves like calls the integration API with the event message3490 is expected to request POST https://8.8.8.9/ 1 time3491 note event3492 behaves like calls the integration API with the event message3493 is expected to request POST https://8.8.8.9/ 1 time3494 with event channel3495 uses the right channel3496 for confidential notes3497 falls back to note channel3498 and confidential_note_channel is defined3499 uses confidential channel3500 Push events3501 on default branch3502 pushing tags3503 behaves like triggered Mattermost integration3504 notifies about push events3505 when the response is not successful3506 logs an error3507 notification enabled only for default branch3508 behaves like triggered Mattermost integration3509 notifies about push events3510 when the response is not successful3511 logs an error3512 notification enabled only for protected branches3513 behaves like untriggered Mattermost integration3514 does not notify about push events3515 notification enabled only for default and protected branches3516 behaves like triggered Mattermost integration3517 notifies about push events3518 when the response is not successful3519 logs an error3520 notification enabled for all branches3521 behaves like triggered Mattermost integration3522 notifies about push events3523 when the response is not successful3524 logs an error3525 on a protected branch3526 pushing tags3527 behaves like triggered Mattermost integration3528 notifies about push events3529 when the response is not successful3530 logs an error3531 notification enabled only for default branch3532 behaves like untriggered Mattermost integration3533 does not notify about push events3534 notification enabled only for protected branches3535 behaves like triggered Mattermost integration3536 notifies about push events3537 when the response is not successful3538 logs an error3539 notification enabled only for default and protected branches3540 behaves like triggered Mattermost integration3541 notifies about push events3542 when the response is not successful3543 logs an error3544 notification enabled for all branches3545 behaves like triggered Mattermost integration3546 notifies about push events3547 when the response is not successful3548 logs an error3549 on a protected branch with protected branches defined using wildcards3550 pushing tags3551 behaves like triggered Mattermost integration3552 notifies about push events3553 when the response is not successful3554 logs an error3555 notification enabled only for default branch3556 behaves like untriggered Mattermost integration3557 does not notify about push events3558 notification enabled only for protected branches3559 behaves like triggered Mattermost integration3560 notifies about push events3561 when the response is not successful3562 logs an error3563 notification enabled only for default and protected branches3564 behaves like triggered Mattermost integration3565 notifies about push events3566 when the response is not successful3567 logs an error3568 notification enabled for all branches3569 behaves like triggered Mattermost integration3570 notifies about push events3571 when the response is not successful3572 logs an error3573 on a neither protected nor default branch3574 pushing tags3575 behaves like triggered Mattermost integration3576 notifies about push events3577 when the response is not successful3578 logs an error3579 notification enabled only for default branch3580 behaves like untriggered Mattermost integration3581 does not notify about push events3582 notification enabled only for protected branches3583 behaves like untriggered Mattermost integration3584 does not notify about push events3585 notification enabled only for default and protected branches3586 behaves like untriggered Mattermost integration3587 does not notify about push events3588 notification enabled for all branches3589 behaves like triggered Mattermost integration3590 notifies about push events3591 when the response is not successful3592 logs an error3593 Note events3594 when commit comment event executed3595 behaves like triggered Mattermost integration3596 notifies about commit comment events3597 when the response is not successful3598 logs an error3599 when merge request comment event executed3600 behaves like triggered Mattermost integration3601 notifies about merge request comment events3602 when the response is not successful3603 logs an error3604 when issue comment event executed3605 behaves like triggered Mattermost integration3606 notifies about issue comment events3607 when the response is not successful3608 logs an error3609 when snippet comment event executed3610 behaves like triggered Mattermost integration3611 notifies about snippet comment events3612 when the response is not successful3613 logs an error3614 Pipeline events3615 with succeeded pipeline3616 with default to notify_only_broken_pipelines3617 behaves like untriggered Mattermost integration3618 does not notify about pipeline events3619 with setting notify_only_broken_pipelines to false3620 behaves like triggered Mattermost integration3621 notifies about pipeline events3622 when the response is not successful3623 logs an error3624 with failed pipeline3625 on default branch3626 notification enabled only for default branch3627 behaves like triggered Mattermost integration3628 notifies about pipeline events3629 when the response is not successful3630 logs an error3631 notification enabled only for protected branches3632 behaves like untriggered Mattermost integration3633 does not notify about pipeline events3634 notification enabled only for default and protected branches3635 behaves like triggered Mattermost integration3636 notifies about pipeline events3637 when the response is not successful3638 logs an error3639 notification enabled for all branches3640 behaves like triggered Mattermost integration3641 notifies about pipeline events3642 when the response is not successful3643 logs an error3644 on a protected branch3645 notification enabled only for default branch3646 behaves like untriggered Mattermost integration3647 does not notify about pipeline events3648 notification enabled only for protected branches3649 behaves like triggered Mattermost integration3650 notifies about pipeline events3651 when the response is not successful3652 logs an error3653 notification enabled only for default and protected branches3654 behaves like triggered Mattermost integration3655 notifies about pipeline events3656 when the response is not successful3657 logs an error3658 notification enabled for all branches3659 behaves like triggered Mattermost integration3660 notifies about pipeline events3661 when the response is not successful3662 logs an error3663 on a protected branch with protected branches defined usin wildcards3664 notification enabled only for default branch3665 behaves like untriggered Mattermost integration3666 does not notify about pipeline events3667 notification enabled only for protected branches3668 behaves like triggered Mattermost integration3669 notifies about pipeline events3670 when the response is not successful3671 logs an error3672 notification enabled only for default and protected branches3673 behaves like triggered Mattermost integration3674 notifies about pipeline events3675 when the response is not successful3676 logs an error3677 notification enabled for all branches3678 behaves like triggered Mattermost integration3679 notifies about pipeline events3680 when the response is not successful3681 logs an error3682 on a neither protected nor default branch3683 notification enabled only for default branch3684 behaves like untriggered Mattermost integration3685 does not notify about pipeline events3686 notification enabled only for protected branches3687 behaves like untriggered Mattermost integration3688 does not notify about pipeline events3689 notification enabled only for default and protected branches3690 behaves like untriggered Mattermost integration3691 does not notify about pipeline events3692 notification enabled for all branches3693 behaves like triggered Mattermost integration3694 notifies about pipeline events3695 when the response is not successful3696 logs an error3697 Deployment events3698 behaves like triggered Mattermost integration3699 notifies about deployment events3700 when the response is not successful3701 logs an error3702 on a protected branch3703 notification enabled only for default branch3704 behaves like untriggered Mattermost integration3705 does not notify about pipeline events3706 notification enabled only for protected branches3707 behaves like triggered Mattermost integration3708 notifies about pipeline events3709 when the response is not successful3710 logs an error3711 notification enabled only for default and protected branches3712 behaves like triggered Mattermost integration3713 notifies about pipeline events3714 when the response is not successful3715 logs an error3716 notification enabled for all branches3717 behaves like triggered Mattermost integration3718 notifies about pipeline events3719 when the response is not successful3720 logs an error3721Gitlab::Database::MigrationHelpers3722 overridden dynamic model helpers3723 #define_batchable_model3724 defines a batchable model with the migration connection3725 #each_batch3726 calls each_batch with the migration connection3727 #each_batch_range3728 calls each_batch with the migration connection3729 #remove_timestamps3730 can remove the default timestamps3731 can remove custom timestamps3732 #add_timestamps_with_timezone3733 adds "created_at" and "updated_at" fields with the "datetime_with_timezone" data type3734 can disable the NOT NULL constraint3735 can add just one column3736 can add choice of acceptable columns3737 cannot add unacceptable column names3738 #create_table_with_constraints3739 when no check constraints are defined3740 creates the table as expected3741 when check constraints are defined3742 runs the change within a with_lock_retries3743 when the text_limit is explicity named3744 creates the table as expected3745 when the text_limit is not named3746 creates the table as expected, naming the text limit3747 when with_lock_retries re-runs the block3748 only creates constraint for unique definitions3749 when constraints are given invalid names3750 when the explicit text limit name is not valid3751 raises an error3752 when a check constraint name is not valid3753 raises an error3754 #add_concurrent_index3755 outside a transaction3756 creates the index concurrently3757 creates unique index concurrently3758 unprepares the async index creation3759 when the index exists and is valid3760 does leaves the existing index3761 when an invalid copy of the index exists3762 when the default name is used3763 drops and recreates the index3764 when a custom name is used3765 drops and recreates the index3766 when a qualified table name is used3767 drops and recreates the index3768 inside a transaction3769 raises RuntimeError3770 #remove_concurrent_index3771 outside a transaction3772 by column name3773 removes the index concurrently3774 does nothing if the index does not exist3775 unprepares the async index creation3776 by index name3777 removes the index concurrently by index name3778 does nothing if the index does not exist3779 removes the index with keyword arguments3780 raises an error if the index is blank3781 unprepares the async index creation3782 inside a transaction3783 raises RuntimeError3784 #remove_foreign_key_if_exists3785 when the foreign key does not exist3786 does nothing3787 when the foreign key exists3788 removes the foreign key3789 when the target table is not given3790 passes the options as the second parameter3791 when the reverse_lock_order option is given3792 requests for lock before removing the foreign key3793 when not inside a transaction3794 does not lock3795 #add_concurrent_foreign_key3796 inside a transaction3797 raises an error3798 outside a transaction3799 target column3800 defaults to (id) when no custom target column is provided3801 references the custom taget column when provided3802 ON DELETE statements3803 on_delete: :nullify3804 appends ON DELETE SET NULL statement3805 on_delete: :cascade3806 appends ON DELETE CASCADE statement3807 on_delete: nil3808 appends no ON DELETE statement3809 when no custom key name is supplied3810 creates a concurrent foreign key and validates it3811 does not create a foreign key if it exists already3812 when a custom key name is supplied3813 for creating a new foreign key for a column that does not presently exist3814 creates a new foreign key3815 for creating a duplicate foreign key for a column that presently exists3816 when the supplied key name is the same as the existing foreign key name3817 does not create a new foreign key3818 when the supplied key name is different from the existing foreign key name3819 creates a new foreign key3820 validate option3821 when validate is supplied with a falsey value3822 behaves like skips validation3823 skips validation3824 behaves like skips validation3825 skips validation3826 when validate is supplied with a truthy value3827 behaves like performs validation3828 performs validation3829 behaves like performs validation3830 performs validation3831 when validate is not supplied3832 behaves like performs validation3833 performs validation3834 when the reverse_lock_order flag is set3835 explicitly locks the tables in target-source order3836 #validate_foreign_key3837 when name is provided3838 does not infer the foreign key constraint name3839 when name is not provided3840 infers the foreign key constraint name3841 when the inferred foreign key constraint does not exist3842 raises an error3843 #concurrent_foreign_key_name3844 returns the name for a foreign key3845 #foreign_key_exists?3846 compares by target table if no column given3847 without specifying a target table3848 behaves like foreign key checks3849 finds existing foreign keys by column3850 finds existing foreign keys by name3851 finds existing foreign_keys by name and column3852 finds existing foreign_keys by name, column and on_delete3853 finds existing foreign keys by target table only3854 compares by column name if given3855 compares by target column name if given3856 compares by foreign key name if given3857 compares by foreign key name and column if given3858 compares by foreign key name, column and on_delete if given3859 specifying a target table3860 behaves like foreign key checks3861 finds existing foreign keys by column3862 finds existing foreign keys by name3863 finds existing foreign_keys by name and column3864 finds existing foreign_keys by name, column and on_delete3865 finds existing foreign keys by target table only3866 compares by column name if given3867 compares by target column name if given3868 compares by foreign key name if given3869 compares by foreign key name and column if given3870 compares by foreign key name, column and on_delete if given3871 #disable_statement_timeout3872 disables statement timeouts to current transaction only3873 with real environment3874 defines statement to 0 only for current transaction3875 when passing a blocks3876 disables statement timeouts on session level and executes the block3877 with real environment3878 defines statement to 0 for any code run inside the block3879 when the statement_timeout is already disabled3880 yields control without disabling the timeout or resetting3881 #true_value3882 returns the appropriate value3883 #false_value3884 returns the appropriate value3885 #update_column_in_batches3886 when running outside of a transaction3887 updates all the rows in a table3888 updates boolean values correctly3889 when a block is supplied3890 yields an Arel table and query object to the supplied block3891 when the value is Arel.sql (Arel::Nodes::SqlLiteral)3892 updates the value as a SQL expression3893 when running inside the transaction3894 raises RuntimeError3895 #add_column_with_default3896 delegates to #add_column3897 #rename_column_concurrently3898 in a transaction3899 raises RuntimeError3900 outside a transaction3901 when the column to rename exists3902 renames a column concurrently3903 passes the batch_column_name3904 passes the type_cast_function3905 raises an error with invalid batch_column_name3906 with existing records and type casting3907 copies the value to the new column using the type_cast_function3908 when default is false3909 copies the default to the new column3910 when the column to be renamed does not exist3911 raises an error with appropriate message3912 #undo_rename_column_concurrently3913 reverses the operations of rename_column_concurrently3914 #cleanup_concurrent_column_rename3915 cleans up the renaming procedure3916 #undo_cleanup_concurrent_column_rename3917 in a transaction3918 raises RuntimeError3919 outside a transaction3920 reverses the operations of cleanup_concurrent_column_rename3921 passes the batch_column_name3922 raises an error with invalid batch_column_name3923 when default is false3924 copies the default to the old column3925 #change_column_type_concurrently3926 changes the column type3927 passed the batch column name3928 with type cast3929 changes the column type with casting the value to the new type3930 #undo_change_column_type_concurrently3931 reverses the operations of change_column_type_concurrently3932 #cleanup_concurrent_column_type_change3933 cleans up the type changing procedure3934 #undo_cleanup_concurrent_column_type_change3935 in a transaction3936 raises RuntimeError3937 outside a transaction3938 reverses the operations of cleanup_concurrent_column_type_change3939 passes the type_cast_function, batch_column_name and limit3940 raises an error with invalid batch_column_name3941 #install_rename_triggers3942 installs the triggers3943 #remove_rename_triggers3944 removes the function and trigger3945 #rename_trigger_name3946 returns a String3947 #indexes_for3948 returns the indexes for a column3949 #foreign_keys_for3950 returns the foreign keys for a column3951 #copy_indexes3952 using a regular index using a single column3953 copies the index3954 using a regular index with multiple columns3955 copies the index3956 using an index with a WHERE clause3957 copies the index3958 using an index with a USING clause3959 copies the index3960 using an index with custom operator classes3961 copies the index3962 using an index with multiple columns and custom operator classes3963 copies the index3964 using an index with multiple columns and a custom operator class on the non affected column3965 copies the index3966 using an index of which the name does not contain the source column3967 raises RuntimeError3968 #copy_foreign_keys3969 copies foreign keys from one column to another3970 #column_for3971 returns a column object for an existing column3972 raises an error when a column does not exist3973 #replace_sql3974 builds the sql with correct functions3975 results3976 replaces the correct part of the string3977 sidekiq migration helpers3978 #sidekiq_queue_length3979 when queue is empty3980 returns zero3981 when queue contains jobs3982 returns correct size of the queue3983 #migrate_sidekiq_queue3984 migrates jobs from one sidekiq queue to another3985 #check_trigger_permissions!3986 does nothing when the user has the correct permissions3987 raises RuntimeError when the user does not have the correct permissions3988 #convert_to_bigint_column3989 returns the name of the temporary column used to convert to bigint3990 #initialize_conversion_of_integer_to_bigint3991 when the target table does not exist3992 raises an error3993 when the primary key does not exist3994 raises an error3995 when the column to migrate does not exist3996 raises an error3997 when the column to convert is the primary key3998 creates a not-null bigint column and installs triggers3999 when the column to convert is not the primary key, but non-nullable4000 creates a not-null bigint column and installs triggers4001 when the column to convert is not the primary key, but nullable4002 creates a nullable bigint column and installs triggers4003 when multiple columns are given4004 creates the correct columns and installs the trigger4005 #restore_conversion_of_integer_to_bigint4006 when the target table does not exist4007 raises an error4008 when the column to migrate does not exist4009 raises an error4010 when a single column is given4011 creates the correct columns and installs the trigger4012 when multiple columns are given4013 creates the correct columns and installs the trigger4014 #revert_initialize_conversion_of_integer_to_bigint4015 when single column is given4016 removes column, trigger, and function4017 when multiple columns are given4018 removes column, trigger, and function4019 #backfill_conversion_of_integer_to_bigint4020 when the target table does not exist4021 raises an error4022 when the primary key does not exist4023 raises an error4024 when the column to convert does not exist4025 raises an error4026 when the temporary column does not exist4027 raises an error4028 when the conversion is properly initialized4029 when a single column is being converted4030 creates the batched migration tracking record4031 when multiple columns are being converted4032 creates the batched migration tracking record4033 #revert_backfill_conversion_of_integer_to_bigint4034 when a single column is being converted4035 deletes the batched migration tracking record4036 when a multiple columns are being converted4037 deletes the batched migration tracking record4038 when primary key column has custom name4039 deletes the batched migration tracking record4040 #ensure_batched_background_migration_is_finished4041 raises an error when migration exists and is not marked as finished4042 does not raise error when migration exists and is marked as finished4043 logs a warning when migration does not exist4044 finalizes the migration4045 when the flag finalize is false4046 does not finalize the migration4047 #index_exists_by_name?4048 returns true if an index exists4049 returns false if the index does not exist4050 when an index with a function exists4051 returns true if an index exists4052 when an index exists for a table with the same name in another schema4053 returns false if the index does not exist in the current schema4054 #create_or_update_plan_limit4055 properly escapes names4056 when plan does not exist4057 does not create any plan limits4058 when plan does exist4059 when limit does not exist4060 inserts a new plan limits4061 when limit does exist4062 updates an existing plan limits4063 #with_lock_retries4064 sets the migration class name in the logs4065 does not raise on exhaustion by default4066 defaults to allowing subtransactions4067 raise_on_exhaustion: true4068 sets raise_on_exhaustion as requested4069 raise_on_exhaustion: false4070 sets raise_on_exhaustion as requested4071 #backfill_iids4072 generates iids properly for models created after the migration4073 generates iids properly for models created after the migration when iids are backfilled4074 generates iids properly for models created after the migration across multiple projects4075 when the first model is created for a project after the migration4076 generates an iid4077 when a row already has an iid set in the database4078 backfills iids4079 backfills for multiple projects4080 #check_constraint_name4081 returns a valid constraint name4082 #check_constraint_exists?4083 returns true if a constraint exists4084 returns false if a constraint does not exist4085 returns false if a constraint with the same name exists in another table4086 returns false if a constraint with the same name exists for the same table in another schema4087 #add_check_constraint4088 constraint name validation4089 raises an error when too long4090 does not raise error when the length is acceptable4091 inside a transaction4092 raises an error4093 outside a transaction4094 when the constraint is already defined in the database4095 does not create a constraint4096 when the constraint is not defined in the database4097 creates the constraint4098 when validate is not provided4099 performs validation4100 when validate is provided with a falsey value4101 skips validation4102 when validate is provided with a truthy value4103 performs validation4104 #validate_check_constraint4105 when the constraint does not exist4106 raises an error4107 when the constraint exists4108 performs validation4109 #remove_check_constraint4110 removes the constraint4111 #copy_check_constraints4112 inside a transaction4113 raises an error4114 outside a transaction4115 copies check constraints from one column to another4116 does nothing if there are no constraints defined for the old column4117 raises an error when the orginating column does not exist4118 raises an error when the target column does not exist4119 #add_text_limit4120 when it is called with the default options4121 calls add_check_constraint with an infered constraint name and validate: true4122 when all parameters are provided4123 calls add_check_constraint with the correct parameters4124 #validate_text_limit4125 when constraint_name is not provided4126 calls validate_check_constraint with an infered constraint name4127 when constraint_name is provided4128 calls validate_check_constraint with the correct parameters4129 #remove_text_limit4130 when constraint_name is not provided4131 calls remove_check_constraint with an infered constraint name4132 when constraint_name is provided4133 calls remove_check_constraint with the correct parameters4134 #check_text_limit_exists?4135 when constraint_name is not provided4136 calls check_constraint_exists? with an infered constraint name4137 when constraint_name is provided4138 calls check_constraint_exists? with the correct parameters4139 #add_not_null_constraint4140 when it is called with the default options4141 calls add_check_constraint with an infered constraint name and validate: true4142 when all parameters are provided4143 calls add_check_constraint with the correct parameters4144 when the column is defined as NOT NULL4145 does not add a check constraint4146 #validate_not_null_constraint4147 when constraint_name is not provided4148 calls validate_check_constraint with an infered constraint name4149 when constraint_name is provided4150 calls validate_check_constraint with the correct parameters4151 #remove_not_null_constraint4152 when constraint_name is not provided4153 calls remove_check_constraint with an infered constraint name4154 when constraint_name is provided4155 calls remove_check_constraint with the correct parameters4156 #check_not_null_constraint_exists?4157 when constraint_name is not provided4158 calls check_constraint_exists? with an infered constraint name4159 when constraint_name is provided4160 calls check_constraint_exists? with the correct parameters4161 #create_extension4162 executes CREATE EXTENSION statement4163 without proper permissions4164 raises an exception and prints an error message4165 #drop_extension4166 executes CREATE EXTENSION statement4167 without proper permissions4168 raises an exception and prints an error message4169 #rename_constraint4170 executes the statement to rename constraint4171 #drop_sequence4172 executes the statement to drop the sequence4173 #add_sequence4174 executes the statement to add the sequence4175EnvironmentPolicy4176 #rules4177 when project is public4178 with stop action4179 access_level: nil, allowed?: false4180 is expected to equal false4181 access_level: :guest, allowed?: false4182 is expected to equal false4183 access_level: :reporter, allowed?: false4184 is expected to equal false4185 access_level: :developer, allowed?: true4186 is expected to equal true4187 access_level: :maintainer, allowed?: true4188 is expected to equal true4189 when an admin user4190 when admin mode is enabled4191 is expected to be allowed :stop_environment4192 when admin mode is disabled4193 is expected to be disallowed :stop_environment4194 with protected branch4195 when an admin user4196 when admin mode is enabled4197 is expected to be allowed :stop_environment4198 when admin mode is disabled4199 is expected to be disallowed :stop_environment4200 without stop action4201 access_level: nil, allowed?: false4202 is expected to equal false4203 access_level: :guest, allowed?: false4204 is expected to equal false4205 access_level: :reporter, allowed?: false4206 is expected to equal false4207 access_level: :developer, allowed?: true4208 is expected to equal true4209 access_level: :maintainer, allowed?: true4210 is expected to equal true4211 when an admin user4212 when admin mode is enabled4213 is expected to be allowed :stop_environment4214 when admin mode is disabled4215 is expected to be disallowed :stop_environment4216 #destroy_environment4217 access_level: nil, allowed?: false4218 is expected to be disallowed :destroy_environment4219 when environment is stopped4220 is expected to equal false4221 access_level: :guest, allowed?: false4222 is expected to be disallowed :destroy_environment4223 when environment is stopped4224 is expected to equal false4225 access_level: :reporter, allowed?: false4226 is expected to be disallowed :destroy_environment4227 when environment is stopped4228 is expected to equal false4229 access_level: :developer, allowed?: true4230 is expected to be disallowed :destroy_environment4231 when environment is stopped4232 is expected to equal true4233 access_level: :maintainer, allowed?: true4234 is expected to be disallowed :destroy_environment4235 when environment is stopped4236 is expected to equal true4237 when an admin user4238 is expected to be disallowed :destroy_environment4239 when environment is stopped4240 when admin mode is enabled4241 is expected to be allowed :destroy_environment4242 when admin mode is disabled4243 is expected to be disallowed :destroy_environment4244 when project is private4245 with stop action4246 access_level: nil, allowed?: false4247 is expected to equal false4248 access_level: :guest, allowed?: false4249 is expected to equal false4250 access_level: :reporter, allowed?: false4251 is expected to equal false4252 access_level: :developer, allowed?: true4253 is expected to equal true4254 access_level: :maintainer, allowed?: true4255 is expected to equal true4256 when an admin user4257 when admin mode is enabled4258 is expected to be allowed :stop_environment4259 when admin mode is disabled4260 is expected to be disallowed :stop_environment4261 with protected branch4262 when an admin user4263 when admin mode is enabled4264 is expected to be allowed :stop_environment4265 when admin mode is disabled4266 is expected to be disallowed :stop_environment4267 without stop action4268 access_level: nil, allowed?: false4269 is expected to equal false4270 access_level: :guest, allowed?: false4271 is expected to equal false4272 access_level: :reporter, allowed?: false4273 is expected to equal false4274 access_level: :developer, allowed?: true4275 is expected to equal true4276 access_level: :maintainer, allowed?: true4277 is expected to equal true4278 when an admin user4279 when admin mode is enabled4280 is expected to be allowed :stop_environment4281 when admin mode is disabled4282 is expected to be disallowed :stop_environment4283 #destroy_environment4284 access_level: nil, allowed?: false4285 is expected to be disallowed :destroy_environment4286 when environment is stopped4287 is expected to equal false4288 access_level: :guest, allowed?: false4289 is expected to be disallowed :destroy_environment4290 when environment is stopped4291 is expected to equal false4292 access_level: :reporter, allowed?: false4293 is expected to be disallowed :destroy_environment4294 when environment is stopped4295 is expected to equal false4296 access_level: :developer, allowed?: true4297 is expected to be disallowed :destroy_environment4298 when environment is stopped4299 is expected to equal true4300 access_level: :maintainer, allowed?: true4301 is expected to be disallowed :destroy_environment4302 when environment is stopped4303 is expected to equal true4304 when an admin user4305 is expected to be disallowed :destroy_environment4306 when environment is stopped4307 when admin mode is enabled4308 is expected to be allowed :destroy_environment4309 when admin mode is disabled4310 is expected to be disallowed :destroy_environment4311Gitlab::Graphql::Pagination::Keyset::Connection4312 the relation has been preloaded4313 is loaded4314 does not error when accessing pagination information4315 can generate cursors4316 can read the next page4317 behaves like a connection with collection methods4318 responds to to_a4319 responds to size4320 responds to map4321 responds to include?4322 responds to empty?4323 behaves like a redactable connection4324 no redactor set4325 contains the unwanted item4326 does not redact more than once4327 redactor is set4328 does not contain the unwanted item4329 does not redact more than once4330 #cursor_for4331 returns an encoded ID4332 when SimpleOrderBuilder cannot build keyset paginated query4333 increments the `old_keyset_pagination_usage` counter4334 when an order is specified4335 returns the encoded value of the order4336 includes the :id even when not specified in the order4337 when multiple orders are specified4338 returns the encoded value of the order4339 when multiple orders with SQL are specified4340 returns the encoded value of the order4341 #sliced_nodes4342 when before is passed4343 only returns the project before the selected one4344 when the sort order is descending4345 returns the correct nodes4346 when after is passed4347 only returns the project before the selected one4348 when the sort order is descending4349 returns the correct nodes4350 when both before and after are passed4351 returns the expected set4352 when ordering uses LOWER4353 when ascending4354 behaves like nodes are in ascending order4355 when no cursor is passed4356 returns projects in ascending order4357 when before cursor value is not NULL4358 returns all projects before the cursor4359 when after cursor value is not NULL4360 returns all projects after the cursor4361 when before and after cursor4362 returns all projects after the cursor4363 when descending4364 behaves like nodes are in descending order4365 when no cursor is passed4366 only returns projects in descending order4367 when before cursor value is not NULL4368 returns all projects before the cursor4369 when after cursor value is not NULL4370 returns all projects after the cursor4371 when before and after cursor4372 returns all projects after the cursor4373 NULLS order4374 when ascending NULLS LAST (ties broken by id DESC implicitly)4375 nodes: lazy { Issue.order(Issue.arel_table[:relative_position].asc.nulls_last) }4376 behaves like nodes are in ascending order4377 when no cursor is passed4378 returns projects in ascending order4379 when before cursor value is not NULL4380 returns all projects before the cursor4381 when after cursor value is not NULL4382 returns all projects after the cursor4383 when before and after cursor4384 returns all projects after the cursor4385 when descending NULLS LAST (ties broken by id DESC implicitly)4386 nodes: lazy { Issue.order(Issue.arel_table[:relative_position].desc.nulls_last) }4387 behaves like nodes are in descending order4388 when no cursor is passed4389 only returns projects in descending order4390 when before cursor value is not NULL4391 returns all projects before the cursor4392 when after cursor value is not NULL4393 returns all projects after the cursor4394 when before and after cursor4395 returns all projects after the cursor4396 when ascending NULLS FIRST with a tie breaker4397 nodes: lazy { Issue.order(Issue.arel_table[:relative_position].asc.nulls_first).order(id: :asc) }4398 behaves like nodes are in ascending order4399 when no cursor is passed4400 returns projects in ascending order4401 when before cursor value is not NULL4402 returns all projects before the cursor4403 when after cursor value is not NULL4404 returns all projects after the cursor4405 when before and after cursor4406 returns all projects after the cursor4407 when descending NULLS FIRST with a tie breaker4408 nodes: lazy { Issue.order(Issue.arel_table[:relative_position].desc.nulls_first).order(id: :asc) }4409 behaves like nodes are in descending order4410 when no cursor is passed4411 only returns projects in descending order4412 when before cursor value is not NULL4413 returns all projects before the cursor4414 when after cursor value is not NULL4415 returns all projects after the cursor4416 when before and after cursor4417 returns all projects after the cursor4418 when ordering by similarity4419 behaves like nodes are in descending order4420 when no cursor is passed4421 only returns projects in descending order4422 when before cursor value is not NULL4423 returns all projects before the cursor4424 when after cursor value is not NULL4425 returns all projects after the cursor4426 when before and after cursor4427 returns all projects after the cursor4428 when an invalid cursor is provided4429 raises an error4430 #nodes4431 behaves like connection with paged nodes4432 returns the collection limited to max page size4433 is a loaded memoized array4434 when `first` is passed4435 returns only the first elements4436 when `last` is passed4437 returns only the last elements4438 when both are passed4439 raises an error4440 when primary key is not in original order4441 is added to end4442 when there is no primary key4443 raises an error4444 #has_previous_page and #has_next_page4445 when default query4446 has no previous, but a next4447 when before is first item4448 has no previous, but a next4449 using `before`4450 when before is the last item4451 has no previous, but a next4452 when before and last specified4453 has a previous and a next4454 when before and last does request all remaining nodes4455 has a previous and a next4456 using `after`4457 when after is the first item4458 has a previous, and a next4459 when after and first specified4460 has a previous and a next4461 when before and last does request all remaining nodes4462 has a previous but no next4463Projects::Alerting::NotifyService4464 #execute4465 with HTTP integration4466 with valid token4467 with valid payload4468 passes the integration to alert processing4469 behaves like processes new firing alert4470 behaves like creates an alert management alert or errors4471 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4472 creates AlertManagement::Alert4473 executes the alert service hooks4474 and fails to save4475 writes a warning to the log4476 behaves like alerts service responds with an error4477 is expected to eq :bad_request4478 behaves like creates expected system notes for alert4479 for new_alert4480 behaves like processes incident issues if enabled4481 is expected to be success4482 with incident setting disabled4483 behaves like does not process incident issues4484 is expected not to receive perform_async(*(any args)) 0 times4485 behaves like sends alert notification emails if enabled4486 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4487 with email setting disabled4488 behaves like does not send alert notification emails4489 is expected not to receive new(*(any args)) 0 times4490 for an existing alert with the same fingerprint4491 which is triggered4492 behaves like adds an alert management alert event4493 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4494 behaves like does not create an alert management alert4495 is expected not to change `AlertManagement::Alert.count`4496 behaves like sends alert notification emails if enabled4497 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4498 with email setting disabled4499 behaves like does not send alert notification emails4500 is expected not to receive new(*(any args)) 0 times4501 behaves like processes incident issues if enabled4502 is expected to be success4503 with incident setting disabled4504 behaves like does not process incident issues4505 is expected not to receive perform_async(*(any args)) 0 times4506 behaves like does not create an alert management alert4507 is expected not to change `AlertManagement::Alert.count`4508 behaves like does not create a system note for alert4509 is expected not to change `Note.count`4510 with an existing resolved alert as well4511 behaves like adds an alert management alert event4512 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4513 behaves like does not create an alert management alert4514 is expected not to change `AlertManagement::Alert.count`4515 behaves like sends alert notification emails if enabled4516 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4517 with email setting disabled4518 behaves like does not send alert notification emails4519 is expected not to receive new(*(any args)) 0 times4520 behaves like processes incident issues if enabled4521 is expected to be success4522 with incident setting disabled4523 behaves like does not process incident issues4524 is expected not to receive perform_async(*(any args)) 0 times4525 behaves like does not create an alert management alert4526 is expected not to change `AlertManagement::Alert.count`4527 behaves like does not create a system note for alert4528 is expected not to change `Note.count`4529 which is acknowledged4530 behaves like adds an alert management alert event4531 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4532 behaves like does not create an alert management alert4533 is expected not to change `AlertManagement::Alert.count`4534 behaves like processes incident issues if enabled4535 is expected to be success4536 with incident setting disabled4537 behaves like does not process incident issues4538 is expected not to receive perform_async(*(any args)) 0 times4539 behaves like does not create an alert management alert4540 is expected not to change `AlertManagement::Alert.count`4541 behaves like does not create a system note for alert4542 is expected not to change `Note.count`4543 behaves like does not send alert notification emails4544 is expected not to receive new(*(any args)) 0 times4545 which is ignored4546 behaves like adds an alert management alert event4547 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4548 behaves like does not create an alert management alert4549 is expected not to change `AlertManagement::Alert.count`4550 behaves like processes incident issues if enabled4551 is expected to be success4552 with incident setting disabled4553 behaves like does not process incident issues4554 is expected not to receive perform_async(*(any args)) 0 times4555 behaves like does not create an alert management alert4556 is expected not to change `AlertManagement::Alert.count`4557 behaves like does not create a system note for alert4558 is expected not to change `Note.count`4559 behaves like does not send alert notification emails4560 is expected not to receive new(*(any args)) 0 times4561 which is resolved4562 behaves like creates an alert management alert or errors4563 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4564 creates AlertManagement::Alert4565 executes the alert service hooks4566 and fails to save4567 writes a warning to the log4568 behaves like alerts service responds with an error4569 is expected to eq :bad_request4570 behaves like creates expected system notes for alert4571 for new_alert4572 behaves like processes incident issues if enabled4573 is expected to be success4574 with incident setting disabled4575 behaves like does not process incident issues4576 is expected not to receive perform_async(*(any args)) 0 times4577 behaves like sends alert notification emails if enabled4578 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4579 with email setting disabled4580 behaves like does not send alert notification emails4581 is expected not to receive new(*(any args)) 0 times4582 behaves like properly assigns the alert properties4583 is expected to match {"project_id"=>484, "title"=>"alert title", "started_at"=>Tue, 28 Jun 2022 10:36:37.000000000 UTC +00:00, "severity"=>"low", "status"=>0, "events"=>1, "domain"=>"operations", "hosts"=>["1.1.1.1", "2.2.2.2"], "payload"=>{"title"=>"alert title", "start_time"=>"2022-06-28T10:36:37Z", "end_time"=>nil, "severity"=>"low", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "description"=>"Very detailed description", "hosts"=>["1.1.1.1", "2.2.2.2"], "fingerprint"=>"testing", "gitlab_environment_name"=>"environment52"}, "issue_id"=>nil, "description"=>"Very detailed description", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "fingerprint"=>"dc724af18fbdd4e59189f5fe768a5f8311527050", "environment_id"=>80, "ended_at"=>nil, "prometheus_alert_id"=>nil}4584 with partial payload4585 assigns the alert properties4586 behaves like creates an alert management alert or errors4587 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4588 creates AlertManagement::Alert4589 executes the alert service hooks4590 and fails to save4591 writes a warning to the log4592 behaves like alerts service responds with an error4593 is expected to eq :bad_request4594 behaves like creates expected system notes for alert4595 for new_alert4596 behaves like processes incident issues if enabled4597 is expected to be success4598 with incident setting disabled4599 behaves like does not process incident issues4600 is expected not to receive perform_async(*(any args)) 0 times4601 behaves like sends alert notification emails if enabled4602 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4603 with email setting disabled4604 behaves like does not send alert notification emails4605 is expected not to receive new(*(any args)) 0 times4606 with existing alert with matching payload4607 behaves like creates an alert management alert or errors4608 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}4609 creates AlertManagement::Alert4610 executes the alert service hooks4611 and fails to save4612 writes a warning to the log4613 behaves like alerts service responds with an error4614 is expected to eq :bad_request4615 behaves like creates expected system notes for alert4616 for new_alert4617 behaves like processes incident issues if enabled4618 is expected to be success4619 with incident setting disabled4620 behaves like does not process incident issues4621 is expected not to receive perform_async(*(any args)) 0 times4622 behaves like sends alert notification emails if enabled4623 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4624 with email setting disabled4625 behaves like does not send alert notification emails4626 is expected not to receive new(*(any args)) 0 times4627 with resolving payload4628 behaves like processes recovery alert4629 seen for the first time4630 behaves like alerts service responds with an error and takes no actions4631 is expected to eq :bad_request4632 behaves like does not create an alert management alert4633 is expected not to change `AlertManagement::Alert.count`4634 behaves like does not create a system note for alert4635 is expected not to change `Note.count`4636 behaves like does not process incident issues4637 is expected not to receive perform_async(*(any args)) 0 times4638 behaves like does not send alert notification emails4639 is expected not to receive new(*(any args)) 0 times4640 for an existing alert with the same fingerprint4641 which is triggered4642 behaves like resolves an existing alert management alert4643 sets the end time and status4644 behaves like creates expected system notes for alert4645 for recovery_alert, resolve_alert4646 behaves like sends alert notification emails if enabled4647 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4648 with email setting disabled4649 behaves like does not send alert notification emails4650 is expected not to receive new(*(any args)) 0 times4651 behaves like closes related incident if enabled4652 with incident4653 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 14654 without incident4655 is expected not to receive perform_async(*(any args)) 0 times4656 with incident setting disabled4657 behaves like does not close related incident4658 with incident4659 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`4660 without incident4661 is expected not to receive perform_async(*(any args)) 0 times4662 behaves like writes a warning to the log for a failed alert status update4663 is expected to be success4664 behaves like does not create an alert management alert4665 is expected not to change `AlertManagement::Alert.count`4666 behaves like does not process incident issues4667 is expected not to receive perform_async(*(any args)) 0 times4668 behaves like does not add an alert management alert event4669 is expected not to change `alert.reload.events`4670 which is ignored4671 behaves like resolves an existing alert management alert4672 sets the end time and status4673 behaves like creates expected system notes for alert4674 for recovery_alert, resolve_alert4675 behaves like sends alert notification emails if enabled4676 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4677 with email setting disabled4678 behaves like does not send alert notification emails4679 is expected not to receive new(*(any args)) 0 times4680 behaves like closes related incident if enabled4681 with incident4682 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 14683 without incident4684 is expected not to receive perform_async(*(any args)) 0 times4685 with incident setting disabled4686 behaves like does not close related incident4687 with incident4688 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`4689 without incident4690 is expected not to receive perform_async(*(any args)) 0 times4691 behaves like writes a warning to the log for a failed alert status update4692 is expected to be success4693 behaves like does not create an alert management alert4694 is expected not to change `AlertManagement::Alert.count`4695 behaves like does not process incident issues4696 is expected not to receive perform_async(*(any args)) 0 times4697 behaves like does not add an alert management alert event4698 is expected not to change `alert.reload.events`4699 which is acknowledged4700 behaves like resolves an existing alert management alert4701 sets the end time and status4702 behaves like creates expected system notes for alert4703 for recovery_alert, resolve_alert4704 behaves like sends alert notification emails if enabled4705 is expected to receive prometheus_alerts_fired(*(any args)) 1 time4706 with email setting disabled4707 behaves like does not send alert notification emails4708 is expected not to receive new(*(any args)) 0 times4709 behaves like closes related incident if enabled4710 with incident4711 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 14712 without incident4713 is expected not to receive perform_async(*(any args)) 0 times4714 with incident setting disabled4715 behaves like does not close related incident4716 with incident4717 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`4718 without incident4719 is expected not to receive perform_async(*(any args)) 0 times4720 behaves like writes a warning to the log for a failed alert status update4721 is expected to be success4722 behaves like does not create an alert management alert4723 is expected not to change `AlertManagement::Alert.count`4724 behaves like does not process incident issues4725 is expected not to receive perform_async(*(any args)) 0 times4726 behaves like does not add an alert management alert event4727 is expected not to change `alert.reload.events`4728 which is resolved4729 behaves like alerts service responds with an error and takes no actions4730 is expected to eq :bad_request4731 behaves like does not create an alert management alert4732 is expected not to change `AlertManagement::Alert.count`4733 behaves like does not create a system note for alert4734 is expected not to change `Note.count`4735 behaves like does not process incident issues4736 is expected not to receive perform_async(*(any args)) 0 times4737 behaves like does not send alert notification emails4738 is expected not to receive new(*(any args)) 0 times4739 with overlong payload4740 behaves like alerts service responds with an error and takes no actions4741 is expected to eq :bad_request4742 behaves like does not create an alert management alert4743 is expected not to change `AlertManagement::Alert.count`4744 behaves like does not create a system note for alert4745 is expected not to change `Note.count`4746 behaves like does not process incident issues4747 is expected not to receive perform_async(*(any args)) 0 times4748 behaves like does not send alert notification emails4749 is expected not to receive new(*(any args)) 0 times4750 with inactive integration4751 behaves like alerts service responds with an error and takes no actions4752 is expected to eq :forbidden4753 behaves like does not create an alert management alert4754 is expected not to change `AlertManagement::Alert.count`4755 behaves like does not create a system note for alert4756 is expected not to change `Note.count`4757 behaves like does not process incident issues4758 is expected not to receive perform_async(*(any args)) 0 times4759 behaves like does not send alert notification emails4760 is expected not to receive new(*(any args)) 0 times4761 with invalid token4762 behaves like alerts service responds with an error and takes no actions4763 is expected to eq :unauthorized4764 behaves like does not create an alert management alert4765 is expected not to change `AlertManagement::Alert.count`4766 behaves like does not create a system note for alert4767 is expected not to change `Note.count`4768 behaves like does not process incident issues4769 is expected not to receive perform_async(*(any args)) 0 times4770 behaves like does not send alert notification emails4771 is expected not to receive new(*(any args)) 0 times4772 without HTTP integration4773 behaves like alerts service responds with an error and takes no actions4774 is expected to eq :forbidden4775 behaves like does not create an alert management alert4776 is expected not to change `AlertManagement::Alert.count`4777 behaves like does not create a system note for alert4778 is expected not to change `Note.count`4779 behaves like does not process incident issues4780 is expected not to receive perform_async(*(any args)) 0 times4781 behaves like does not send alert notification emails4782 is expected not to receive new(*(any args)) 0 times4783Packages::Maven::Metadata::CreateVersionsXmlService4784 #execute4785 with same versions in both sides4786 returns no changes4787 with more versions4788 in the xml side4789 behaves like returning an xml with versions in the database4790 returns an metadata versions xml with versions in the database4791 in the database side4792 behaves like returning an xml with versions in the database4793 returns an metadata versions xml with versions in the database4794 with completely different versions4795 behaves like returning an xml with versions in the database4796 returns an metadata versions xml with versions in the database4797 with no versions in the database4798 returns a success4799 with an xml without a release version4800 returns a success4801 with differences in both sides4802 behaves like returning an xml with versions in the database4803 returns an metadata versions xml with versions in the database4804 with a new release and latest from the database4805 behaves like returning an xml with4806 returns an xml with the updated release and latest versions4807 with a latest in the xml4808 behaves like returning an xml with4809 returns an xml with the updated release and latest versions4810 with release and latest not existing in the database4811 behaves like returning an xml with4812 returns an xml with the updated release and latest versions4813 with added versions in the database side no more recent than release4814 behaves like returning an xml with4815 returns an xml with the updated release and latest versions4816 with a latest in the xml4817 behaves like returning an xml with4818 returns an xml with the updated release and latest versions4819 only snapshot versions are in the database4820 returns an xml without any release element4821 behaves like returning an xml with4822 returns an xml with the updated release and latest versions4823 last updated timestamp4824 updates the last updated timestamp4825 with an incomplete metadata content4826 behaves like returning an error service response4827 returns an error service response4828 with an invalid metadata content4829 behaves like returning an error service response4830 returns an error service response4831 behaves like handling metadata content pointing to a file for the create xml service4832 with metadata content pointing to a file4833 with valid content4834 returns no changes4835 with invalid content4836 behaves like returning an error service response4837 returns an error service response4838 with no content4839 behaves like returning an error service response4840 returns an error service response4841 behaves like handling invalid parameters for create xml service4842 with no package4843 behaves like returning an error service response4844 returns an error service response4845 with no metadata content4846 behaves like returning an error service response4847 returns an error service response4848DiffNote4849 validations4850 is not valid when noteable is empty4851 behaves like a valid diff positionable note4852 for commit4853 position diff refs matches commit diff refs4854 is valid4855 position diff refs does not match commit diff refs4856 is invalid4857 commit does not exist4858 is invalid4859 original_position=4860 doesn't accept non-hash JSON passed as a string4861 does accept a position hash as a string4862 doesn't accept an array4863 does accept a hash4864 position=4865 doesn't accept non-hash JSON passed as a string4866 does accept a position hash as a string4867 doesn't accept an array4868 does accept a hash4869 change_position=4870 doesn't accept non-hash JSON passed as a string4871 does accept a position hash as a string4872 doesn't accept an array4873 does accept a hash4874 schema validation4875 position_attrs: {:old_path=>"pz0ifWOPXwlAw6mtZlJ8jyCG0YJfUCUBgnwE2A2GkrFFcLrQIMlMuZEG9uIwGHdvmfXKAQbDeFHbV1zz2o01O0xOB9YIO95d8oC2KPam7cSRX5ZSe4bYWXE1ND1GHbNW4YrOE346TuhDv34YTvVB960hfCqYOktnBCcLsZz7EWGL1DlyGxc7GL3tx56b3FSMJpUudQ4OiH6d3vXSfMQwxmJ6zvMejGKybG7pB3TCv2xwf6g3NUyVjaFqFTvd4LaatZdTusvC9qlKiBbpQpgMPwZkxVcWvu5EkGc3aF8yprBwR5j0F87Np4UnZSmAJ1MZcu74rTb7DTobDttoHolvGHbiMuqp9FpQ0QmkkC6wD3jeNWC0gPY5gqjvtrVKODNU0sncxU6pWm4OamoIeibMxD6I3bEXF5bepbDKopiD3YrApcAw0aueBdfSTcdk9Pj8wI3OIvI5dEhQRitdyTofrheJIViDXvhzLRSra0iCgGkxTVmeCvdMlDOkQc3yxihWH7DZp06rVbXCsEJCUEbu0Bh1IfDjwtEtTBkcAIqJ1OklvwKlf6n1ZgTwnwsdt5kh9Gh05bgN6Ty1tpJIl1U8jQRt37EjHlzOIalgI3pwF7QcyZharIxoKTCfsrLF8zknm3UIYE3G1nON70AgU78gWP5PJrVvHMmwQlwWyyvWujt95k2uB2OyDIi463LZgSG0D0gfNYLXHucxf8qOD1gpL5UTZ8EvimPoOaOdTuYcHaP7tGYMgisqh3gX9aFBlnWB59pM32ngwTkmFm2IB3et51BLtGEJFus6b4Og8USxhJ70rSV7S2GRwXxAsqojCuMbyKEcIh2AbaVt1JncxayvFcJd0sCu6ibUbn4KtjY5dFPyIfepelUB5i0Uhqm2XlZu4mG1CllGj3GjrQJI78SMs6sbm8hbm0NvE9rQ5OTmZs4i8oAtzOkmUS20eu3NXOsdrxfZwUoafljY209ITTJtTzPCnb7qJW15uI2RbYP7S"}4876 is expected to be invalid4877 position_attrs: {:new_path=>"V5rK8MV2yWPLNigYeiadLDJb2Y8iBbv2RZ1ojdaoqMBlXKrBoSSAqXJYCgZtEMvIcA3GnWBJloowLkx3u3P0pAGqxUiM5axgZvJL1NgWhbD90sDKJlt8GCRMFNWWhDwx041L1Z0fp5c6om5cVATq7yQkzOIUeZXGC9uyClvwyK0JfEbBoLQ0NqqsoEN3kdVpVUJn6NlzmWFP0xZ9IYk2bYUpueMQgMmYYMWv3itpUSPAhNtkI7xzxukViYKXuYK6WereKEf5T0mLhO9XeLQvmr5Oanb4Nde77krTTMO2i7o139vbeh72nb0lxcjxk688otHqBoTeGSPWKIecmvE4nwT5JadIwgcO4lTZmpponTuoSgYBeapKxEZHLroEnrUxwQhlJSMf3DSZCkbLiGwlDOnHNJ5efWCTp21PihLvZBehAnotjIsmpBGM8d5YbGlXfaSfXwn8hdnHIYW6JdMAtPUQDH3AK4kf6OxwLZfLbFHxzzkzdir3sar6z1FZo6pjqzVp7sL0HhGumP1uUgLyA4ne9xVEQJ6u72zVSVuBhtqbJlHZYF7SzyVq0LdjeKDsDPw9hHgUnfuuUL6VJRybNqcUmDV3hiyNI5VD3OCvFaLpZcSoXb9k3PPvRcfs9zeIuGXBMiG8oWxy9EjGPDizWEz7ij6rRjcdlPWpRavmeSGyR2xk2fIqDaxgQd24xFwKF5DQ318Fmr08a6Eq5sInwLSrA6GzKDfsyqZNTDfz6SFKQPqKP3gq47s6NUChyIX9EpcM3XWXqsIFHG49vYSZkPPpj1zYL7SK7V6XMYbK56Y0w7T5drGtkv2zTlCrdaIUi27eQuqB716tZCjUaDKkv2WoeUgVRk2KJj1pfLbLvXNPufACukqysCtNFxvpeHuKQtKQbHL0rt6r5EMDLEqP2FsxyuO2rOmEwZK0BlZnov6ma78oM2KhdVeAv8bvcKhgjIKXCfwrogb7Wq0BRkjYGccYFo7eV6YNOdFXprEH7"}4878 is expected to be invalid4879 position_attrs: {:old_line=>"foo"}4880 is expected to be invalid4881 position_attrs: {:new_line=>"foo"}4882 is expected to be invalid4883 position_attrs: {:line_range=>{:foo=>"bar"}}4884 is expected to be invalid4885 position_attrs: {:line_range=>{:line_code=>"YBLOa1Ycjru2kLo7RElO0UdywXwmtTQRPoR6f2jGZqzs3M9QAhScpEYfgSBOiQPyjoSS1b3orSY8uZZ8EA32oiHhC1gVOEADN7t9T"}}4886 is expected to be invalid4887 position_attrs: {:line_range=>{:type=>"WQ0EFlg3fbUJVRl3xvYdh6W3NysYZh0K1atLT8cfG3gKyXrVWJ2AgPnPsEAal2cWPnwLnENMLBuyplVcVMeNmUdpq88KvWBqe1vcJ"}}4888 is expected to be invalid4889 position_attrs: {:line_range=>{:old_line=>"foo"}}4890 is expected to be invalid4891 position_attrs: {:line_range=>{:new_line=>"foo"}}4892 is expected to be invalid4893 when importing4894 does not check if it's supported4895 #position=4896 when provided a string4897 sets the position4898 when provided a hash4899 sets the position4900 when provided a position object4901 sets the position4902 #original_position=4903 when provided a string4904 sets the original position4905 when provided a hash4906 sets the original position4907 when provided a position object4908 sets the original position4909 #create_diff_file callback4910 merge request4911 does not create diff note file if it is a reply4912 when diffs are already created4913 when diff_file is found in persisted diffs4914 when importing4915 when diff_line is found in persisted diff_file4916 creates a diff note file4917 when diff_line is not found in persisted diff_file4918 behaves like a valid diff note with after commit callback4919 when diff file is fetched from repository4920 when diff_line is not found4921 raises an error4922 when diff_line is found4923 fallback to fetch file from repository4924 creates a diff note file4925 when diff file is not found in repository4926 raises an error4927 when not importing4928 when diff_line is not found4929 raises an error4930 when diff_line is found4931 creates a diff note file4932 when diff file is not found in persisted diffs4933 behaves like a valid diff note with after commit callback4934 when diff file is fetched from repository4935 when diff_line is not found4936 raises an error4937 when diff_line is found4938 fallback to fetch file from repository4939 creates a diff note file4940 when diff file is not found in repository4941 raises an error4942 when diffs are not already created4943 behaves like a valid diff note with after commit callback4944 when diff file is fetched from repository4945 when diff_line is not found4946 raises an error4947 when diff_line is found4948 fallback to fetch file from repository4949 creates a diff note file4950 when diff file is not found in repository4951 raises an error4952 commit4953 creates a diff note file4954 does not create diff note file if it is a reply4955 #diff_file4956 when note_diff_file association exists4957 returns persisted diff file data4958 when the discussion was created in the diff4959 returns correct diff file4960 when discussion is outdated or not created in the diff4961 returns the correct diff file4962 note diff file creation enqueuing4963 enqueues CreateNoteDiffFileWorker if it is the first note of a discussion4964 does not enqueues CreateNoteDiffFileWorker if not first note of a discussion4965 when noteable is a Design4966 does not return a diff file4967 #latest_diff_file4968 when noteable is a Design4969 does not return a diff file4970 #diff_line4971 returns the correct diff line4972 #line_code4973 returns the correct line code4974 #active?4975 when noteable is a commit4976 returns true4977 when noteable is a merge request4978 when the merge request's diff refs match that of the diff note4979 returns true4980 when the merge request's diff refs don't match that of the diff note4981 returns false4982 creation4983 updating of position4984 when noteable is a commit4985 doesn't update the position4986 when noteable is a merge request4987 when the note is active4988 doesn't update the position4989 when the note is outdated4990 updates the position4991 #discussion_id4992 when it is newly created4993 has a discussion id4994 when it didn't store a discussion id before4995 has a discussion id4996 #created_at_diff?4997 when noteable is a commit4998 returns true4999 when noteable is a merge request5000 when the diff refs match the original one of the diff note5001 returns true5002 when the diff refs don't match the original one of the diff note5003 returns false5004 #supports_suggestion?5005 when noteable does not exist5006 returns false5007 when noteable does not support suggestions5008 returns false5009 when line is not suggestible5010 returns false5011 #banzai_render_context5012 includes expected context5013 image diff notes5014 returns true for on_image?5015 validations5016 is expected not to validate that :line_code cannot be empty/falsy5017 does not validate diff line5018 does not update the position5019 #to_ability_name5020 is expected to eq "note"5021 #shas5022 returns list of SHAs based on original_position5023 when position changes5024 includes the new position SHAs5025Gitlab::Auth::AuthFinders5026 #find_user_from_bearer_token5027 when the token is passed as an oauth token5028 behaves like find user from job token5029 when route is allowed to be authenticated5030 for an invalid token5031 returns an Unauthorized exception5032 with a running job5033 return user5034 with a job that is not running5035 returns an Unauthorized exception5036 when route is not allowed to be authenticated5037 with a running job5038 returns an Unauthorized exception5039 with oauth token5040 is expected to eq #<User id:868 @user294>5041 with a personal access token5042 is expected to eq #<User id:868 @user294>5043 #find_user_from_warden5044 with CSRF token5045 with invalid credentials5046 returns nil5047 with valid credentials5048 returns the user5049 without CSRF token5050 returns nil5051 #find_user_from_feed_token5052 when the request format is atom5053 when feed_token param is provided5054 returns user if valid feed_token5055 returns nil if valid feed_token and disabled5056 returns nil if feed_token is blank5057 returns exception if invalid feed_token5058 when rss_token param is provided5059 returns user if valid rss_token5060 returns nil if rss_token is blank5061 returns exception if invalid rss_token5062 when the request format is not atom5063 returns nil5064 when the request format is empty5065 the method call does not modify the original value5066 #find_user_from_static_object_token5067 when request format is archive5068 behaves like static object request5069 when token header param is present5070 when token is correct5071 returns the user5072 when token is incorrect5073 returns the user5074 when token query param is present5075 when token is correct5076 returns the user5077 when token is incorrect5078 returns the user5079 when request format is blob5080 behaves like static object request5081 when token header param is present5082 when token is correct5083 returns the user5084 when token is incorrect5085 returns the user5086 when token query param is present5087 when token is correct5088 returns the user5089 when token is incorrect5090 returns the user5091 when request format is not archive nor blob5092 returns nil5093 #deploy_token_from_request5094 is expected to be nil5095 with deploy token headers5096 with valid deploy token5097 is expected to eq #<DeployToken id: 1, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-07...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>5098 behaves like an unauthenticated route5099 when route is not allowed to use deploy_tokens5100 is expected to be nil5101 with incorrect token5102 is expected to be nil5103 with oauth headers5104 with valid token5105 is expected to eq #<DeployToken id: 1, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-07...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>5106 behaves like an unauthenticated route5107 when route is not allowed to use deploy_tokens5108 is expected to be nil5109 with invalid token5110 is expected to be nil5111 with basic auth headers5112 is expected to eq #<DeployToken id: 1, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-07...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>5113 behaves like an unauthenticated route5114 when route is not allowed to use deploy_tokens5115 is expected to be nil5116 with incorrect token5117 is expected to be nil5118 #find_user_from_access_token5119 returns nil if no access_token present5120 when validate_access_token! returns valid5121 returns user5122 returns exception if token has no user5123 with OAuth headers5124 with valid personal access token5125 returns user5126 with invalid personal_access_token5127 returns exception5128 when using a non-prefixed access token5129 returns user5130 #find_user_from_web_access_token5131 returns exception if token has no user5132 returns the user for RSS requests5133 returns the user for ICS requests5134 returns the user for ARCHIVE requests5135 no feed, API or archive requests5136 returns nil if the request is not RSS5137 returns nil if the request is not ICS5138 returns nil if the request is not API5139 returns nil if the request is not ARCHIVE5140 for API requests5141 returns the user5142 returns nil if URL does not start with /api/5143 when the token has read_api scope5144 raises InsufficientScopeError by default5145 finds the user when the read_api scope is passed5146 when relative_url_root is set5147 returns the user5148 #find_personal_access_token5149 returns nil if no personal_access_token5150 returns exception if invalid personal_access_token5151 passed as header5152 returns token if valid personal_access_token5153 passed as param5154 returns token if valid personal_access_token5155 #find_oauth_access_token5156 returns nil if no oauth_access_token5157 passed as header5158 returns token if valid oauth_access_token5159 passed as param5160 returns user if valid oauth_access_token5161 with invalid token5162 returns exception if invalid oauth_access_token5163 #find_personal_access_token_from_http_basic_auth5164 access token is valid5165 finds the token from basic auth5166 access token is not valid5167 returns nil5168 route_setting is not set5169 returns nil5170 route_setting is not correct5171 returns nil5172 #find_user_from_basic_auth_job5173 when the request does not have AUTHORIZATION header5174 is expected to be nil5175 with wrong credentials5176 returns nil without user and password5177 returns nil without password5178 returns nil without user5179 returns nil without CI username5180 with CI username5181 behaves like find user from job token5182 when route is allowed to be authenticated5183 for an invalid token5184 returns an Unauthorized exception5185 with a running job5186 return user5187 with a job that is not running5188 returns an Unauthorized exception5189 when route is not allowed to be authenticated5190 with a running job5191 returns the user5192 #find_user_from_basic_auth_password5193 returns nil without user and password5194 returns nil without password5195 returns nil without user5196 returns nil with CI username5197 returns nil with wrong password5198 returns user with correct credentials5199 when the request does not have AUTHORIZATION header5200 is expected to be nil5201 #find_user_from_lfs_token5202 returns nil without user and token5203 returns nil without token5204 returns nil without user5205 returns nil with wrong token5206 returns user with correct user and correct token5207 returns nil with wrong user and correct token5208 when the request does not have AUTHORIZATION header5209 is expected to be nil5210 #find_user_from_personal_access_token5211 returns nil without access token5212 returns user with correct access token5213 returns exception if access token has no user5214 #validate_access_token!5215 returns nil if no access_token present5216 with a job token5217 does not raise an error5218 token is not valid5219 returns Gitlab::Auth::ExpiredError if token expired5220 returns Gitlab::Auth::RevokedError if token revoked5221 returns Gitlab::Auth::InsufficientScopeError if invalid token scope5222 with impersonation token5223 when impersonation is disabled5224 returns Gitlab::Auth::ImpersonationDisabled5225 #find_user_from_job_token5226 when route setting allows job_token5227 when the token is in the headers5228 behaves like find user from job token5229 when route is allowed to be authenticated5230 for an invalid token5231 returns an Unauthorized exception5232 with a running job5233 return user5234 with a job that is not running5235 returns an Unauthorized exception5236 when route is not allowed to be authenticated5237 with a running job5238 returns nil5239 when the token is in the job_token param5240 behaves like find user from job token5241 when route is allowed to be authenticated5242 for an invalid token5243 returns an Unauthorized exception5244 with a running job5245 return user5246 with a job that is not running5247 returns an Unauthorized exception5248 when route is not allowed to be authenticated5249 with a running job5250 returns nil5251 when the token is in the token param5252 behaves like find user from job token5253 when route is allowed to be authenticated5254 for an invalid token5255 returns an Unauthorized exception5256 with a running job5257 return user5258 with a job that is not running5259 returns an Unauthorized exception5260 when route is not allowed to be authenticated5261 with a running job5262 returns nil5263 when route setting is basic auth5264 when the token is provided via basic auth5265 is expected to eq #<User id:868 @user294>5266 when the token is in the headers5267 behaves like find user from job token5268 when route is allowed to be authenticated5269 for an invalid token5270 returns an Unauthorized exception5271 with a running job5272 return user5273 with a job that is not running5274 returns an Unauthorized exception5275 when route is not allowed to be authenticated5276 with a running job5277 returns nil5278 when the token is in the job_token param5279 behaves like find user from job token5280 when route is allowed to be authenticated5281 for an invalid token5282 returns an Unauthorized exception5283 with a running job5284 return user5285 with a job that is not running5286 returns an Unauthorized exception5287 when route is not allowed to be authenticated5288 with a running job5289 returns nil5290 when the token is in the token param5291 behaves like find user from job token5292 when route is allowed to be authenticated5293 for an invalid token5294 returns an Unauthorized exception5295 with a running job5296 return user5297 with a job that is not running5298 returns an Unauthorized exception5299 when route is not allowed to be authenticated5300 with a running job5301 returns nil5302 when route setting job_token_allowed is invalid5303 when the token is provided5304 is expected to be nil5305 #cluster_agent_token_from_authorization_token5306 when route_setting is empty5307 is expected to be nil5308 when route_setting allows cluster agent token5309 Authorization header is empty5310 is expected to be nil5311 Authorization header is incorrect5312 is expected to be nil5313 Authorization header is malformed5314 is expected to be nil5315 Authorization header matches agent token5316 is expected to eq #<Clusters::AgentToken id: 1, created_at: "2022-06-28 10:38:35.995572045 +0000", updated_at: "2022-06...eated_by_user_id: 874, description: nil, name: "agent-token-1", last_used_at: nil, status: "active">5317 agent token has been revoked5318 is expected to be nil5319 #find_runner_from_token5320 with API requests5321 returns the runner if token is valid5322 returns nil if token is not present5323 returns nil if token is blank5324 returns exception if invalid token5325 without API requests5326 returns nil if token is valid5327 returns nil if token is blank5328 returns nil if invalid token5329Banzai::Filter::References::CommitReferenceFilter5330 requires project context5331 ignores valid references contained inside 'pre' element5332 ignores valid references contained inside 'code' element5333 ignores valid references contained inside 'a' element5334 ignores valid references contained inside 'style' element5335 internal reference5336 links to a valid reference of 7 characters5337 links to a valid reference of 8 characters5338 links to a valid reference of 12 characters5339 links to a valid reference of 18 characters5340 links to a valid reference of 20 characters5341 links to a valid reference of 32 characters5342 links to a valid reference of 40 characters5343 always uses the short ID as the link text5344 links with adjacent text5345 ignores invalid commit IDs5346 includes a title attribute5347 escapes the title attribute5348 includes default classes5349 includes a data-project attribute5350 includes a data-commit attribute5351 supports an :only_path context5352 in merge request context5353 handles merge request contextual commit references5354 a doc with many (29) strings that could be SHAs5355 makes only a single request to Gitaly5356 cross-project / cross-namespace complete reference5357 link has valid text5358 has valid text5359 ignores invalid commit IDs on the referenced project5360 cross-project / same-namespace complete reference5361 link has valid text5362 has valid text5363 ignores invalid commit IDs on the referenced project5364 cross-project shorthand reference5365 link has valid text5366 has valid text5367 ignores invalid commit IDs on the referenced project5368 cross-project URL reference5369 links to a valid reference5370 links with adjacent text5371 ignores invalid commit IDs on the referenced project5372 URL reference for a commit patch5373 links to a valid reference5374 has valid text5375 does not link to patch when extension match is after the path5376 group context5377 ignores internal references5378 links to a valid reference5379 checking N+15380 does not have N+1 per multiple references per project5381Integrations::WebexTeams5382 behaves like chat integration5383 Associations5384 is expected to belong to project required: false5385 is expected to have one service_hook5386 Validations5387 when integration is active5388 is expected to validate that :webhook cannot be empty/falsy5389 behaves like issue tracker integration URL attribute5390 is expected to allow :webhook to be ‹"https://example.com"›5391 is expected not to allow :webhook to be ‹"example.com"›5392 is expected not to allow :webhook to be ‹"ftp://example.com"›5393 is expected not to allow :webhook to be ‹"herp-and-derp"›5394 when integration is inactive5395 is expected not to validate that :webhook cannot be empty/falsy5396 .supported_events5397 does not support deployment_events5398 #execute5399 with push events5400 behaves like triggered Webex Teams integration5401 calls Webex Teams API5402 with default branch5403 when only default branch are to be notified5404 behaves like triggered Webex Teams integration5405 calls Webex Teams API5406 when only protected branches are to be notified5407 behaves like untriggered Webex Teams integration5408 does not call Webex Teams API5409 when default and protected branches are to be notified5410 behaves like triggered Webex Teams integration5411 calls Webex Teams API5412 when all branches are to be notified5413 behaves like triggered Webex Teams integration5414 calls Webex Teams API5415 with protected branch5416 when only default branch are to be notified5417 behaves like untriggered Webex Teams integration5418 does not call Webex Teams API5419 when only protected branches are to be notified5420 behaves like triggered Webex Teams integration5421 calls Webex Teams API5422 when default and protected branches are to be notified5423 behaves like triggered Webex Teams integration5424 calls Webex Teams API5425 when all branches are to be notified5426 behaves like triggered Webex Teams integration5427 calls Webex Teams API5428 with neither default nor protected branch5429 when only default branch are to be notified5430 behaves like untriggered Webex Teams integration5431 does not call Webex Teams API5432 when only protected branches are to be notified5433 behaves like untriggered Webex Teams integration5434 does not call Webex Teams API5435 when default and protected branches are to be notified5436 behaves like untriggered Webex Teams integration5437 does not call Webex Teams API5438 when all branches are to be notified5439 behaves like triggered Webex Teams integration5440 calls Webex Teams API5441 with issue events5442 behaves like triggered Webex Teams integration5443 calls Webex Teams API5444 with merge events5445 behaves like triggered Webex Teams integration5446 calls Webex Teams API5447 with wiki page events5448 behaves like triggered Webex Teams integration5449 calls Webex Teams API5450 with note events5451 with commit comment5452 behaves like triggered Webex Teams integration5453 calls Webex Teams API5454 with merge request comment5455 behaves like triggered Webex Teams integration5456 calls Webex Teams API5457 with issue comment5458 behaves like triggered Webex Teams integration5459 calls Webex Teams API5460 with snippet comment5461 behaves like triggered Webex Teams integration5462 calls Webex Teams API5463 with pipeline events5464 with failed pipeline5465 behaves like triggered Webex Teams integration5466 calls Webex Teams API5467 with succeeded pipeline5468 with default notify_only_broken_pipelines5469 does not call Webex Teams API5470 when notify_only_broken_pipelines is false5471 behaves like triggered Webex Teams integration5472 calls Webex Teams API5473 with default branch5474 when only default branch are to be notified5475 behaves like triggered Webex Teams integration5476 calls Webex Teams API5477 when only protected branches are to be notified5478 behaves like untriggered Webex Teams integration5479 does not call Webex Teams API5480 when default and protected branches are to be notified5481 behaves like triggered Webex Teams integration5482 calls Webex Teams API5483 when all branches are to be notified5484 behaves like triggered Webex Teams integration5485 calls Webex Teams API5486 with protected branch5487 when only default branch are to be notified5488 behaves like untriggered Webex Teams integration5489 does not call Webex Teams API5490 when only protected branches are to be notified5491 behaves like triggered Webex Teams integration5492 calls Webex Teams API5493 when default and protected branches are to be notified5494 behaves like triggered Webex Teams integration5495 calls Webex Teams API5496 when all branches are to be notified5497 behaves like triggered Webex Teams integration5498 calls Webex Teams API5499 with neither default nor protected branch5500 when only default branch are to be notified5501 behaves like untriggered Webex Teams integration5502 does not call Webex Teams API5503 when only protected branches are to be notified5504 behaves like untriggered Webex Teams integration5505 does not call Webex Teams API5506 when default and protected branches are to be notified5507 behaves like untriggered Webex Teams integration5508 does not call Webex Teams API5509 when all branches are to be notified5510 behaves like triggered Webex Teams integration5511 calls Webex Teams API5512 deployment events5513 behaves like untriggered Webex Teams integration5514 does not call Webex Teams API5515GroupsHelper5516 #group_icon_url5517 returns an url for the avatar5518 gives default avatar_icon when no avatar is present5519 #group_lfs_status5520 only one project in group5521 returns all projects as enabled5522 returns all projects as disabled5523 more than one project in group5524 LFS enabled in group5525 returns both projects as enabled5526 returns only one as enabled5527 LFS disabled in group5528 returns both projects as disabled5529 returns only one as disabled5530 #group_title5531 enqueues the elements in the breadcrumb schema list5532 avoids N+1 queries5533 traversal queries5534 recursive5535 outputs the groups in the correct order5536 linear5537 outputs the groups in the correct order5538 #share_with_group_lock_help_text5539 traversal queries5540 recursive5541 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5542 has the correct help text with correct ancestor links5543 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5544 has the correct help text with correct ancestor links5545 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5546 has the correct help text with correct ancestor links5547 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5548 has the correct help text with correct ancestor links5549 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5550 has the correct help text with correct ancestor links5551 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5552 has the correct help text with correct ancestor links5553 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup5554 has the correct help text with correct ancestor links5555 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup5556 has the correct help text with correct ancestor links5557 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup5558 has the correct help text with correct ancestor links5559 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup5560 has the correct help text with correct ancestor links5561 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup5562 has the correct help text with correct ancestor links5563 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup5564 has the correct help text with correct ancestor links5565 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5566 has the correct help text with correct ancestor links5567 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5568 has the correct help text with correct ancestor links5569 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5570 has the correct help text with correct ancestor links5571 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5572 has the correct help text with correct ancestor links5573 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5574 has the correct help text with correct ancestor links5575 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5576 has the correct help text with correct ancestor links5577 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group5578 has the correct help text with correct ancestor links5579 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group5580 has the correct help text with correct ancestor links5581 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group5582 has the correct help text with correct ancestor links5583 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group5584 has the correct help text with correct ancestor links5585 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group5586 has the correct help text with correct ancestor links5587 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group5588 has the correct help text with correct ancestor links5589 linear5590 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5591 has the correct help text with correct ancestor links5592 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5593 has the correct help text with correct ancestor links5594 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5595 has the correct help text with correct ancestor links5596 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5597 has the correct help text with correct ancestor links5598 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5599 has the correct help text with correct ancestor links5600 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5601 has the correct help text with correct ancestor links5602 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup5603 has the correct help text with correct ancestor links5604 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup5605 has the correct help text with correct ancestor links5606 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup5607 has the correct help text with correct ancestor links5608 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup5609 has the correct help text with correct ancestor links5610 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup5611 has the correct help text with correct ancestor links5612 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup5613 has the correct help text with correct ancestor links5614 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5615 has the correct help text with correct ancestor links5616 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5617 has the correct help text with correct ancestor links5618 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5619 has the correct help text with correct ancestor links5620 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil5621 has the correct help text with correct ancestor links5622 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil5623 has the correct help text with correct ancestor links5624 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil5625 has the correct help text with correct ancestor links5626 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group5627 has the correct help text with correct ancestor links5628 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group5629 has the correct help text with correct ancestor links5630 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group5631 has the correct help text with correct ancestor links5632 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group5633 has the correct help text with correct ancestor links5634 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group5635 has the correct help text with correct ancestor links5636 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group5637 has the correct help text with correct ancestor links5638 #parent_group_options5639 includes explicitly owned groups except self5640 excludes parent group5641 includes subgroups with inherited ownership5642 excludes own subgroups5643 #can_disable_group_emails?5644 returns true for the group owner5645 returns false for anyone else5646 when subgroups5647 returns false if parent group is disabling emails5648 returns true if parent group is not disabling emails5649 #can_update_default_branch_protection?5650 for users who can update default branch protection of the group5651 is expected to be truthy5652 for users who cannot update default branch protection of the group5653 is expected to be falsey5654 #show_thanks_for_purchase_banner?5655 returns true with purchased_quantity present in params5656 returns false with purchased_quantity not present in params5657 returns false with purchased_quantity is empty in params5658 #render_setting_to_allow_project_access_token_creation?5659 returns true if group is root5660 returns false if group is subgroup5661 #can_admin_group_member?5662 returns true when current_user can admin members5663 returns false when current_user can not admin members5664 #localized_jobs_to_be_done_choices5665 has a translation for all `jobs_to_be_done` values5666 #group_name_and_path_app_data5667 when group has a parent5668 returns expected hash5669 when group does not have a parent5670 returns expected hash5671 #subgroups_and_projects_list_app_data5672 returns expected hash5673 #enabled_git_access_protocol_options_for_group5674 instance setting is nil5675 is expected to contain exactly ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]5676 instance setting is blank5677 is expected to contain exactly ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]5678 instance setting is ssh5679 is expected to contain exactly ["Only SSH", "ssh"]5680 instance setting is http5681 is expected to contain exactly ["Only HTTP(S)", "http"]5682Ci::Bridge5683 has many sourced pipelines5684 has one downstream pipeline5685 #retryable?5686 returns true5687 without ci_recreate_downstream_pipeline ff5688 returns false5689 when there is a pipeline loop detected5690 returns false5691 when the pipeline depth has reached the max descendents5692 returns false5693 #tags5694 only has a bridge tag5695 #detailed_status5696 returns detailed status object5697 #scoped_variables5698 returns a hash representing variables5699 when bridge has dependency which has dotenv variable5700 includes inherited variable5701 state machine transitions5702 when bridge points towards downstream5703 schedules downstream pipeline creation when the status is created5704 schedules downstream pipeline creation when the status is manual5705 schedules downstream pipeline creation when the status is waiting for resource5706 raises error when the status is failed5707 #inherit_status_from_downstream!5708 when status is not supported5709 when status is created5710 returns false5711 does not change the bridge status5712 when status is waiting_for_resource5713 returns false5714 does not change the bridge status5715 when status is preparing5716 returns false5717 does not change the bridge status5718 when status is pending5719 returns false5720 does not change the bridge status5721 when status is running5722 returns false5723 does not change the bridge status5724 when status is manual5725 returns false5726 does not change the bridge status5727 when status is scheduled5728 returns false5729 does not change the bridge status5730 when status is supported5731 downstream_status: "success", upstream_status: "success"5732 inherits the downstream status5733 downstream_status: "failed", upstream_status: "failed"5734 inherits the downstream status5735 downstream_status: "canceled", upstream_status: "failed"5736 inherits the downstream status5737 downstream_status: "skipped", upstream_status: "failed"5738 inherits the downstream status5739 #dependent?5740 when bridge has strategy depend5741 is expected to equal true5742 when bridge does not have strategy depend5743 is expected to equal false5744 #yaml_variables5745 returns YAML variables5746 #downstream_variables5747 returns variables that are going to be passed downstream5748 when using variables interpolation5749 correctly expands variables with interpolation5750 when recursive interpolation has been used5751 does not expand variable recursively5752 forward variables5753 yaml_variables: nil, pipeline_variables: nil, variables: ["BRIDGE"]5754 returns variables according to the forward value5755 yaml_variables: nil, pipeline_variables: false, variables: ["BRIDGE"]5756 returns variables according to the forward value5757 yaml_variables: nil, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]5758 returns variables according to the forward value5759 yaml_variables: false, pipeline_variables: nil, variables: []5760 returns variables according to the forward value5761 yaml_variables: false, pipeline_variables: false, variables: []5762 returns variables according to the forward value5763 yaml_variables: false, pipeline_variables: true, variables: ["PVAR1"]5764 returns variables according to the forward value5765 yaml_variables: true, pipeline_variables: nil, variables: ["BRIDGE"]5766 returns variables according to the forward value5767 yaml_variables: true, pipeline_variables: false, variables: ["BRIDGE"]5768 returns variables according to the forward value5769 yaml_variables: true, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]5770 returns variables according to the forward value5771 when sending a variable via both yaml and pipeline5772 uses the pipeline variable5773 when the pipeline runs from a pipeline schedule5774 adds the schedule variable5775 metadata support5776 reads YAML variables from metadata5777 reads options from metadata5778 #triggers_child_pipeline?5779 when bridge defines a downstream YAML5780 is expected to be truthy5781 when bridge does not define a downstream YAML5782 is expected to be falsey5783 #yaml_for_downstream5784 when bridge defines a downstream YAML5785 is expected to eq "---\ninclude: path/to/child.yml\n"5786 when bridge does not define a downstream YAML5787 is expected to be nil5788 #target_ref5789 when trigger is defined5790 returns a ref name5791 when using variable expansion5792 correctly expands variables5793 when trigger does not have project defined5794 returns nil5795 #play5796 enqueues the bridge5797 #playable?5798 when bridge is a manual action5799 is expected to be truthy5800 when build is not a manual action5801 is expected to be falsey5802 #action?5803 when bridge is a manual action5804 is expected to be truthy5805 when build is not a manual action5806 is expected to be falsey5807 #dependency_variables5808 when downloading from previous stages5809 inherits only dependent variables5810 when using needs5811 inherits only needs with artifacts variables5812Members::ApproveAccessRequestService5813 when an access requester is found5814 when current user is nil5815 and :ldap option is not given5816 behaves like a service raising Gitlab::Access::AccessDeniedError5817 raises Gitlab::Access::AccessDeniedError5818 behaves like a service raising Gitlab::Access::AccessDeniedError5819 raises Gitlab::Access::AccessDeniedError5820 and :skip_authorization option is false5821 behaves like a service raising Gitlab::Access::AccessDeniedError5822 raises Gitlab::Access::AccessDeniedError5823 behaves like a service raising Gitlab::Access::AccessDeniedError5824 raises Gitlab::Access::AccessDeniedError5825 and :skip_authorization option is true5826 behaves like a service approving an access request5827 succeeds5828 returns a <Source>Member5829 with a custom access level5830 returns a ProjectMember with the custom access level5831 behaves like a service approving an access request5832 succeeds5833 returns a <Source>Member5834 with a custom access level5835 returns a ProjectMember with the custom access level5836 when current user cannot approve access request to the project5837 behaves like a service raising Gitlab::Access::AccessDeniedError5838 raises Gitlab::Access::AccessDeniedError5839 behaves like a service raising Gitlab::Access::AccessDeniedError5840 raises Gitlab::Access::AccessDeniedError5841 when current user can approve access request to the project5842 behaves like a service approving an access request5843 succeeds5844 returns a <Source>Member5845 with a custom access level5846 returns a ProjectMember with the custom access level5847 behaves like a service approving an access request5848 succeeds5849 returns a <Source>Member5850 with a custom access level5851 returns a ProjectMember with the custom access level5852 in a project5853 maintainers5854 cannot approve the access request of a requester to give them OWNER permissions5855 behaves like a service raising Gitlab::Access::AccessDeniedError5856 raises Gitlab::Access::AccessDeniedError5857 owners5858 can approve the access request of a requester to give them OWNER permissions5859 behaves like a service approving an access request5860 succeeds5861 returns a <Source>Member5862 with a custom access level5863 returns a ProjectMember with the custom access level5864NamespacesHelper5865 #namespaces_as_json5866 returns the user's groups5867 returns the user's namespace5868 #namespaces_options5869 returns only allowed namespaces for user5870 avoids duplicate groups when extra_group is used5871 selects the new group by default5872 falls back to current user selection5873 returns only groups if groups_only option is true5874 when admin mode is enabled5875 returns groups without being a member for admin5876 when admin mode is disabled5877 returns only allowed namespaces for admin5878 when admin mode is disabled5879 selects existing group5880 when nested groups are available5881 includes groups nested in groups the user can administer5882 orders the groups correctly5883 #cascading_namespace_settings_popover_data5884 when locked by an application setting5885 returns expected hash5886 when locked by an ancestor namespace5887 returns expected hash5888 #cascading_namespace_setting_locked?5889 when `group` argument is `nil`5890 returns `false`5891 when `*_locked?` method does not exist5892 returns `false`5893 when `*_locked?` method does exist5894 calls corresponding `*_locked?` method5895 #pipeline_usage_app_data5896 returns a hash with necessary data for the frontend5897Gitlab::UrlBuilder5898 #build5899 delegates to the class method5900 .build5901 factory: :project, path_generator: ->(project) { "/#{project.full_path}" }5902 returns the full URL5903 returns only the path if only_path is given5904 factory: :board, path_generator: ->(board) { "/#{board.project.full_path}/-/boards/#{board.id}" }5905 returns the full URL5906 returns only the path if only_path is given5907 factory: :group_board, path_generator: ->(board) { "/groups/#{board.group.full_path}/-/boards/#{board.id}" }5908 returns the full URL5909 returns only the path if only_path is given5910 factory: :commit, path_generator: ->(commit) { "/#{commit.project.full_path}/-/commit/#{commit.id}" }5911 returns the full URL5912 returns only the path if only_path is given5913 factory: :issue, path_generator: ->(issue) { "/#{issue.project.full_path}/-/issues/#{issue.iid}" }5914 returns the full URL5915 returns only the path if only_path is given5916 factory: [:issue, :task], path_generator: ->(issue) { "/#{issue.project.full_path}/-/work_items/#{issue.id}" }5917 returns the full URL5918 returns only the path if only_path is given5919 factory: :work_item, path_generator: ->(work_item) { "/#{work_item.project.full_path}/-/work_items/#{work_item.id}" }5920 returns the full URL5921 returns only the path if only_path is given5922 factory: :merge_request, path_generator: ->(merge_request) { "/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}" }5923 returns the full URL5924 returns only the path if only_path is given5925 factory: :project_milestone, path_generator: ->(milestone) { "/#{milestone.project.full_path}/-/milestones/#{milestone.iid}" }5926 returns the full URL5927 returns only the path if only_path is given5928 factory: :project_snippet, path_generator: ->(snippet) { "/#{snippet.project.full_path}/-/snippets/#{snippet.id}" }5929 returns the full URL5930 returns only the path if only_path is given5931 factory: :project_wiki, path_generator: ->(wiki) { "/#{wiki.container.full_path}/-/wikis/home" }5932 returns the full URL5933 returns only the path if only_path is given5934 factory: :release, path_generator: ->(release) { "/#{release.project.full_path}/-/releases/#{release.tag}" }5935 returns the full URL5936 returns only the path if only_path is given5937 factory: :ci_build, path_generator: ->(build) { "/#{build.project.full_path}/-/jobs/#{build.id}" }5938 returns the full URL5939 returns only the path if only_path is given5940 factory: :design, path_generator: ->(design) { "/#{design.project.full_path}/-/design_management/designs/#{design.id}/raw_image" }5941 returns the full URL5942 returns only the path if only_path is given5943 factory: :group, path_generator: ->(group) { "/groups/#{group.full_path}" }5944 returns the full URL5945 returns only the path if only_path is given5946 factory: :group_milestone, path_generator: ->(milestone) { "/groups/#{milestone.group.full_path}/-/milestones/#{milestone.iid}" }5947 returns the full URL5948 returns only the path if only_path is given5949 factory: :user, path_generator: ->(user) { "/#{user.full_path}" }5950 returns the full URL5951 returns only the path if only_path is given5952 factory: :personal_snippet, path_generator: ->(snippet) { "/-/snippets/#{snippet.id}" }5953 returns the full URL5954 returns only the path if only_path is given5955 factory: :wiki_page, path_generator: ->(wiki_page) { "#{wiki_page.wiki.wiki_base_path}/#{wiki_page.slug}" }5956 returns the full URL5957 returns only the path if only_path is given5958 factory: :note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }5959 returns the full URL5960 returns only the path if only_path is given5961 factory: :diff_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }5962 returns the full URL5963 returns only the path if only_path is given5964 factory: :discussion_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }5965 returns the full URL5966 returns only the path if only_path is given5967 factory: :legacy_diff_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }5968 returns the full URL5969 returns only the path if only_path is given5970 factory: :note_on_issue, path_generator: ->(note) { "/#{note.project.full_path}/-/issues/#{note.noteable.iid}#note_#{note.id}" }5971 returns the full URL5972 returns only the path if only_path is given5973 factory: :discussion_note_on_issue, path_generator: ->(note) { "/#{note.project.full_path}/-/issues/#{note.noteable.iid}#note_#{note.id}" }5974 returns the full URL5975 returns only the path if only_path is given5976 factory: :note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }5977 returns the full URL5978 returns only the path if only_path is given5979 factory: :diff_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }5980 returns the full URL5981 returns only the path if only_path is given5982 factory: :discussion_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }5983 returns the full URL5984 returns only the path if only_path is given5985 factory: :legacy_diff_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }5986 returns the full URL5987 returns only the path if only_path is given5988 factory: :note_on_project_snippet, path_generator: ->(note) { "/#{note.project.full_path}/-/snippets/#{note.noteable_id}#note_#{note.id}" }5989 returns the full URL5990 returns only the path if only_path is given5991 factory: :discussion_note_on_project_snippet, path_generator: ->(note) { "/#{note.project.full_path}/-/snippets/#{note.noteable_id}#note_#{note.id}" }5992 returns the full URL5993 returns only the path if only_path is given5994 factory: :discussion_note_on_personal_snippet, path_generator: ->(note) { "/-/snippets/#{note.noteable_id}#note_#{note.id}" }5995 returns the full URL5996 returns only the path if only_path is given5997 factory: :note_on_personal_snippet, path_generator: ->(note) { "/-/snippets/#{note.noteable_id}#note_#{note.id}" }5998 returns the full URL5999 returns only the path if only_path is given6000 when work_items feature flag is disabled6001 returns an issue path for an issue of type task6002 when passing a compare6003 returns the full URL6004 returns only the path if only_path is given6005 returns an empty string for missing project6006 when passing a commit without a project6007 returns an empty string6008 when passing a commit note without a project6009 returns an empty string6010 when passing a Snippet6011 for a PersonalSnippet6012 returns a raw snippet URL if requested6013 returns a raw snippet blob URL if requested6014 for a ProjectSnippet6015 returns a raw snippet URL if requested6016 returns a raw snippet blob URL if requested6017 when passing a Wiki6018 #wiki_url6019 uses the default collection action6020 supports a custom collection action6021 #wiki_page_url6022 uses the default member action6023 supports a custom member action6024 when passing a DesignManagement::Design6025 uses the given ref and size in the URL6026 when passing an unsupported class6027 raises an exception6028 when passing a batch loaded model6029 returns the URL for the real object6030Packages::Debian::ExtractMetadataService6031 with invalid6032 behaves like Test Debian ExtractMetadata Service6033 returns file_type :unknown6034 returns architecture nil6035 returns fields nil6036 with source6037 behaves like Test Debian ExtractMetadata Service6038 returns file_type :source6039 returns architecture nil6040 returns fields nil6041 with dsc6042 behaves like Test Debian ExtractMetadata Service6043 returns file_type :dsc6044 returns architecture nil6045 returns fields including {"Binary"=>"sample-dev, libsample0, sample-udeb"}6046 with deb6047 behaves like Test Debian ExtractMetadata Service6048 returns file_type :deb6049 returns architecture "amd64"6050 returns fields including {"Multi-Arch"=>"same"}6051 with udeb6052 behaves like Test Debian ExtractMetadata Service6053 returns file_type :udeb6054 returns architecture "amd64"6055 returns fields including {"Package"=>"sample-udeb"}6056 with buildinfo6057 behaves like Test Debian ExtractMetadata Service6058 returns file_type :buildinfo6059 returns architecture nil6060 returns fields including {"Architecture"=>"amd64 source", "Build-Architecture"=>"amd64"}6061 with changes6062 behaves like Test Debian ExtractMetadata Service6063 returns file_type :changes6064 returns architecture nil6065 returns fields including {"Architecture"=>"source amd64", "Binary"=>"libsample0 sample-dev sample-udeb"}6066 with invalid package file6067 raise error6068Packages::Debian::ProcessChangesWorker6069 #perform6070 with mocked service6071 calls ProcessChangesService6072 with non existing package file6073 returns early without error6074 with nil package file id6075 returns early without error6076 with non existing user6077 returns early without error6078 with nil user id6079 returns early without error6080 when the service raises an error6081 removes package file6082 behaves like an idempotent worker6083 is labeled as idempotent6084 performs multiple times sequentially without raising an exception6085 sets the Debian file type as changes6086GroupProjectsFinder6087 with a group member current user6088 only shared6089 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, and #<Project id:822 namespace762/3>>6090 with ancestor groups projects6091 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, and #<Project id:822 namespace762/3>>6092 with subgroups projects6093 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, and #<Project id:822 namespace762/3>>6094 only owned6095 with subgroups projects6096 is expected to contain exactly #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:825 group436/group437/group438/6>>, and #<Project id:826 group436/group437/group438/7>>6097 with ancestor group projects6098 is expected to contain exactly #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:827 group436/8>>, #<Project id:828 group436/9>>, and #<Project id:829 group436/10>>6099 with ancestor groups and subgroups projects6100 is expected to contain exactly #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:827 group436/8>>, #<Project id:828 group436/9>>, #<Project id:829 group436/10>>, #<Project id:826 group436/group437/group438/7>>, and #<Project id:825 group436/group437/group438/6>>6101 without subgroups and ancestor group projects6102 is expected to contain exactly #<Project id:821 group436/group437/2>> and #<Project id:820 group436/group437/1>>6103 when user is member only of a subgroup6104 with ancestor groups and subgroups projects6105 does not return parent group projects6106 all6107 with subgroups projects6108 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, #<Project id:822 namespace762/3>>, #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:825 group436/group437/group438/6>>, and #<Project id:826 group436/group437/group438/7>>6109 without subgroups projects6110 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, #<Project id:822 namespace762/3>>, #<Project id:821 group436/group437/2>>, and #<Project id:820 group436/group437/1>>6111 with min access level6112 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, #<Project id:822 namespace762/3>>, #<Project id:821 group436/group437/2>>, and #<Project id:820 group436/group437/1>>6113 without group member current_user6114 only shared6115 without external user6116 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, and #<Project id:822 namespace762/3>>6117 with external user6118 is expected to contain exactly #<Project id:823 namespace763/4>> and #<Project id:822 namespace762/3>>6119 only owned6120 without external user6121 with subgroups projects6122 is expected to contain exactly #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:825 group436/group437/group438/6>>, and #<Project id:826 group436/group437/group438/7>>6123 with ancestor groups projects6124 is expected to contain exactly #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:827 group436/8>>, and #<Project id:828 group436/9>>6125 with ancestor groups and subgroups projects6126 is expected to contain exactly #<Project id:821 group436/group437/2>>, #<Project id:820 group436/group437/1>>, #<Project id:828 group436/9>>, #<Project id:827 group436/8>>, #<Project id:826 group436/group437/group438/7>>, and #<Project id:825 group436/group437/group438/6>>6127 without subgroups projects6128 is expected to contain exactly #<Project id:821 group436/group437/2>> and #<Project id:820 group436/group437/1>>6129 with external user6130 with subgroups projects6131 is expected to contain exactly #<Project id:820 group436/group437/1>> and #<Project id:825 group436/group437/group438/6>>6132 with ancestor groups projects6133 is expected to contain exactly #<Project id:820 group436/group437/1>> and #<Project id:827 group436/8>>6134 with ancestor groups and subgroups projects6135 is expected to contain exactly #<Project id:820 group436/group437/1>>, #<Project id:827 group436/8>>, and #<Project id:825 group436/group437/group438/6>>6136 without subgroups projects6137 is expected to eq [#<Project id:820 group436/group437/1>>]6138 all6139 with subgroups projects6140 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, #<Project id:822 namespace762/3>>, #<Project id:820 group436/group437/1>>, and #<Project id:825 group436/group437/group438/6>>6141 without subgroups projects6142 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, #<Project id:822 namespace762/3>>, and #<Project id:820 group436/group437/1>>6143 with an admin current user6144 when admin mode is enabled6145 only shared6146 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, and #<Project id:822 namespace762/3>>6147 only owned6148 is expected to contain exactly #<Project id:821 group436/group437/2>> and #<Project id:820 group436/group437/1>>6149 all6150 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:823 namespace763/4>>, #<Project id:822 namespace762/3>>, #<Project id:821 group436/group437/2>>, and #<Project id:820 group436/group437/1>>6151 when admin mode is disabled6152 only shared6153 is expected to contain exactly #<Project id:824 namespace764/5>> and #<Project id:822 namespace762/3>>6154 only owned6155 is expected to contain exactly #<Project id:820 group436/group437/1>>6156 all6157 is expected to contain exactly #<Project id:824 namespace764/5>>, #<Project id:822 namespace762/3>>, and #<Project id:820 group436/group437/1>>6158 no user6159 only shared6160 is expected to contain exactly #<Project id:824 namespace764/5>> and #<Project id:822 namespace762/3>>6161 only owned6162 with subgroups projects6163 is expected to contain exactly #<Project id:820 group436/group437/1>> and #<Project id:825 group436/group437/group438/6>>6164 without subgroups projects6165 is expected to eq [#<Project id:820 group436/group437/1>>]6166 feature availability6167 without issues and merge request enabled6168 is expected to contain exactly #<Project id:820 group436/group437/1>>, #<Project id:822 namespace762/3>>, #<Project id:824 namespace764/5>>, #<Project id:831 namespace771/9>>, and #<Project id:832 namespace772/10>>6169 with issues enabled6170 is expected to contain exactly #<Project id:820 group436/group437/1>>, #<Project id:822 namespace762/3>>, #<Project id:824 namespace764/5>>, and #<Project id:834 namespace774/10>>6171 with merge request enabled6172 is expected to contain exactly #<Project id:820 group436/group437/1>>, #<Project id:822 namespace762/3>>, #<Project id:824 namespace764/5>>, and #<Project id:835 namespace775/9>>6173 with issues and merge request enabled6174 is expected to contain exactly #<Project id:820 group436/group437/1>>, #<Project id:822 namespace762/3>>, and #<Project id:824 namespace764/5>>6175 limiting6176 without limiting6177 returns all projects6178 with limiting6179 returns only the number of projects specified by the limit6180Resolvers::TodoResolver6181 is expected to have nullable GraphQL type TodoConnection6182 #resolve6183 calls TodosFinder6184 when using no filter6185 returns pending todos6186 when using filters6187 returns the todos for multiple states6188 returns the todos for multiple filters6189 returns the todos for single filter6190 returns the todos for multiple groups6191 returns the todos for multiple authors6192 returns the todos for multiple actions6193 returns the todos for multiple projects6194 when no target is provided6195 returns no todos6196 when target user is not the current user6197 returns no todos6198 when request is for a todo target6199 returns only the todos for the target6200ProjectAPICompatibility6201 converts build_git_strategy=fetch to build_allow_git_fetch=true6202 converts build_git_strategy=clone to build_allow_git_fetch=false6203 #auto_devops_enabled6204 initial: :missing, final: nil6205 sets the correct value6206 initial: :missing, final: false6207 sets the correct value6208 initial: :missing, final: true6209 sets the correct value6210 initial: nil, final: nil6211 sets the correct value6212 initial: nil, final: false6213 sets the correct value6214 initial: nil, final: true6215 sets the correct value6216 initial: false, final: nil6217 sets the correct value6218 initial: false, final: false6219 sets the correct value6220 initial: false, final: true6221 sets the correct value6222 initial: true, final: nil6223 sets the correct value6224 initial: true, final: false6225 sets the correct value6226 initial: true, final: true6227 sets the correct value6228 #auto_devops_deploy_strategy6229 initial: :missing, final: "continuous"6230 sets the correct value6231 initial: :missing, final: "manual"6232 sets the correct value6233 initial: :missing, final: "timed_incremental"6234 sets the correct value6235 initial: "continuous", final: "continuous"6236 sets the correct value6237 initial: "continuous", final: "manual"6238 sets the correct value6239 initial: "continuous", final: "timed_incremental"6240 sets the correct value6241 initial: "manual", final: "continuous"6242 sets the correct value6243 initial: "manual", final: "manual"6244 sets the correct value6245 initial: "manual", final: "timed_incremental"6246 sets the correct value6247 initial: "timed_incremental", final: "continuous"6248 sets the correct value6249 initial: "timed_incremental", final: "manual"6250 sets the correct value6251 initial: "timed_incremental", final: "timed_incremental"6252 sets the correct value6253ProjectStatistics6254 associations6255 is expected to belong to project required: false6256 is expected to belong to namespace required: false6257 scopes6258 .for_project_ids6259 returns only requested projects6260 statistics columns6261 support values up to 8 exabytes6262 namespace relatable columns6263 treats the correct columns as namespace relatable6264 #total_repository_size6265 sums repository and LFS object size6266 #wiki_size6267 is initialized with not null value6268 coerces any nil value to 06269 #snippets_size6270 is initialized with not null value6271 coerces any nil value to 06272 #refresh!6273 without arguments6274 sums all counters6275 when passing an only: argument6276 only updates the given columns6277 without repositories6278 does not crash6279 with deleted repositories6280 does not crash6281 when the column is namespace relatable6282 when arguments are passed6283 schedules the aggregation worker6284 when no argument is passed6285 schedules the aggregation worker6286 when the column is not namespace relatable6287 does not schedules an aggregation worker6288 when the database is read-only6289 does nothing6290 #update_commit_count6291 stores the number of commits in the repository6292 #update_repository_size6293 stores the size of the repository6294 #update_wiki_size6295 stores the size of the wiki6296 #update_snippets_size6297 stores the size of snippets6298 when not all snippets has statistics6299 stores the size of snippets with statistics6300 #update_lfs_objects_size6301 stores the size of related LFS objects6302 #update_uploads_size6303 stores the size of related uploaded files6304 #update_container_registry_size6305 stores the project container registry repositories size6306 handles nil values for the repositories size6307 #update_storage_size6308 sums the relevant storage counters6309 excludes the container_registry_size6310 works during wiki_size backfill6311 when nullable columns are nil6312 does not raise any error6313 .increment_statistic6314 when adjusting :build_artifacts_size6315 behaves like a statistic that increases storage_size asynchronously6316 stores the increment temporarily in Redis6317 schedules a worker to update the statistic and storage_size async6318 when adjusting :pipeline_artifacts_size6319 behaves like a statistic that increases storage_size6320 increases the statistic by that amount6321 increases also storage size by that amount6322 when adjusting :packages_size6323 behaves like a statistic that increases storage_size6324 increases the statistic by that amount6325 increases also storage size by that amount6326 when the amount is 06327 does not execute a query6328 when using an invalid column6329 raises an error6330IncidentManagement::IssuableEscalationStatus6331 is expected to be valid6332 associations6333 is expected to belong to issue required: false6334 is expected to have one project through issue inverse_of => incident_management_issuable_escalation_statuses6335 validatons6336 is expected to validate that :issue cannot be empty/falsy6337 is expected to validate that :issue is case-sensitively unique6338 behaves like a model including Escalatable6339 validations6340 is expected to validate that :status cannot be empty/falsy6341 when status is triggered6342 when resolved_at is blank6343 is expected to be valid6344 when resolved_at is present6345 is expected to be invalid6346 when status is acknowledged6347 when resolved_at is blank6348 is expected to be valid6349 when resolved_at is present6350 is expected to be invalid6351 when status is resolved6352 when resolved_at is blank6353 is expected to be invalid6354 when resolved_at is present6355 is expected to be valid6356 when status is ignored6357 when resolved_at is blank6358 is expected to be valid6359 when resolved_at is present6360 is expected to be invalid6361 scopes6362 .order_status6363 descending6364 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 5, created_at: "2022-06-28 10:43:00.760801000 +00...000 +0000", issue_id: 94, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 3>]6365 ascending6366 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 8, created_at: "2022-06-28 10:43:02.036182000 +00...000 +0000", issue_id: 91, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>]6367 .open6368 is expected to contain exactly #<IncidentManagement::IssuableEscalationStatus id: 6, created_at: "2022-06-28 10:43:01.194298000 +000...8000 +0000", issue_id: 92, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 1> and #<IncidentManagement::IssuableEscalationStatus id: 5, created_at: "2022-06-28 10:43:00.760801000 +000...1000 +0000", issue_id: 91, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>6369 .status_value6370 status: :triggered, status_value: 06371 returns status value by its name6372 status: :acknowledged, status_value: 16373 returns status value by its name6374 status: :resolved, status_value: 26375 returns status value by its name6376 status: :ignored, status_value: 36377 returns status value by its name6378 status: :unknown, status_value: nil6379 returns status value by its name6380 .status_name6381 raw_status: 0, status: :triggered6382 returns status name by its values6383 raw_status: 1, status: :acknowledged6384 returns status name by its values6385 raw_status: 2, status: :resolved6386 returns status name by its values6387 raw_status: 3, status: :ignored6388 returns status name by its values6389 raw_status: -1, status: nil6390 returns status name by its values6391 .open_status?6392 status: :triggered, is_open_status: true6393 returns true when the status is open status6394 status: :acknowledged, is_open_status: true6395 returns true when the status is open status6396 status: :resolved, is_open_status: false6397 returns true when the status is open status6398 status: :ignored, is_open_status: false6399 returns true when the status is open status6400 status: nil, is_open_status: false6401 returns true when the status is open status6402 #trigger6403 when escalatable is in triggered state6404 does not change the escalatable status6405 when escalatable is not in triggered state6406 changes the escalatable status to triggered6407 resets resolved at6408 #acknowledge6409 changes the escalatable status to acknowledged6410 resets ended at6411 #resolve6412 when escalatable is already resolved6413 does not change the escalatable status6414 when escalatable is not resolved6415 changes escalatable status to "resolved"6416 #ignore6417 changes the escalatable status to ignored6418 resets ended at6419 #status_event_for6420 for_status: :triggered, event: :trigger6421 returns event by status name6422 for_status: "triggered", event: :trigger6423 returns event by status name6424 for_status: :acknowledged, event: :acknowledge6425 returns event by status name6426 for_status: "acknowledged", event: :acknowledge6427 returns event by status name6428 for_status: :resolved, event: :resolve6429 returns event by status name6430 for_status: "resolved", event: :resolve6431 returns event by status name6432 for_status: :ignored, event: :ignore6433 returns event by status name6434 for_status: "ignored", event: :ignore6435 returns event by status name6436 for_status: :unknown, event: nil6437 returns event by status name6438 for_status: nil, event: nil6439 returns event by status name6440 for_status: "", event: nil6441 returns event by status name6442 for_status: 1, event: nil6443 returns event by status name6444 #open?6445 returns true when the status is open status6446WebHookService6447 #initialize6448 when SystemHook6449 when local requests are allowed6450 is expected to be truthy6451 when local requests are not allowed6452 is expected to be falsey6453 when ProjectHook6454 when local requests are allowed6455 is expected to be truthy6456 when local requests are not allowed6457 is expected to be falsey6458 #disabled?6459 forced: false, executable: true, disabled: false6460 is expected to have attributes {:disabled? => false}6461 forced: false, executable: false, disabled: true6462 is expected to have attributes {:disabled? => true}6463 forced: true, executable: true, disabled: false6464 is expected to have attributes {:disabled? => false}6465 forced: true, executable: false, disabled: false6466 is expected to have attributes {:disabled? => false}6467 #execute6468 POSTs the data as JSON6469 catches exceptions6470 does not execute disabled hooks6471 executes and registers the hook with the recursion detection6472 blocks and logs if a recursive web hook is detected6473 blocks and logs if the recursion count limit would be exceeded6474 handles exceptions6475 handles 200 status code6476 handles 2xx status codes6477 when token is defined6478 POSTs to the webhook URL6479 when the data is a Gitlab::DataBuilder::Pipeline6480 can log the request payload6481 when auth credentials are present6482 uses the credentials6483 when auth credentials are partial present6484 uses the credentials anyways6485 when url is not encoded6486 handles exceptions6487 when request body size is too big6488 does not perform the request6489 execution logging6490 with success6491 queues LogExecutionWorker correctly6492 queues LogExecutionWorker correctly, resulting in a log record (integration-style test)6493 does not log in the service itself6494 when forced6495 logs execution inline6496 with bad request6497 queues LogExecutionWorker correctly6498 with exception6499 queues LogExecutionWorker correctly6500 with unsafe response body6501 queues LogExecutionWorker with sanitized response_body6502 with oversize response body6503 queues LogExecutionWorker with stripped response_body6504 with massive amount of headers6505 queues LogExecutionWorker with limited amount of headers6506 with oversize header6507 queues LogExecutionWorker with stripped header value6508 with log data exceeding Sidekiq limit6509 queues LogExecutionWorker with request_data overrided in the second attempt6510 new log data still exceeds limit6511 raises an exception6512 #async_execute6513 when rate limiting is not configured6514 queues a worker without tracking the call6515 when rate limiting is configured6516 queues a worker and tracks the call6517 when the hook is throttled (via mock)6518 does not queue a worker and logs an error6519 when the hook is throttled (via Redis)6520 stops queueing workers and logs errors6521 still queues workers for other hooks6522 recursion detection6523 does not queue a worker and logs an error if the call chain limit would be exceeded6524 does not queue a worker and logs an error if a recursive call chain is detected6525 when hook has custom context attributes6526 includes the attributes in the worker context6527Timelog6528 is expected to belong to project required: false6529 is expected to belong to issue required: false6530 is expected to belong to merge_request required: false6531 is expected to be valid6532 is expected to validate that :time_spent cannot be empty/falsy6533 is expected to validate that :user cannot be empty/falsy6534 is expected to validate that the length of :summary is at most 2556535 is expected not to be nil6536 validation6537 is invalid if issue_id and merge_request_id are missing6538 is invalid if issue_id and merge_request_id are set6539 is valid if only issue_id is set6540 is valid if only merge_request_id is set6541 when importing6542 is valid if issue_id and merge_request_id are missing6543 scopes6544 .in_group6545 return timelogs created for group issues and merge requests6546 .for_user6547 return timelogs created by user6548 .in_project6549 returns timelogs created for project issues and merge requests6550 .at_or_after6551 returns timelogs at the time limit6552 returns timelogs after given time6553 .at_or_before6554 returns timelogs at the time limit6555 returns timelogs before given time6556 hooks6557 .set_project6558 populates project with issuable project6559ChronicDurationAttribute6560 when default value is not set6561 behaves like ChronicDurationAttribute reader6562 contains dynamically created reader method6563 outputs chronic duration formatted value6564 when value is set to nil6565 outputs nil6566 behaves like ChronicDurationAttribute writer6567 contains dynamically created writer method6568 parses chronic duration input6569 passes validation6570 when negative input is used6571 doesn't raise exception6572 doesn't change value6573 doesn't pass validation6574 when empty input is used6575 writes default value6576 passes validation6577 when nil input is used6578 writes default value6579 passes validation6580 doesn't raise exception6581 when default value is set6582 behaves like ChronicDurationAttribute reader6583 contains dynamically created reader method6584 outputs chronic duration formatted value6585 when value is set to nil6586 outputs nil6587 behaves like ChronicDurationAttribute writer6588 contains dynamically created writer method6589 parses chronic duration input6590 passes validation6591 when negative input is used6592 doesn't raise exception6593 doesn't change value6594 doesn't pass validation6595 when empty input is used6596 writes default value6597 passes validation6598 when nil input is used6599 writes default value6600 passes validation6601 doesn't raise exception6602ChronicDurationAttribute - reader6603 doesn't contain dynamically created writer method6604 behaves like ChronicDurationAttribute reader6605 contains dynamically created reader method6606 outputs chronic duration formatted value6607 when value is set to nil6608 outputs nil6609Gitlab::Checks::BranchCheck6610 #validate!6611 does not raise any error6612 trying to delete the default branch6613 raises an error6614 prohibited branches check6615 prohibits 40-character hexadecimal branch names6616 doesn't prohibit a nested hexadecimal in a branch name6617 deleting a hexadecimal branch6618 doesn't prohibit the deletion of a hexadecimal branch name6619 protected branches check6620 raises an error if the user is not allowed to do forced pushes to protected branches6621 raises an error if the user is not allowed to merge to protected branches6622 raises an error if the user is not allowed to push to protected branches6623 when user has push access6624 if protected branches is allowed to force push6625 allows force push6626 if protected branches is not allowed to force push6627 prevents force push6628 when user does not have push access6629 if protected branches is allowed to force push6630 prevents force push6631 if protected branches is not allowed to force push6632 prevents force push6633 when project repository is empty6634 user is not allowed to push to protected branches6635 raises an error6636 user is allowed to push to protected branches6637 allows branch creation6638 branch creation6639 user can push to branch6640 does not raise an error6641 user cannot push to branch6642 user cannot merge to branch6643 raises an error6644 user can merge to branch6645 newrev isn't in any protected branches6646 raises an error6647 newrev is included in a protected branch6648 via web interface6649 allows branch creation6650 via SSH6651 raises an error6652 branch deletion6653 if the user is not allowed to delete protected branches6654 raises an error6655 if the user is allowed to delete protected branches6656 through the web interface6657 allows branch deletion6658 over SSH or HTTP6659 raises an error6660Gitlab::Usage::Metrics::Aggregates::Aggregate6661 aggregated_metrics_data6662 allows for YAML aliases in aggregated metrics configs6663 .aggregated_metrics_all_time_data6664 behaves like database_sourced_aggregated_metrics6665 behaves like aggregated_metrics_data6666 no aggregated metric is defined6667 returns empty hash6668 there are aggregated metrics defined6669 with OR operator6670 returns the number of unique events occurred for any metric in aggregate6671 with AND operator6672 returns the number of unique events that occurred for all of metrics in the aggregate6673 hidden behind feature flag6674 does not calculate data for aggregates with ff turned off6675 error handling6676 development and test environment6677 raises error when unknown aggregation operator is used6678 raises error when unknown aggregation source is used6679 raises error when union is missing6680 production6681 rescues unknown aggregation operator error6682 rescues unknown aggregation source error6683 rescues error when union is missing6684 redis sourced aggregated metrics6685 development and test environment6686 raises Gitlab::Usage::Metrics::Aggregates::DisallowedAggregationTimeFrame6687 production env6688 returns fallback value for unsupported time frame6689 .aggregated_metrics_weekly_data6690 behaves like database_sourced_aggregated_metrics6691 behaves like aggregated_metrics_data6692 no aggregated metric is defined6693 returns empty hash6694 there are aggregated metrics defined6695 with OR operator6696 returns the number of unique events occurred for any metric in aggregate6697 with AND operator6698 returns the number of unique events that occurred for all of metrics in the aggregate6699 hidden behind feature flag6700 does not calculate data for aggregates with ff turned off6701 error handling6702 development and test environment6703 raises error when unknown aggregation operator is used6704 raises error when unknown aggregation source is used6705 raises error when union is missing6706 production6707 rescues unknown aggregation operator error6708 rescues unknown aggregation source error6709 rescues error when union is missing6710 behaves like redis_sourced_aggregated_metrics6711 behaves like aggregated_metrics_data6712 no aggregated metric is defined6713 returns empty hash6714 there are aggregated metrics defined6715 with OR operator6716 returns the number of unique events occurred for any metric in aggregate6717 with AND operator6718 returns the number of unique events that occurred for all of metrics in the aggregate6719 hidden behind feature flag6720 does not calculate data for aggregates with ff turned off6721 error handling6722 development and test environment6723 raises error when unknown aggregation operator is used6724 raises error when unknown aggregation source is used6725 raises error when union is missing6726 production6727 rescues unknown aggregation operator error6728 rescues unknown aggregation source error6729 rescues error when union is missing6730 error handling6731 development and test environment6732 re raises Gitlab::UsageDataCounters::HLLRedisCounter::EventError6733 production6734 rescues Gitlab::UsageDataCounters::HLLRedisCounter::EventError6735 .aggregated_metrics_monthly_data6736 behaves like database_sourced_aggregated_metrics6737 behaves like aggregated_metrics_data6738 no aggregated metric is defined6739 returns empty hash6740 there are aggregated metrics defined6741 with OR operator6742 returns the number of unique events occurred for any metric in aggregate6743 with AND operator6744 returns the number of unique events that occurred for all of metrics in the aggregate6745 hidden behind feature flag6746 does not calculate data for aggregates with ff turned off6747 error handling6748 development and test environment6749 raises error when unknown aggregation operator is used6750 raises error when unknown aggregation source is used6751 raises error when union is missing6752 production6753 rescues unknown aggregation operator error6754 rescues unknown aggregation source error6755 rescues error when union is missing6756 behaves like redis_sourced_aggregated_metrics6757 behaves like aggregated_metrics_data6758 no aggregated metric is defined6759 returns empty hash6760 there are aggregated metrics defined6761 with OR operator6762 returns the number of unique events occurred for any metric in aggregate6763 with AND operator6764 returns the number of unique events that occurred for all of metrics in the aggregate6765 hidden behind feature flag6766 does not calculate data for aggregates with ff turned off6767 error handling6768 development and test environment6769 raises error when unknown aggregation operator is used6770 raises error when unknown aggregation source is used6771 raises error when union is missing6772 production6773 rescues unknown aggregation operator error6774 rescues unknown aggregation source error6775 rescues error when union is missing6776 error handling6777 development and test environment6778 re raises Gitlab::UsageDataCounters::HLLRedisCounter::EventError6779 production6780 rescues Gitlab::UsageDataCounters::HLLRedisCounter::EventError6781projects/_home_panel6782 admin area link6783 renders admin area link for admin6784 does not render admin area link for non-admin6785 does not render admin area link for anonymous6786 notifications6787 when user is signed in6788 renders Vue app root6789 when user is signed out6790 does not render Vue app root6791 badges6792 has no badges6793 does not render any badge6794 only has group badges6795 behaves like show badges6796 renders the all badges6797 only has project badges6798 behaves like show badges6799 renders the all badges6800 has both group and project badges6801 behaves like show badges6802 renders the all badges6803 project id6804 user can read project6805 is shown6806 user cannot read project6807 is not shown6808 forks6809 user can read fork source6810 shows the forked-from project6811 user cannot read fork source6812 does not show the forked-from project6813Label6814 modules6815 is expected to includes the Referable module6816 is expected to includes the Subscribable module6817 associations6818 is expected to have many issues through label_links source => target6819 is expected to have many label_links dependent => destroy6820 is expected to have many lists dependent => destroy6821 is expected to have many priorities class_name => LabelPriority6822 validation6823 is expected to validate that :title is case-sensitively unique within the scope of :group_id and :project_id6824 validates color code6825 validates title6826 scopes6827 .on_board6828 returns only the board labels6829 #color6830 strips color6831 uses default color if color is missing6832 #text_color6833 uses default color if color is missing6834 #title6835 sanitizes title6836 strips title6837 #description6838 sanitizes description6839 accepts an empty string6840 priorization6841 #prioritize!6842 when label is not prioritized6843 creates a label priority6844 sets label priority6845 when label is prioritized6846 does not create a label priority6847 updates label priority6848 #unprioritize!6849 removes label priority6850 #priority6851 when label is not prioritized6852 returns nil6853 when label is prioritized6854 returns label priority6855 .search6856 returns labels with a partially matching title6857 returns labels with a partially matching description6858 returns nothing6859 .subscribed_by6860 returns subscribed labels6861 returns nothing6862 .top_labels_by_target6863 returns distinct labels, ordered by usage in the given target relation6864 excludes labels that are not assigned to any records in the given target relation6865 .optionally_subscribed_by6866 returns subscribed labels6867 returns all labels if user_id is nil6868 #templates6869 with invalid template labels6870 returns only valid template labels6871Gitlab::Email::Handler::CreateIssueHandler6872 behaves like reply_processing_shared_examples6873 when the user could not be found6874 raises a UserNotFoundError6875 when the user is not authorized to the project6876 raises a ProjectNotFound6877 when email key6878 matches the new format6879 matches the legacy format6880 doesn't match either format6881 when everything is fine6882 behaves like a new issue6883 creates a new issue6884 creates a new issue with legacy email address6885 behaves like a new issue6886 creates a new issue6887 when the reply is blank6888 creates a new issue6889 when there are quotes in email6890 creates a new issue6891 when all lines of email are quotes6892 creates email with correct body6893 something is wrong6894 raises a RateLimitedService::RateLimitedError6895 when the issue could not be saved6896 raises an InvalidIssueError6897 when we can't find the incoming_email_token6898 raises an UserNotFoundError6899 when project is private6900 raises a ProjectNotFound if the user is not a member6901 when project ID is invalid6902 raises a ProjectNotFound6903Projects::CleanupService6904 .enqueue6905 makes the repository read-only6906 sets the bfg_object_map of the project6907 enqueues a RepositoryCleanupWorker6908 returns success6909 returns an error if making the repository read-only fails6910 returns an error if updating the project fails6911 .cleanup_after6912 sets the repository read-write6913 removes the BFG object map6914 #execute6915 runs the apply_bfg_object_map_stream gitaly RPC6916 runs garbage collection on the repository6917 clears the repository cache6918 removes the object map file6919 makes the repository read-write again6920 raises an error if no object map can be found6921 with a tainted merge request diff6922 removes the tainted commit from the database6923 ignores non-commit responses from Gitaly6924 with a tainted diff note6925 removes the tainted commit from the database6926 removes the highlight cache from redis6927 ignores non-commit responses from Gitaly6928Gitlab::Auth::RequestAuthenticator6929 #user6930 returns sessionless user first6931 returns session user if no sessionless user found6932 returns nil if no user found6933 bubbles up exceptions6934 #can_sign_in_bot?6935 the user is nil6936 is expected not to be can sign in bot nil6937 the user is a bot, but for a web request6938 is expected not to be can sign in bot #<User id: @user525>6939 the user is a regular user, for an API request6940 is expected not to be can sign in bot #<User id: @user526>6941 the user is a project bot, for an API request6942 is expected to be can sign in bot #<User id: @user527>6943 #find_authenticated_requester6944 returns the deploy token if it exists6945 returns the user id if it exists6946 rerturns nil if no match is found6947 #find_sessionless_user6948 returns dependency_proxy user first6949 returns access_token user if no dependency_proxy user found6950 returns feed_token user if no access_token user found6951 returns static_object_token user if no feed_token user found6952 returns job_token user if no static_object_token user found6953 returns nil even if basic_auth_access_token is available6954 returns nil even if find_user_from_lfs_token is available6955 returns nil if no user found6956 rescue Gitlab::Auth::AuthenticationError exceptions6957 in an API request6958 returns basic_auth_access_token user if no job_token_user found6959 in a Git request6960 returns lfs_token user if no job_token user found6961 returns basic_auth_access_token user if no lfs_token user found6962 returns basic_auth_access_password user if no basic_auth_access_token user found6963 returns nil if no user found6964 dependency proxy6965 with a user6966 behaves like identifying dependency proxy urls properly with6967 with pulling a manifest6968 is expected to eq #<User id:1528 @user538>6969 with pulling a blob6970 is expected to eq #<User id:1528 @user538>6971 with any other path6972 is expected to eq nil6973 with an invalid id6974 behaves like identifying dependency proxy urls properly with6975 with pulling a manifest6976 is expected to eq nil6977 with pulling a blob6978 is expected to eq nil6979 with any other path6980 is expected to eq nil6981 with a deploy token6982 behaves like identifying dependency proxy urls properly with6983 with pulling a manifest6984 is expected to eq nil6985 with pulling a blob6986 is expected to eq nil6987 with any other path6988 is expected to eq nil6989 with no jwt token6990 behaves like identifying dependency proxy urls properly with6991 with pulling a manifest6992 is expected to eq nil6993 with pulling a blob6994 is expected to eq nil6995 with any other path6996 is expected to eq nil6997 with an expired jwt token6998 returns nil6999 #find_personal_access_token_from_http_basic_auth7000 with API requests7001 tries to find the user7002 returns nil if the token is revoked7003 returns nil if the token does not have API scope7004 without API requests7005 does not search for job users7006 #find_user_from_job_token7007 with API requests7008 tries to find the user7009 returns nil if the job is not running7010 without API requests7011 does not search for job users7012 #runner7013 returns the runner using #find_runner_from_token7014 returns nil if no runner is found7015 rescue Gitlab::Auth::AuthenticationError exceptions7016 #route_authentication_setting7017 script_name: "/api/endpoint", expected_job_token_allowed: true, expected_basic_auth_personal_access_token: true, expected_deploy_token_allowed: true7018 returns correct settings7019 script_name: "/namespace/project.git", expected_job_token_allowed: false, expected_basic_auth_personal_access_token: true, expected_deploy_token_allowed: true7020 returns correct settings7021 script_name: "/web/endpoint", expected_job_token_allowed: false, expected_basic_auth_personal_access_token: false, expected_deploy_token_allowed: false7022 returns correct settings7023Banzai::Filter::References::ReferenceFilter7024 #each_node7025 iterates over the nodes in a document7026 returns an Enumerator when no block is given7027 skips links with a "gfm" class7028 skips text nodes in pre elements7029 #nodes7030 returns an Array of the HTML nodes7031 #replace_text_when_pattern_matches7032 when node has no reference pattern7033 skips node7034 behaves like replaces document node7035 when parent has only one node7036 behaves like replaces text7037 when content didnt change7038 does not replace link node with html7039 when link node has changed7040 replaces reference node7041 calls replace_and_update_new_nodes7042 stores filtered new nodes7043 when parent has multiple nodes7044 when pattern matches in the first node7045 behaves like replaces text7046 when content didnt change7047 does not replace link node with html7048 when link node has changed7049 replaces reference node7050 calls replace_and_update_new_nodes7051 stores filtered new nodes7052 when pattern matches in the middle node7053 behaves like replaces text7054 when content didnt change7055 does not replace link node with html7056 when link node has changed7057 replaces reference node7058 calls replace_and_update_new_nodes7059 stores filtered new nodes7060 when pattern matches in the last node7061 behaves like replaces text7062 when content didnt change7063 does not replace link node with html7064 when link node has changed7065 replaces reference node7066 calls replace_and_update_new_nodes7067 stores filtered new nodes7068 #replace_link_node_with_text7069 behaves like replaces document node7070 when parent has only one node7071 behaves like replaces text7072 when content didnt change7073 does not replace link node with html7074 when link node has changed7075 replaces reference node7076 calls replace_and_update_new_nodes7077 stores filtered new nodes7078 when parent has multiple nodes7079 when pattern matches in the first node7080 behaves like replaces text7081 when content didnt change7082 does not replace link node with html7083 when link node has changed7084 replaces reference node7085 calls replace_and_update_new_nodes7086 stores filtered new nodes7087 when pattern matches in the middle node7088 behaves like replaces text7089 when content didnt change7090 does not replace link node with html7091 when link node has changed7092 replaces reference node7093 calls replace_and_update_new_nodes7094 stores filtered new nodes7095 when pattern matches in the last node7096 behaves like replaces text7097 when content didnt change7098 does not replace link node with html7099 when link node has changed7100 replaces reference node7101 calls replace_and_update_new_nodes7102 stores filtered new nodes7103 #replace_link_node_with_href7104 behaves like replaces document node7105 when parent has only one node7106 behaves like replaces text7107 when content didnt change7108 does not replace link node with html7109 when link node has changed7110 replaces reference node7111 calls replace_and_update_new_nodes7112 stores filtered new nodes7113 when parent has multiple nodes7114 when pattern matches in the first node7115 behaves like replaces text7116 when content didnt change7117 does not replace link node with html7118 when link node has changed7119 replaces reference node7120 calls replace_and_update_new_nodes7121 stores filtered new nodes7122 when pattern matches in the middle node7123 behaves like replaces text7124 when content didnt change7125 does not replace link node with html7126 when link node has changed7127 replaces reference node7128 calls replace_and_update_new_nodes7129 stores filtered new nodes7130 when pattern matches in the last node7131 behaves like replaces text7132 when content didnt change7133 does not replace link node with html7134 when link node has changed7135 replaces reference node7136 calls replace_and_update_new_nodes7137 stores filtered new nodes7138 #call_and_update_nodes7139 updates all new nodes7140 .call7141 updates all nodes7142 abstract methods7143 #references_in7144 raises NotImplementedError7145 #object_link_filter7146 raises NotImplementedError7147Clusters::Applications::PrometheusUpdateService7148 #execute7149 when prometheus is a Clusters::Integrations::Prometheus7150 raises NotImplementedError7151 when prometheus is externally installed7152 raises NotImplementedError7153 when prometheus is a Clusters::Applications::Prometheus7154 when there are no errors7155 make the application updating7156 updates current config7157 schedules async update status check7158 when k8s cluster communication fails7159 make the application update errored7160 when application cannot be persisted7161 make the application update errored7162Gitlab::GithubImport::Client7163 #parallel?7164 returns true when the client is running in parallel mode7165 returns false when the client is running in sequential mode7166 #user7167 returns the details for the given username7168 #pull_request_reviews7169 returns the pull request reviews7170 #repository7171 returns the details of a repository7172 #pull_request7173 returns the details of a pull_request7174 #labels7175 returns the labels7176 #milestones7177 returns the milestones7178 #releases7179 returns the releases7180 #each_page7181 without a block7182 returns an Enumerator7183 the returned Enumerator returns Page objects7184 with a block7185 yields every retrieved page to the supplied block7186 starts at the given page7187 #with_rate_limit7188 yields the supplied block when enough requests remain7189 waits before yielding if not enough requests remain7190 waits and retries the operation if all requests were consumed in the supplied block7191 increments the request count counter7192 ignores rate limiting when disabled7193 when Faraday error received from octokit7194 when rate_limiting_enabled is true7195 retries on error and succeeds7196 retries and does not succeed7197 when rate_limiting_enabled is false7198 retries on error and succeeds7199 retries and does not succeed7200 #requests_remaining?7201 when default requests limit is set7202 returns true if enough requests remain7203 returns false if not enough requests remain7204 when search requests limit is set7205 returns true if enough requests remain7206 returns false if not enough requests remain7207 #raise_or_wait_for_rate_limit7208 raises RateLimitError when running in parallel mode7209 sleeps when running in sequential mode7210 increments the rate limit counter7211 #remaining_requests7212 returns the number of remaining requests7213 #requests_limit7214 returns requests limit7215 #rate_limit_resets_in7216 returns the number of seconds after which the rate limit is reset7217 #api_endpoint7218 without a custom endpoint configured in Omniauth7219 returns the default API endpoint7220 with a custom endpoint configured in Omniauth7221 returns the custom endpoint7222 #web_endpoint7223 without a custom endpoint configured in Omniauth7224 returns the default web endpoint7225 with a custom endpoint configured in Omniauth7226 returns the custom endpoint7227 #custom_api_endpoint7228 without a custom endpoint7229 returns nil7230 with a custom endpoint7231 returns the API endpoint7232 #default_api_endpoint7233 returns the default API endpoint7234 #verify_ssl7235 without a custom configuration7236 returns true7237 with a custom configuration7238 returns the configured value7239 #github_omniauth_provider7240 without a configured provider7241 returns an empty Hash7242 with a configured provider7243 returns the provider details as a Hash7244 #rate_limiting_enabled?7245 returns true when using GitHub.com7246 returns false for GitHub enterprise installations7247 search7248 #search_repos_by_name7249 searches for repositories based on name7250 when Faraday error received from octokit7251 retries on error and succeeds7252 retries and does not succeed7253 #search_query7254 returns base search query7255 when include_collaborations is true7256 returns search query including users7257 when include_orgs is true7258 returns search query including users7259Gitlab::Redis::Queues7260 .config_file_name7261 when there is no config file anywhere7262 is expected to be nil7263 but resque.yml exists7264 is expected to eq "/tmp/redis_shared_examples20220628-464-fnym5l/config/resque.yml"7265 returns a path that exists7266 and there is a global env override7267 is expected to eq "global override"7268 and there is an instance specific config file7269 is expected to eq "/tmp/redis_shared_examples20220628-464-1rs8h01/config/redis.queues.yml"7270 returns a path that exists7271 and there is a specific env override7272 is expected to eq "instance specific override"7273 .store7274 with old format7275 behaves like redis store7276 instantiates Redis::Store7277 with the namespace7278 uses specified namespace7279 with new format7280 behaves like redis store7281 instantiates Redis::Store7282 with the namespace7283 uses specified namespace7284 .params7285 withstands mutation7286 when url contains unix socket reference7287 with old format7288 returns path key instead7289 with new format7290 returns path key instead7291 when url is host based7292 with old format7293 returns hash with host, port, db, and password7294 with new format7295 rails_env: "development", host: "development-host"7296 returns hash with host, port, db, and password7297 rails_env: "test", host: "test-host"7298 returns hash with host, port, db, and password7299 rails_env: "production", host: "production-host"7300 returns hash with host, port, db, and password7301 .url7302 withstands mutation7303 when yml file with env variable7304 reads redis url from env variable7305 .version7306 returns a version7307 ._raw_config7308 is frozen7309 returns false when the file does not exist7310 returns false when the filename can't be determined7311 .with7312 when running on single-threaded runtime7313 instantiates a connection pool with size 57314 when running on multi-threaded runtime7315 instantiates a connection pool with a size based on the concurrency of the worker7316 when there is no config at all7317 can run an empty block7318 #db7319 with old format7320 returns the correct db7321 with new format7322 returns the correct db7323 #sentinels7324 when sentinels are defined7325 rails_env: "development", hosts: ["development-replica1", "development-replica2"]7326 returns an array of hashes with host and port keys7327 rails_env: "test", hosts: ["test-replica1", "test-replica2"]7328 returns an array of hashes with host and port keys7329 rails_env: "production", hosts: ["production-replica1", "production-replica2"]7330 returns an array of hashes with host and port keys7331 when sentinels are not defined7332 returns nil7333 #sentinels?7334 when sentinels are defined7335 returns true7336 when sentinels are not defined7337 returns false7338 #raw_config_hash7339 returns old-style single url config in a hash7340 #fetch_config7341 returns false when no config file is present7342 returns false when config file is present but has invalid YAML7343 has a value for the legacy default URL7344 #raw_config_hash7345 when the config url is blank7346 has a legacy default URL7347 when the config url is present7348 sets the configured url7349Projects::Settings::DeployKeysPresenter7350 inherits from Gitlab::View::Presenter::Simple7351 deploy key groups7352 with enabled keys7353 returns correct deploy keys7354 with available keys7355 returns correct deploy keys7356 with available project keys7357 returns correct deploy keys7358 with available public keys7359 returns correct deploy keys7360 #enabled_keys7361 returns currently enabled keys7362 does not contain enabled_keys inside available_keys7363 returns the enabled_keys size7364 #available_keys/#available_project_keys7365 returns the current available_keys7366 returns the current available_project_keys7367 returns the available_project_keys size7368 prevent N + 1 queries7369 returns correct counts7370 does not increase the query count7371Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification7372 context and suppress key names7373 .context_key7374 contains class name7375 .suppress_key7376 contains class name7377 when CI and other tables are read in a transaction7378 outside transaction7379 is expected not to raise Exception7380 within Project transaction7381 is expected not to raise Exception7382 within nested Project transaction7383 is expected not to raise Exception7384 outside transaction7385 is expected not to raise Exception7386 within Ci::Pipeline transaction7387 is expected not to raise Exception7388 within nested Ci::Pipeline transaction7389 is expected not to raise Exception7390 when only CI data is modified7391 outside transaction7392 is expected not to raise Exception7393 within Ci::Pipeline transaction7394 is expected not to raise Exception7395 within nested Ci::Pipeline transaction7396 is expected not to raise Exception7397 within Project transaction7398 raises error7399 when other data is modified7400 outside transaction7401 is expected not to raise Exception7402 within Project transaction7403 is expected not to raise Exception7404 within nested Project transaction7405 is expected not to raise Exception7406 within Ci::Pipeline transaction7407 raises error7408 when both CI and other data is modified7409 outside transaction7410 is expected not to raise Exception7411 when data modification happens in a transaction7412 raises error7413 when data modification happens in nested transactions7414 raises error7415 when comments are added to the front of query strings7416 raises error7417 when executing a SELECT FOR UPDATE query7418 outside transaction7419 is expected not to raise Exception7420 when data modification happens in a transaction7421 raises error7422 when the modification is inside a factory save! call7423 does not raise an error7424 when CI association is modified through project7425 outside transaction7426 is expected not to raise Exception7427 within Ci::Pipeline transaction7428 is expected not to raise Exception7429 within nested Ci::Pipeline transaction7430 is expected not to raise Exception7431 within Project transaction7432 raises error7433 .allow_cross_database_modification_within_transaction7434 skips raising error7435 skips raising error on factory creation7436 when some table with a defined schema and another table with undefined gitlab_schema is modified7437 raises an error including including message about undefined schema7438 when execution is rescued with StandardError7439 raises cross-database data modification exception7440 when uniquiness validation is tested7441 does not raise exceptions7442 when doing rollback in a suppressed block7443 does not raise misaligned transactions exception7444Packages::Nuget::ExtractionWorker7445 #perform7446 with valid package file7447 updates package and package file7448 with exisiting package7449 reuses existing package and updates package file7450 with invalid package file id7451 doesn't update package and package file7452 with package file not containing a nuspec file7453 behaves like handling the metadata error7454 updates package status to error7455 with package with an invalid package name7456 behaves like handling the metadata error7457 updates package status to error7458 behaves like handling the metadata error7459 updates package status to error7460 behaves like handling the metadata error7461 updates package status to error7462 behaves like handling the metadata error7463 updates package status to error7464 with package with an invalid package version7465 behaves like handling the metadata error7466 updates package status to error7467 behaves like handling the metadata error7468 updates package status to error7469 behaves like handling the metadata error7470 updates package status to error7471 behaves like handling the metadata error7472 updates package status to error7473 behaves like handling the metadata error7474 updates package status to error7475 behaves like handling the metadata error7476 updates package status to error7477 handles a processing an unaccounted for error7478 behaves like handling the metadata error7479 updates package status to error7480Snippets::DestroyService7481 #execute7482 when snippet is nil7483 returns a ServiceResponse error7484 when ProjectSnippet7485 when user is able to admin_project_snippet7486 behaves like a successful destroy7487 deletes the snippet7488 returns ServiceResponse success7489 behaves like deletes the snippet repository7490 removes the snippet repository7491 when the repository deletion service raises an error7492 behaves like an unsuccessful destroy7493 does not delete the snippet7494 returns ServiceResponse error7495 when a destroy error is raised7496 behaves like an unsuccessful destroy7497 does not delete the snippet7498 returns ServiceResponse error7499 when repository is nil7500 does not schedule anything and return success7501 project statistics7502 updates stats after deletion7503 schedules a namespace statistics update7504 when user is not able to admin_project_snippet7505 behaves like an unsuccessful destroy7506 does not delete the snippet7507 returns ServiceResponse error7508 when PersonalSnippet7509 when user is able to admin_personal_snippet7510 schedules a namespace statistics update7511 behaves like a successful destroy7512 deletes the snippet7513 returns ServiceResponse success7514 behaves like deletes the snippet repository7515 removes the snippet repository7516 when the repository deletion service raises an error7517 behaves like an unsuccessful destroy7518 does not delete the snippet7519 returns ServiceResponse error7520 when a destroy error is raised7521 behaves like an unsuccessful destroy7522 does not delete the snippet7523 returns ServiceResponse error7524 when repository is nil7525 does not schedule anything and return success7526 when user is not able to admin_personal_snippet7527 behaves like an unsuccessful destroy7528 does not delete the snippet7529 returns ServiceResponse error7530 when the repository does not exists7531 does not schedule anything and return success7532Packages::Maven::PackageFinder7533 uses CTE in the query7534 #execute!7535 within the project7536 behaves like handling valid and invalid paths7537 with a valid path7538 is expected to eq #<Packages::Package id: 257, project_id: 1117, created_at: "2022-06-28 10:45:35.012930000 +0000", upd.../app/my-app", version: "1.103-SNAPSHOT", package_type: "maven", creator_id: 1616, status: "default">7539 with an invalid path7540 raises an error7541 with an uninstallable package7542 is expected to raise ActiveRecord::RecordNotFound7543 within a group7544 behaves like handling valid and invalid paths7545 with a valid path7546 is expected to eq #<Packages::Package id: 257, project_id: 1117, created_at: "2022-06-28 10:45:35.012930000 +0000", upd.../app/my-app", version: "1.103-SNAPSHOT", package_type: "maven", creator_id: 1616, status: "default">7547 with an invalid path7548 raises an error7549 with an uninstallable package7550 is expected to raise ActiveRecord::RecordNotFound7551 across all projects7552 raises an error7553 versionless maven-metadata.xml package7554 without order by package file7555 is expected to eq #<Packages::Package id: 263, project_id: 1121, created_at: "2022-06-28 10:45:39.995326838 +0000", upd...26838 +0000", name: "foo", version: nil, package_type: "maven", creator_id: 1623, status: "default">7556 with order by package file7557 is expected to eq #<Packages::Package id: 261, project_id: 1120, created_at: "2022-06-28 10:45:39.575142584 +0000", upd...42584 +0000", name: "foo", version: nil, package_type: "maven", creator_id: 1621, status: "default">7558Gitlab::Search::RecentMergeRequests7559 behaves like search recent items7560 #log_view7561 adds the item to the recent items7562 removes an item when it exceeds the size items_limit7563 expires the items after expires_after7564 does not include results logged for another user7565 #search7566 matches partial text in the item title7567 returns results sorted by recently viewed7568 does not leak items you no longer have access to7569 limits results to 5 items7570ObjectStorage::Config7571 #credentials7572 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}7573 #storage_options7574 is expected to eq {:server_side_encryption=>"AES256", :server_side_encryption_kms_key_id=>"arn:aws:12345"}7575 #enabled?7576 is expected to eq true7577 #bucket7578 is expected to eq "test-bucket"7579 #use_iam_profile7580 is expected to equal false7581 #use_path_style7582 is expected to equal false7583 with unconsolidated settings7584 consolidated_settings? returns false7585 is expected to equal false7586 with consolidated settings7587 consolidated_settings? returns true7588 is expected to equal true7589 with IAM profile configured7590 value: true, expected: true7591 coerces the value to a boolean7592 value: "true", expected: true7593 coerces the value to a boolean7594 value: "yes", expected: true7595 coerces the value to a boolean7596 value: false, expected: false7597 coerces the value to a boolean7598 value: "false", expected: false7599 coerces the value to a boolean7600 value: "no", expected: false7601 coerces the value to a boolean7602 value: nil, expected: false7603 coerces the value to a boolean7604 with path style configured7605 value: true, expected: true7606 coerces the value to a boolean7607 value: "true", expected: true7608 coerces the value to a boolean7609 value: "yes", expected: true7610 coerces the value to a boolean7611 value: false, expected: false7612 coerces the value to a boolean7613 value: "false", expected: false7614 coerces the value to a boolean7615 value: "no", expected: false7616 coerces the value to a boolean7617 value: nil, expected: false7618 coerces the value to a boolean7619 with hostname style access7620 #use_path_style? returns false7621 with AWS credentials7622 is expected to eq "AWS"7623 is expected to equal true7624 is expected to equal false7625 with Google credentials7626 is expected to eq "Google"7627 is expected to equal false7628 is expected to equal true7629 is expected to eq {}7630 with SSE-KMS enabled7631 is expected to equal true7632 is expected to eq "AES256"7633 is expected to eq "arn:aws:12345"7634 is expected to contain exactly "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id"7635 with only server side encryption enabled7636 is expected to equal true7637 is expected to eq "AES256"7638 is expected to be nil7639 is expected to eq {"x-amz-server-side-encryption"=>"AES256"}7640 without encryption enabled7641 is expected to equal false7642 is expected to be nil7643 is expected to be nil7644 is expected to eq {}7645 with object storage disabled7646 is expected to equal false7647Types::IssueType7648 is expected to expose permissions using Types::PermissionTypes::Issue7649 is expected to eq "Issue"7650 is expected to require graphql authorizations :read_issue7651 is expected to include Types::Notes::NoteableInterface7652 is expected to include Types::CurrentUserTodos7653 has specific fields7654 pagination and count7655 when user does not have the permission7656 does not return an error7657 returns no data7658 count7659 returns total count7660 total count does not change between pages7661 pagination7662 returns new ids during pagination7663 issue notes7664 query issue notes7665 when user signed in7666 behaves like does not include private notes7667 does not return private notes7668 when user member of the project7669 behaves like includes private notes7670 returns all notes7671 when user is anonymous7672 behaves like does not include private notes7673 does not return private notes7674 hidden7675 when `ban_user_feature_flag` is enabled7676 when issue is hidden7677 returns `true`7678 when issue is visible7679 returns `false`7680 when `ban_user_feature_flag` is disabled7681 returns `nil`7682 escalation_status7683 is expected to be nil7684 for an incident7685 is expected to be nil7686 with an escalation status record7687 is expected to eq "TRIGGERED"7688WorkItems::TaskListReferenceRemovalService7689 #execute7690 when task mardown spans a single line7691 behaves like successful work item task reference removal service7692 is expected to be success7693 removes the task list item containing the task reference7694 creates system notes7695 when description does not contain a task7696 behaves like failing work item task reference removal service7697 is expected to be error7698 does not change the work item description7699 returns an error message7700 when description reference does not exactly match the task reference7701 behaves like failing work item task reference removal service7702 is expected to be error7703 does not change the work item description7704 returns an error message7705 when task mardown spans multiple lines7706 behaves like successful work item task reference removal service7707 is expected to be success7708 removes the task list item containing the task reference7709 creates system notes7710 when updating the work item fails7711 behaves like failing work item task reference removal service7712 is expected to be error7713 does not change the work item description7714 returns an error message7715 when description is empty7716 behaves like failing work item task reference removal service7717 is expected to be error7718 does not change the work item description7719 returns an error message7720 when line_number_start is lower than 17721 behaves like failing work item task reference removal service7722 is expected to be error7723 does not change the work item description7724 returns an error message7725 when line_number_end is lower than line_number_start7726 behaves like failing work item task reference removal service7727 is expected to be error7728 does not change the work item description7729 returns an error message7730 when lock_version is older than current7731 behaves like failing work item task reference removal service7732 is expected to be error7733 does not change the work item description7734 returns an error message7735 when work item is stale before updating7736 behaves like failing work item task reference removal service7737 is expected to be error7738 does not change the work item description7739 returns an error message7740Gitlab::Redis::Cache7741 .config_file_name7742 when there is no config file anywhere7743 is expected to be nil7744 but resque.yml exists7745 is expected to eq "/tmp/redis_shared_examples20220628-464-1s32n8t/config/resque.yml"7746 returns a path that exists7747 and there is a global env override7748 is expected to eq "global override"7749 and there is an instance specific config file7750 is expected to eq "/tmp/redis_shared_examples20220628-464-14ksf0x/config/redis.cache.yml"7751 returns a path that exists7752 and there is a specific env override7753 is expected to eq "instance specific override"7754 .store7755 with old format7756 behaves like redis store7757 instantiates Redis::Store7758 with the namespace7759 uses specified namespace7760 with new format7761 behaves like redis store7762 instantiates Redis::Store7763 with the namespace7764 uses specified namespace7765 .params7766 withstands mutation7767 when url contains unix socket reference7768 with old format7769 returns path key instead7770 with new format7771 returns path key instead7772 when url is host based7773 with old format7774 returns hash with host, port, db, and password7775 with new format7776 rails_env: "development", host: "development-host"7777 returns hash with host, port, db, and password7778 rails_env: "test", host: "test-host"7779 returns hash with host, port, db, and password7780 rails_env: "production", host: "production-host"7781 returns hash with host, port, db, and password7782 .url7783 withstands mutation7784 when yml file with env variable7785 reads redis url from env variable7786 .version7787 returns a version7788 ._raw_config7789 is frozen7790 returns false when the file does not exist7791 returns false when the filename can't be determined7792 .with7793 when running on single-threaded runtime7794 instantiates a connection pool with size 57795 when running on multi-threaded runtime7796 instantiates a connection pool with a size based on the concurrency of the worker7797 when there is no config at all7798 can run an empty block7799 #db7800 with old format7801 returns the correct db7802 with new format7803 returns the correct db7804 #sentinels7805 when sentinels are defined7806 rails_env: "development", hosts: ["development-replica1", "development-replica2"]7807 returns an array of hashes with host and port keys7808 rails_env: "test", hosts: ["test-replica1", "test-replica2"]7809 returns an array of hashes with host and port keys7810 rails_env: "production", hosts: ["production-replica1", "production-replica2"]7811 returns an array of hashes with host and port keys7812 when sentinels are not defined7813 returns nil7814 #sentinels?7815 when sentinels are defined7816 returns true7817 when sentinels are not defined7818 returns false7819 #raw_config_hash7820 returns old-style single url config in a hash7821 #fetch_config7822 returns false when no config file is present7823 returns false when config file is present but has invalid YAML7824 has a value for the legacy default URL7825 #raw_config_hash7826 has a legacy default URL7827RuboCop::Cop::RSpec::HaveGitlabHttpStatus7828 offenses and autocorrections7829 bad: "have_http_status(:ok)", good: "have_gitlab_http_status(:ok)"7830 registers an offense7831 does not register an offense7832 bad: "have_http_status(204)", good: "have_gitlab_http_status(:no_content)"7833 registers an offense7834 does not register an offense7835 bad: "have_gitlab_http_status(201)", good: "have_gitlab_http_status(:created)"7836 registers an offense7837 does not register an offense7838 bad: "have_http_status(var)", good: "have_gitlab_http_status(var)"7839 registers an offense7840 does not register an offense7841 bad: "have_http_status(:success)", good: "have_gitlab_http_status(:success)"7842 registers an offense7843 does not register an offense7844 bad: "have_http_status(:invalid)", good: "have_gitlab_http_status(:invalid)"7845 registers an offense7846 does not register an offense7847 bad: "expect(response.status).to eq(200)", good: "expect(response).to have_gitlab_http_status(:ok)"7848 registers an offense7849 does not register an offense7850 bad: "expect(response.status).not_to eq(200)", good: "expect(response).not_to have_gitlab_http_status(:ok)"7851 registers an offense7852 does not register an offense7853 partially autocorrects invalid numeric status7854 bad: "have_http_status(-1)", good: "have_gitlab_http_status(-1)"7855 registers an offense7856 does not autocorrect7857 ignore7858 code: "have_http_status"7859 does not register an offense7860 code: "have_http_status { }"7861 does not register an offense7862 code: "have_http_status(200, arg)"7863 does not register an offense7864 code: "have_gitlab_http_status"7865 does not register an offense7866 code: "have_gitlab_http_status { }"7867 does not register an offense7868 code: "have_gitlab_http_status(200, arg)"7869 does not register an offense7870 code: "expect(response.status).to eq(arg)"7871 does not register an offense7872 code: "expect(response.status).to eq(:ok)"7873 does not register an offense7874 code: "expect(response.status).to some_matcher(200)"7875 does not register an offense7876 code: "expect(response.status).not_to eq(arg)"7877 does not register an offense7878 code: "expect(response.status).not_to eq(:ok)"7879 does not register an offense7880 code: "expect(response.status).not_to some_matcher(200)"7881 does not register an offense7882 code: "expect(result.status).to eq(200)"7883 does not register an offense7884 code: "expect(result.status).not_to eq(200)"7885 does not register an offense7886 code: "response = some_assignment\nexpect(response.status).to eq(200)\n"7887 does not register an offense7888 code: "response = some_assignment\nexpect(response.status).not_to eq(200)\n"7889 does not register an offense7890Gitlab::Ci::Config::Normalizer7891 .normalize_jobs7892 with parallel config as integer7893 does not have original job7894 has parallelized jobs7895 sets job instance in options7896 parallelizes jobs with original config7897 when the job is not parallelized7898 returns the same hash7899 when there is a job with a slash in it7900 properly parallelizes job names7901 behaves like parallel dependencies7902 when job has dependencies on parallelized jobs7903 parallelizes dependencies7904 does not include original job name in RSpec::ExampleGroups::GitlabCiConfigNormalizer::NormalizeJobs::WithParallelConfigAsInteger::BehavesLikeParallelDependencies::WhenJobHasDependenciesOnParallelizedJobs::Anonymous7905 when there are dependencies which are both parallelized and not7906 parallelizes dependencies7907 includes the regular job in dependencies7908 behaves like parallel needs7909 when job has needs on parallelized jobs7910 parallelizes needs7911 when there are dependencies which are both parallelized and not7912 parallelizes dependencies7913 includes the regular job in dependencies7914 with parallel matrix config7915 does not have original job7916 sets job instance in options7917 sets job variables7918 parallelizes jobs with original config7919 has parallelized jobs7920 behaves like parallel dependencies7921 when job has dependencies on parallelized jobs7922 parallelizes dependencies7923 does not include original job name in RSpec::ExampleGroups::GitlabCiConfigNormalizer::NormalizeJobs::WithParallelMatrixConfig::BehavesLikeParallelDependencies::WhenJobHasDependenciesOnParallelizedJobs::Anonymous7924 when there are dependencies which are both parallelized and not7925 parallelizes dependencies7926 includes the regular job in dependencies7927 behaves like parallel needs7928 when job has needs on parallelized jobs7929 parallelizes needs7930 when there are dependencies which are both parallelized and not7931 parallelizes dependencies7932 includes the regular job in dependencies7933 when parallel config does not matches a factory7934 does not alter the job config7935 when jobs config is nil7936 is expected to eq {}7937BasePolicy7938 .class_for7939 detects policy class based on the subject ancestors7940 detects policy class for a presented subject7941 uses GlobalPolicy when :global is given7942 read cross project7943 is expected to be allowed :read_cross_project7944 for anonymous7945 is expected to be allowed :read_cross_project7946 when an external authorization service is enabled7947 behaves like admin only access7948 is expected not to be allowed :read_cross_project7949 with an admin7950 allowed when in admin mode7951 prevented when not in admin mode7952 with anonymous7953 is expected not to be allowed :read_cross_project7954 bypassing the session for sessionless login7955 changes from prevented to allowed7956 full private access: read_all_resources7957 behaves like admin only access7958 is expected not to be allowed :read_all_resources7959 with an admin7960 allowed when in admin mode7961 prevented when not in admin mode7962 with anonymous7963 is expected not to be allowed :read_all_resources7964 bypassing the session for sessionless login7965 changes from prevented to allowed7966 full private access: admin_all_resources7967 behaves like admin only access7968 is expected not to be allowed :admin_all_resources7969 with an admin7970 allowed when in admin mode7971 prevented when not in admin mode7972 with anonymous7973 is expected not to be allowed :admin_all_resources7974 bypassing the session for sessionless login7975 changes from prevented to allowed7976 change_repository_storage7977 behaves like admin only access7978 is expected not to be allowed :change_repository_storage7979 with an admin7980 allowed when in admin mode7981 prevented when not in admin mode7982 with anonymous7983 is expected not to be allowed :change_repository_storage7984 bypassing the session for sessionless login7985 changes from prevented to allowed7986Gitlab::Auth::CurrentUserMode7987 when session is available7988 #admin_mode?7989 when the user is a regular user7990 behaves like admin mode cannot be enabled7991 is false by default7992 cannot be enabled with a valid password7993 cannot be enabled with an invalid password7994 cannot be enabled with empty params7995 disable has no effect7996 skipping password validation7997 cannot be enabled with a valid password7998 cannot be enabled with an invalid password7999 bypassing session8000 behaves like admin mode cannot be enabled8001 is false by default8002 cannot be enabled with a valid password8003 cannot be enabled with an invalid password8004 cannot be enabled with empty params8005 disable has no effect8006 skipping password validation8007 cannot be enabled with a valid password8008 cannot be enabled with an invalid password8009 when the user is an admin8010 when admin mode not requested8011 is false by default8012 raises exception if we try to enable it8013 when admin mode requested first8014 is false by default8015 cannot be enabled with an invalid password8016 can be enabled with a valid password8017 can be disabled8018 will expire in the future8019 skipping password validation8020 can be enabled with a valid password8021 can be enabled with an invalid password8022 with two independent sessions8023 cannot be enabled in one and seen in the other8024 bypassing session8025 is active by default8026 enable has no effect8027 disable has no effect8028 #enable_admin_mode!8029 creates a timestamp in the session8030 #disable_admin_mode!8031 sets the session timestamp to nil8032 .with_current_request_admin_mode8033 with a regular user8034 user is not available inside nor outside the yielded block8035 with an admin user8036 admin mode is disabled8037 user is not available inside nor outside the yielded block8038 admin mode is enabled8039 user is available only inside the yielded block8040 when no session available8041 .bypass_session!8042 when providing a block8043 with a regular user8044 admin mode is false8045 with an admin user8046 admin mode is true8047 when not providing a block8048 with a regular user8049 admin mode is false8050 with an admin user8051 admin mode is true8052PagesDomainAcmeOrder8053 .expired8054 returns only expired orders8055 .find_by_domain_and_token8056 domain_name: "test.com", challenge_token: "righttoken", present: true8057 is expected to eq true8058 domain_name: "test.com", challenge_token: "wrongtoken", present: false8059 is expected to eq false8060 domain_name: "test.org", challenge_token: "righttoken", present: false8061 is expected to eq false8062 associations8063 is expected to belong to pages_domain required: false8064 validations8065 is expected to validate that :pages_domain cannot be empty/falsy8066 is expected to validate that :expires_at cannot be empty/falsy8067 is expected to validate that :url cannot be empty/falsy8068 is expected to validate that :challenge_token cannot be empty/falsy8069 is expected to validate that :challenge_file_content cannot be empty/falsy8070 is expected to validate that :private_key cannot be empty/falsy8071Gitlab::Ci::Reports::TestSuite8072 is expected to eq "Rspec"8073 #add_test_case8074 when status of the test case is success8075 stores data correctly8076 when status of the test case is failed8077 stores data correctly8078 when two test cases are added8079 sums up total time8080 #total_count8081 is expected to eq 48082 #total_status8083 when all test cases succeeded8084 is expected to eq "success"8085 when a test case failed8086 is expected to eq "failed"8087 when a test case errored8088 is expected to eq "failed"8089 #with_attachment8090 when test cases do not contain an attachment8091 returns an empty hash8092 when test cases contain an attachment8093 returns failed test cases with attachment8094 #set_suite_error8095 when @suite_error is nil8096 returns message8097 sets the new message8098 when a suite_error has already been set8099 overwrites the existing message8100 #+8101 when adding multiple suites together8102 returns a new test suite8103 returns the suite name8104 returns the sum for total_time8105 merges tests cases hash8106 #sorted8107 when there are multiple failed test cases8108 returns test cases sorted by execution time desc8109 when there are multiple test cases8110 returns test cases sorted by status8111 #error8112 when error test case exists8113 returns all success test cases8114 when error test case do not exist8115 returns nothing8116 #failed8117 when failed test case exists8118 returns all success test cases8119 when failed test case do not exist8120 returns nothing8121 #success8122 when success test case exists8123 returns all success test cases8124 when success test case do not exist8125 returns nothing8126 #skipped8127 when skipped test case exists8128 returns all success test cases8129 when skipped test case do not exist8130 returns nothing8131 #each_test_case8132 yields each test case to given block8133 #error_count8134 when error test case exists8135 returns the count8136 when error test case do not exist8137 returns nothing8138 #failed_count8139 when failed test case exists8140 returns the count8141 when failed test case do not exist8142 returns nothing8143 #success_count8144 when success test case exists8145 returns the count8146 when success test case do not exist8147 returns nothing8148 #skipped_count8149 when skipped test case exists8150 returns the count8151 when skipped test case do not exist8152 returns nothing8153ci/status/_icon8154 when rendering status for build8155 when user has ability to see details8156 has link to build details page8157 when user do not have ability to see build details8158 contains build status text8159 does not contain links8160 when rendering status for external job8161 when user has ability to see commit status details8162 status has external target url8163 contains valid commit status text8164 has link to external status page8165 status do not have external target url8166 contains valid commit status text8167 has link to external status page8168ProjectHook8169 associations8170 is expected to belong to project required: false8171 validations8172 is expected to validate that :project cannot be empty/falsy8173 behaves like includes Limitable concern8174 #exceeds_limits?8175 without plan limits configured8176 is expected to eq false8177 without plan limits configured8178 is expected to eq false8179 with an existing model8180 is expected to eq true8181 validations8182 is expected to be a kind of Limitable8183 without plan limits configured8184 can create new models8185 with plan limits configured8186 can create new models8187 with an existing model8188 cannot create new models exceeding the plan limits8189 .push_hooks8190 returns hooks for push events only8191 .tag_push_hooks8192 returns hooks for tag push events only8193 #parent8194 returns the associated project8195 #application_context8196 includes the type and project8197InviteMembersHelper8198 #common_invite_group_modal_data8199 has expected common attributes8200 when sharing with groups outside the hierarchy is disabled8201 provides the correct attributes8202 when sharing with groups outside the hierarchy is enabled8203 does not return filter attributes8204 #common_invite_modal_dataset8205 has expected common attributes8206 tasks_to_be_done8207 inviting members for tasks8208 open_modal_param_present?: true, logged_in?: true, expected?: true8209 when the source is a project8210 behaves like including the tasks to be done attributes8211 includes the tasks to be done attributes when expected8212 when the source is a group8213 behaves like including the tasks to be done attributes8214 includes the tasks to be done attributes when expected8215 open_modal_param_present?: true, logged_in?: false, expected?: false8216 when the source is a project8217 behaves like including the tasks to be done attributes8218 includes the tasks to be done attributes when expected8219 when the source is a group8220 behaves like including the tasks to be done attributes8221 includes the tasks to be done attributes when expected8222 open_modal_param_present?: false, logged_in?: true, expected?: false8223 when the source is a project8224 behaves like including the tasks to be done attributes8225 includes the tasks to be done attributes when expected8226 when the source is a group8227 behaves like including the tasks to be done attributes8228 includes the tasks to be done attributes when expected8229 open_modal_param_present?: false, logged_in?: false, expected?: false8230 when the source is a project8231 behaves like including the tasks to be done attributes8232 includes the tasks to be done attributes when expected8233 when the source is a group8234 behaves like including the tasks to be done attributes8235 includes the tasks to be done attributes when expected8236 the invite_for_help_continuous_onboarding experiment8237 invite_for_help_continuous_onboarding?: true, logged_in?: true, expected?: true8238 when the source is a project8239 behaves like including the tasks to be done attributes8240 includes the tasks to be done attributes when expected8241 when the source is a group8242 behaves like including the tasks to be done attributes8243 includes the tasks to be done attributes when expected8244 invite_for_help_continuous_onboarding?: true, logged_in?: false, expected?: false8245 when the source is a project8246 behaves like including the tasks to be done attributes8247 includes the tasks to be done attributes when expected8248 when the source is a group8249 behaves like including the tasks to be done attributes8250 includes the tasks to be done attributes when expected8251 invite_for_help_continuous_onboarding?: false, logged_in?: true, expected?: false8252 when the source is a project8253 behaves like including the tasks to be done attributes8254 includes the tasks to be done attributes when expected8255 when the source is a group8256 behaves like including the tasks to be done attributes8257 includes the tasks to be done attributes when expected8258 invite_for_help_continuous_onboarding?: false, logged_in?: false, expected?: false8259 when the source is a project8260 behaves like including the tasks to be done attributes8261 includes the tasks to be done attributes when expected8262 when the source is a group8263 behaves like including the tasks to be done attributes8264 includes the tasks to be done attributes when expected8265 with project8266 #can_invite_members_for_project?8267 when the user can_admin_project_member8268 returns true8269 when the user can not manage project members8270 returns false8271ErrorTracking::IssueUpdateService8272 #execute8273 with authorized user8274 when update_issue returns success8275 returns the response8276 updates any related issue8277 clears the reactive cache8278 with related issue and resolving8279 closes the issue8280 when issue gets closed8281 creates a system note8282 returns a response with closed issue8283 when issue is already closed8284 does not call the close issue service8285 does not create system note8286 when status is not resolving8287 does not call the close issue service8288 does not create system note8289 when update_issue returns error8290 returns the error8291 with integrated error tracking8292 resolves the error and responds with expected format8293 with unauthorized user8294 returns error8295 with error tracking disabled8296 raises error8297Users::RefreshAuthorizedProjectsService8298 #execute8299 refreshes the authorizations using a lease8300 callbacks8301 incorrect_auth_found_callback callback8302 is called8303 missing_auth_found_callback callback8304 is called8305 #execute_without_lease8306 updates the authorized projects of the user8307 sets the access level of a project to the highest available level8308 returns a User8309 #update_authorizations8310 removes authorizations that should be removed8311 inserts authorizations that should be added8312 logs the details of the refresh8313 when there are no rows to add and remove8314 does not change authorizations8315Pajamas::ButtonComponent8316 basic usage8317 renders its content8318 adds default styling8319 button_options8320 are added to the button8321 with custom classes8322 don't conflict with internal button_classes8323 overriding base attributes8324 overrides type8325 button_text_classes8326 is added to the button text8327 disabled8328 by default (false)8329 does not have disabled styling and behavior8330 when set to true8331 has disabled styling and behavior8332 loading8333 by default (false)8334 is not disabled8335 does not render a spinner8336 when set to true8337 is disabled8338 renders a spinner8339 block8340 by default (false)8341 is inline8342 when set to true8343 is block element8344 selected8345 by default (false)8346 does not have selected styling and behavior8347 when set to true8348 has selected styling and behavior8349 category & variant8350 with category variants8351 variant: :default8352 renders the button in correct variant && category8353 variant: :confirm8354 renders the button in correct variant && category8355 variant: :danger8356 renders the button in correct variant && category8357 with non-category variants8358 variant: :dashed8359 renders the button in correct variant && category8360 variant: :link8361 renders the button in correct variant && category8362 variant: :reset8363 renders the button in correct variant && category8364 with primary category8365 variant: :default8366 renders the button in correct variant && category8367 variant: :confirm8368 renders the button in correct variant && category8369 variant: :danger8370 renders the button in correct variant && category8371 size8372 by default (medium)8373 applies medium class8374 when set to small8375 applies the small class to the button8376 icon8377 has none by default8378 with icon8379 renders an icon with custom CSS class8380 with icon only and no content8381 adds a "btn-icon" CSS class8382 with icon only and when loading8383 renders only a loading icon8384 type8385 by default (without href)8386 has type "button"8387 when set to known type8388 type: :button8389 has the correct type8390 type: :reset8391 has the correct type8392 type: :submit8393 has the correct type8394 when set to unkown type8395 has type "button"8396 for links (with href)8397 ignores type8398 link button8399 renders a button tag with type="button" when "href" is not set8400 when "href" is provided8401 renders a link instead of the button8402Packages::TagsFinder8403 #execute8404 is expected to contain exactly #<Packages::Tag id: 1, package_id: 264, name: "tag-1", created_at: "2022-06-28 10:46:47.897018515 +0000", updated_at: "2022-06-28 10:46:47.897018515 +0000"> and #<Packages::Tag id: 2, package_id: 264, name: "tag-2", created_at: "2022-06-28 10:46:47.901932955 +0000", updated_at: "2022-06-28 10:46:47.901932955 +0000">8405 with package type8406 is expected to contain exactly #<Packages::Tag id: 5, package_id: 267, name: "tag-5", created_at: "2022-06-28 10:46:48.619921273 +0000", updated_at: "2022-06-28 10:46:48.619921273 +0000">8407 with blank package type8408 is expected to contain exactly #<Packages::Tag id: 6, package_id: 268, name: "tag-6", created_at: "2022-06-28 10:46:49.027704407 +0000", updated_at: "2022-06-28 10:46:49.027704407 +0000"> and #<Packages::Tag id: 7, package_id: 268, name: "tag-7", created_at: "2022-06-28 10:46:49.034312917 +0000", updated_at: "2022-06-28 10:46:49.034312917 +0000">8409 with nil package type8410 is expected to contain exactly #<Packages::Tag id: 8, package_id: 269, name: "tag-8", created_at: "2022-06-28 10:46:49.597174727 +0000", updated_at: "2022-06-28 10:46:49.597174727 +0000"> and #<Packages::Tag id: 9, package_id: 269, name: "tag-9", created_at: "2022-06-28 10:46:49.604226427 +0000", updated_at: "2022-06-28 10:46:49.604226427 +0000">8411 with unknown package name8412 is expected to be empty8413 #find_by_name8414 is expected to eq #<Packages::Tag id: 12, package_id: 271, name: "tag-12", created_at: "2022-06-28 10:46:50.667336415 +0000", updated_at: "2022-06-28 10:46:50.667336415 +0000">8415 with package type8416 is expected to eq #<Packages::Tag id: 16, package_id: 274, name: "tag-16", created_at: "2022-06-28 10:46:51.815888634 +0000", updated_at: "2022-06-28 10:46:51.815888634 +0000">8417 with unknown tag_name8418 is expected to be nil8419CacheableAttributes8420 .expire8421 wipes the cache8422 .current_without_cache8423 defaults to last8424 can be overridden8425 .cache_key8426 excludes cache attributes8427 .defaults8428 defaults to {}8429 with defaults defined8430 can be overridden8431 .build_from_defaults8432 without any attributes given8433 intializes a new object with the defaults8434 with attributes given8435 intializes a new object with the given attributes merged into the defaults8436 edge cases on concrete implementations8437 .build_from_defaults8438 without any attributes given8439 intializes all attributes even if they are nil8440 .current8441 uses RequestStore in addition to process memory cache8442 redis unavailable8443 in production environment8444 returns an uncached record and logs a warning8445 in other environments8446 returns an uncached record and logs a warning8447 when a record is not yet present8448 does not cache nil object8449 caches non-nil object8450 edge cases8451 caching behavior8452 retrieves upload fields properly8453 retrieves markdown fields properly8454 .cached8455 when cache is cold8456 returns nil8457 when cached is warm8458 retrieves the record from cache8459 #cache!8460 caches the attributes8461 edge cases8462 caches the attributes8463Gitlab::FileFinder8464 #find8465 does not cause N+1 query8466 behaves like file finder8467 finds by path8468 finds by content8469 with inclusive filters8470 filters by filename8471 filters by path8472 filters by extension8473 with exclusive filters8474 filters by filename8475 filters by path8476 filters by extension8477 with white space in the path8478 filters by path correctly8479Gitlab::LegacyGithubImport::BranchFormatter8480 #exists?8481 returns true when branch exists and commit is part of the branch8482 returns false when branch exists and commit is not part of the branch8483 returns false when branch does not exist8484 #repo8485 returns raw repo8486 #sha8487 returns raw sha8488 #valid?8489 returns true when raw sha and ref are present8490 returns false when raw sha is blank8491 returns false when raw ref is blank8492Gitlab::Chat::Output8493 #to_s8494 returns the chat reply as a String8495 without the chat_reply trace section8496 falls back to using the step_script trace section8497 without the step_script trace section8498 falls back to using the build_script trace section8499 without the build_script trace section8500 raises MissingBuildSectionError8501 #without_executed_command_line8502 returns the input without the first line8503 returns an empty String when the input is empty8504 returns an empty String when the input consits of a single newline8505 #find_build_trace_section8506 returns nil when no section could be found8507 returns the trace section when it could be found8508Boards::BoardsFinder8509 #execute8510 when board parent is a project8511 behaves like boards list service8512 does not create a new board8513 returns parent boards8514 behaves like multiple boards list service8515 #execute8516 returns all issue boards8517 returns boards ordered by name8518 when wanting a specific board8519 returns board specified by id8520 raises exception when board is not found8521 when board parent is a group8522 behaves like boards list service8523 does not create a new board8524 returns parent boards8525Gitlab::TaskHelpers8526 #checkout_or_clone_version8527 checkout the version and reset to it8528 accepts clone_opts8529 target_dir doesn't exist8530 clones the repo8531 target_dir exists8532 doesn't clone the repository8533 #clone_repo8534 clones the repo in the target dir8535 accepts clone_opts8536 #checkout_version8537 clones the repo in the target dir8538 #run_command8539 runs command and return the output8540 returns empty string when command doesnt exist8541 #run_command!8542 runs command and return the output8543 returns and exception when command exit with non zero code8544 #get_version8545 version: "1.1.1", result: "v1.1.1"8546 is expected to eq "v1.1.1"8547 version: "master", result: "master"8548 is expected to eq "master"8549 version: "12.4.0-rc7", result: "v12.4.0-rc7"8550 is expected to eq "v12.4.0-rc7"8551 version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", result: "594c3ea3e0e5540e5915bd1c49713a0381459dd6"8552 is expected to eq "594c3ea3e0e5540e5915bd1c49713a0381459dd6"8553Ci::HasRef8554 #branch?8555 is not a tag8556 return true when tag is set to false8557 when it was triggered by merge request8558 returns false8559 is not a tag8560 return false when tag is set to true8561 #git_ref8562 when tag is true8563 returns a tag ref8564 when tag is false8565 returns a branch ref8566 when tag is nil8567 returns a branch ref8568 when it is triggered by a merge request8569 returns nil8570Gitlab::I18n::TranslationEntry8571 #singular_translation8572 returns the normal `msgstr` for translations without plural8573 returns the first string for entries with plurals8574 #all_translations8575 returns all translations for singular translations8576 returns all translations when including plural translations8577 #plural_translations8578 returns all translations if there is only one plural8579 returns all translations except for the first one if there are multiple8580 #has_singular_translation?8581 has a singular when the translation is not pluralized8582 has a singular when plural and singular are separately defined8583 does not have a separate singular if the plural string only has one translation8584 #msgid_contains_newlines8585 is true when the msgid is an array8586 #plural_id_contains_newlines8587 is true when the msgid is an array8588 #translations_contain_newlines8589 is true when the msgid is an array8590 #contains_unescaped_chars8591 is true when the msgid is an array8592 is false when the `%` char is escaped8593 is false when using an unnamed variable8594 is false when using a named variable8595 is true when an unnamed variable is not closed8596 is true when the string starts with a `%`8597 #msgid_contains_unescaped_chars8598 is true when the msgid contains a `%`8599 #plural_id_contains_unescaped_chars8600 is true when the plural msgid contains a `%`8601 #translations_contain_unescaped_chars8602 is true when the translation contains a `%`8603 #msgid_contains_potential_html?8604 when there are no angle brackets in the msgid8605 returns false8606 when there are angle brackets in the msgid8607 returns true8608 #plural_id_contains_potential_html?8609 when there are no angle brackets in the plural_id8610 returns false8611 when there are angle brackets in the plural_id8612 returns true8613 #translations_contain_potential_html?8614 when there are no angle brackets in the translations8615 returns false8616 when there are angle brackets in the translations8617 returns true8618Metrics::Dashboard::Annotations::DeleteService8619 .execute8620 with specific environment8621 with anonymous user8622 behaves like prevented annotation deletion8623 returns error response8624 does not change db state8625 with maintainer user8626 behaves like executed annotation deletion8627 returns success response8628 annotation failed to delete8629 returns error response8630 with specific cluster8631 with anonymous user8632 behaves like prevented annotation deletion8633 returns error response8634 does not change db state8635 with maintainer user8636 behaves like executed annotation deletion8637 returns success response8638 with owner user8639 behaves like executed annotation deletion8640 returns success response8641Gitlab::Git::AttributesParser8642 #attributes8643 using a path with attributes8644 returns the attributes as a Hash8645 returns a Hash containing multiple attributes8646 returns a Hash containing attributes for a file with multiple extensions8647 returns a Hash containing attributes for a file in a directory8648 returns a Hash containing attributes with query string parameters8649 returns a Hash containing the attributes for an absolute path8650 returns a Hash containing the attributes when a pattern is defined using an absolute path8651 returns an empty Hash for a defined path without attributes8652 when the "binary" option is set for a path8653 returns true for the "binary" option8654 returns false for the "diff" option8655 using a path without any attributes8656 returns an empty Hash8657 when attributes data is nil8658 returns an empty Hash8659 when attributes data has binary data8660 returns an empty Hash8661 #patterns8662 parses a file with entries8663 parses an entry that uses a tab to separate the pattern and attributes8664 stores patterns in reverse order8665 ignores any comments and empty lines8666 #parse_attributes8667 parses a boolean attribute8668 parses a negated boolean attribute8669 parses a key-value pair8670 parses multiple attributes8671 parses attributes with query string parameters8672 #each_line8673 iterates over every line in the attributes file8674 does not yield when the attributes file has an unsupported encoding8675Ci::DailyBuildGroupReportResultsFinder8676 #execute8677 when params are provided8678 when current user is not allowed to read data8679 returns an empty collection8680 when current user is allowed to read data8681 returns matching coverages within the given date range8682 when ref_path is nil8683 returns coverages for the default branch8684 when limit is specified8685 returns limited number of matching coverages within the given date range8686 when provided dates are nil8687 returns all coverages from the last 90 days8688layouts/application8689 visual review toolbar8690 ENV['REVIEW_APPS_ENABLED'] is set to true8691 renders the visual review toolbar8692 ENV['REVIEW_APPS_ENABLED'] is set to false8693 does not render the visual review toolbar8694 body data elements for pageview context8695 includes the body element page8696 includes the body element page_type_id8697 includes the body element project_id8698 includes the body element namespace_id8699Ci::ExpirePipelineCacheService8700 #execute8701 invalidates Etag caching for project pipelines path8702 invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch8703 updates the cached status for a project8704 does not do N+1 queries8705 destroyed pipeline8706 clears the cache8707 when the pipeline is triggered by another pipeline8708 updates the cache of dependent pipeline8709 when the pipeline triggered another pipeline8710 updates the cache of dependent pipeline8711Banzai::Filter::EmojiFilter8712 replaces supported name emoji8713 replaces supported unicode emoji8714 ignores unicode versions of trademark, copyright, and registered trademark8715 replaces name versions of trademark, copyright, and registered trademark8716 correctly encodes the URL8717 correctly encodes unicode to the URL8718 matches at the start of a string8719 unicode matches at the start of a string8720 matches at the end of a string8721 unicode matches at the end of a string8722 unicode matches with adjacent text8723 does not match multiple emoji in a row8724 unicode matches multiple emoji in a row8725 mixed matches multiple emoji in a row8726 has a data-name attribute8727 has a data-unicode-version attribute8728 unicode keeps whitespace intact8729 behaves like emoji filter8730 keeps whitespace intact8731 does not match emoji in a string8732 ignores non existent/unsupported emoji8733 matches with adjacent text8734 does not match emoji in a pre tag8735 does not match emoji in code tag8736 does not match emoji in tt tag8737Gitlab::Ci::Config::Entry::Include8738 validations8739 when value is a string8740 is expected to be valid8741 when value is hash8742 when using not allowed keys8743 is expected not to be valid8744 when using "local"8745 is expected to be valid8746 when using "file"8747 is expected to be valid8748 when using "template"8749 is expected to be valid8750 when using "artifact"8751 and specifying "job"8752 is expected to be valid8753 without "job"8754 is expected not to be valid8755 has specific error8756 when using "project"8757 and specifying "ref" and "file"8758 is expected to be valid8759 without "ref"8760 is expected to be valid8761 without "file"8762 is expected not to be valid8763 has specific error8764 when using with "rules"8765 is expected to be valid8766 when rules is not an array of hashes8767 is expected not to be valid8768 has specific error8769 when value is something else8770 is expected not to be valid8771 #value8772 when config is a string8773 is expected to eq "test.yml"8774 when config is a hash8775 is expected to eq {:local=>"test.yml"}8776 when config has "rules"8777 is expected to eq {:local=>"test.yml", :rules=>[{:if=>"$VARIABLE"}]}8778Packages::DependencyLink8779 relationships8780 is expected to belong to package required: false inverse_of => dependency_links8781 is expected to belong to dependency required: false inverse_of => dependency_links8782 is expected to have one nuget_metadatum inverse_of => dependency_link8783 validations8784 is expected to validate that :package cannot be empty/falsy8785 is expected to validate that :dependency cannot be empty/falsy8786 package_id and package_dependency_id uniqueness for dependency_type8787 is not valid8788 with multiple links8789 .with_dependency_type8790 returns links of the given type8791 .for_package8792 returns the link for the given package8793DependencyProxy::FileUploader8794 DependencyProxy::Blob uploader8795 behaves like builds correct paths8796 #store_dir8797 behaves like matches the method pattern8798 is expected to match /\h{2}\/\h{2}/8799 #cache_dir8800 behaves like matches the method pattern8801 is expected to match /\/dependency_proxy\/tmp\/cache/8802 #work_dir8803 behaves like matches the method pattern8804 is expected to match /\/dependency_proxy\/tmp\/work/8805 #upload_path8806 behaves like matches the method pattern8807 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8808 #relative_path8809 is relative (PENDING: Path not set, skipping.)8810 .absolute_path8811 behaves like matches the method pattern8812 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8813 .base_dir8814 behaves like matches the method pattern8815 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8816 path traversal exploits8817 throws an exception8818 object store is remote8819 behaves like builds correct paths8820 #store_dir8821 behaves like matches the method pattern8822 is expected to match /\h{2}\/\h{2}/8823 #cache_dir8824 behaves like matches the method pattern8825 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8826 #work_dir8827 behaves like matches the method pattern8828 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8829 #upload_path8830 behaves like matches the method pattern8831 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8832 #relative_path8833 is relative (PENDING: Path not set, skipping.)8834 .absolute_path8835 behaves like matches the method pattern8836 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8837 .base_dir8838 behaves like matches the method pattern8839 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)8840 path traversal exploits8841 throws an exception8842 DependencyProxy::Manifest uploader8843 will change upload file content type to match the model content type8844Ci::LegacyStagePresenter8845 #latest_ordered_statuses8846 preloads build tags8847 preloads build artifacts archive8848 preloads build artifacts metadata8849 #retried_ordered_statuses8850 preloads build tags8851 preloads build artifacts archive8852 preloads build artifacts metadata8853DeployKeyPolicy8854 updating a deploy_key8855 when a regular user8856 tries to update private deploy key attached to project8857 is expected to be allowed :update_deploy_key8858 tries to update private deploy key attached to other project8859 is expected to be disallowed :update_deploy_key8860 tries to update public deploy key8861 is expected to be disallowed :update_deploy_key8862 when an admin user8863 tries to update private deploy key8864 when admin mode enabled8865 is expected to be allowed :update_deploy_key8866 when admin mode disabled8867 is expected to be disallowed :update_deploy_key8868 when an admin user tries to update public deploy key8869 when admin mode enabled8870 is expected to be allowed :update_deploy_key8871 when admin mode disabled8872 is expected to be disallowed :update_deploy_key8873DesignManagement::Action8874 relations8875 is expected to belong to design required: false8876 is expected to belong to version required: false8877 scopes8878 with 3 designs8879 .most_recent8880 finds the correct version for each design8881 .by_design8882 returns the actions by design_id8883 .with_version8884 preloads the version8885 .by_event8886 returns the actions by event type8887 .up_to_version8888 the version is nil8889 returns all design_versions8890 when given a Version instance8891 the version is the most current8892 is expected to have attributes {:size => 6}8893 the version is the oldest8894 is expected to have attributes {:size => 2}8895 the version is the middle one8896 is expected to have attributes {:size => 4}8897 when given a commit SHA8898 the version is the most current8899 is expected to have attributes {:size => 6}8900 the version is the oldest8901 is expected to have attributes {:size => 2}8902 the version is the middle one8903 is expected to have attributes {:size => 4}8904 when given a String that is not a commit SHA8905 is expected to raise ArgumentError8906WikiPage::Slug8907 Associations8908 is expected to belong to wiki_page_meta required: false8909 refers correctly to the wiki_page_meta8910 scopes8911 canonical8912 there are no slugs8913 is expected to be empty8914 there are some non-canonical slugs8915 is expected to be empty8916 there is at least one canonical slugs8917 is expected not to be empty8918 Validations8919 is expected to validate that :slug is case-sensitively unique within the scope of :wiki_page_meta_id8920 is expected to validate that the length of :slug is at most 20488921 is expected not to allow :slug to be ‹nil›8922 only_one_slug_can_be_canonical_per_meta_record8923 there are no other slugs8924 is expected to be valid8925 the current slug is canonical8926 is expected to be valid8927 there are other slugs, but they are not canonical8928 is expected to be valid8929 the current slug is canonical8930 is expected to be valid8931 there is already a canonical slug8932 is expected to be valid8933 the current slug is canonical8934 is expected not to be valid8935Gitlab::Profiler8936 .profile8937 returns a profile result8938 uses the custom logger given8939 sends a POST request when data is passed8940 uses the private_token for auth if given8941 uses the user for auth if given8942 uses the private_token for auth if both it and user are set8943 with sampling profiler8944 generates sampling data8945 saves sampling data with a randomly-generated filename8946 .create_custom_logger8947 does nothing when nil is passed8948 the new logger8949 does not affect the existing logger8950 strips out the private token8951 tracks model load times by model8952 logs the backtrace, ignoring lines as appropriate8953 .with_custom_logger8954 when the logger is set8955 uses the replacement logger for the duration of the block8956 returns the result of the block8957 when the logger is nil8958 returns the result of the block8959 does not modify the standard Rails loggers8960 .with_user8961 when the user is set8962 overrides auth in ApplicationController to use the given user8963 cleans up ApplicationController afterwards8964 when the user is nil8965 does not define methods on ApplicationController8966 .log_load_times_by_model8967 logs the model, query count, and time by slowest first8968 does nothing when called with a logger that does not have load times8969 .print_by_total_time8970 prints a profile result sorted by total time8971 accepts a max_percent option8972DeployKeysProject8973 Associations8974 is expected to belong to deploy_key required: false8975 is expected to belong to project required: false8976 Validation8977 is expected to validate that :project_id cannot be empty/falsy8978 is expected to validate that :deploy_key cannot be empty/falsy8979 Destroying8980 when the deploy key is only used by this project8981 when the deploy key is public8982 doesn't destroy the deploy key8983 when the deploy key is private8984 destroys the deploy key8985 when the deploy key is used by more than one project8986 doesn't destroy the deploy key8987LabelLink8988 is expected to be valid8989 is expected to belong to label required: false8990 is expected to belong to target required: false8991 behaves like a BulkInsertSafe model8992 when calling class methods directly8993 raises an error when method is not bulk-insert safe8994 does not raise an error when method is bulk-insert safe8995 .bulk_insert!8996 when all items are valid8997 inserts them all8998 returns an empty array8999 when some items are invalid9000 does not insert any of them and raises an error9001 inserts them anyway when bypassing validations9002 .for_target9003 returns the label links for a given target9004MergeRequests::ReloadMergeHeadDiffService9005 #execute9006 creates a merge head diff9007 when merge ref head is not present9008 returns error9009 when failed to create merge head diff9010 returns error9011 when there is existing merge head diff9012 recreates merge head diff9013Gitlab::MailRoom9014 #enabled_configs9015 when both email and address is set9016 returns email configs9017 when the yml file cannot be found9018 returns an empty list9019 when email is disabled9020 returns an empty list9021 when email is enabled but address is not set9022 returns an empty list9023 when a config value is missing from the yml file9024 overwrites missing values with the default9025 when only incoming_email config is present9026 returns only encoming_email9027 setting up redis settings9028 sets delivery method to Sidekiq by default9029 sets redis config9030 setting up the log path9031 if the log path is a relative path9032 expands the log path to an absolute value9033 if the log path is absolute path9034 leaves the path as-is9035 #enabled_mailbox_types9036 when all mailbox types are enabled9037 returns the mailbox types9038 when an mailbox_types is disabled9039 returns the mailbox types9040 when email is disabled9041 returns an empty array9042 #worker_for9043 matched mailbox types9044 returns the constantized worker class9045 non-existing mailbox_type9046 returns nil9047 config/mail_room.yml9048 when delivery_method is implicit9049 behaves like renders mail-specific config file correctly9050 renders mail room config file correctly9051 behaves like renders arbitration options correctly9052 renders arbitration options correctly9053 behaves like renders the sidekiq delivery method and options correctly9054 renders the sidekiq delivery method and options correctly9055 when delivery_method is explicitly sidekiq9056 behaves like renders mail-specific config file correctly9057 renders mail room config file correctly9058 behaves like renders arbitration options correctly9059 renders arbitration options correctly9060 behaves like renders the sidekiq delivery method and options correctly9061 renders the sidekiq delivery method and options correctly9062 when delivery_method is webhook (internally postback in mail_room)9063 renders the webhook (postback) delivery method and options correctly9064 behaves like renders mail-specific config file correctly9065 renders mail room config file correctly9066 behaves like renders arbitration options correctly9067 renders arbitration options correctly9068Gitlab::Metrics::Samplers::PumaSampler9069 behaves like metrics sampler9070 when sampling interval is passed explicitly9071 is expected to eq 429072 when sampling interval is passed through the environment9073 is expected to eq 429074 when no sampling interval is passed anywhere9075 uses the hardcoded default9076 #start9077 calls the sample method on the sampler thread9078 with warmup set to true9079 calls the sample method first on the caller thread9080 #safe_sample9081 calls #sample once9082 when sampling fails with error9083 recovers from errors9084 with logger9085 logs errors9086 #sample9087 in cluster mode9088 samples master statistics9089 samples worker statistics9090 with empty worker stats9091 does not log worker stats9092 in single mode9093 samples worker statistics9094BadgesHelper9095 #gl_badge_tag9096 creates a badge with given text9097 adds style classes9098 adds custom classes9099 applies custom html attributes9100 block content9101 renders block content9102 changes the function signature9103 variants9104 defaults to muted9105 falls back to default given an unknown variant9106 variant: :muted9107 sets the variant class9108 variant: :neutral9109 sets the variant class9110 variant: :info9111 sets the variant class9112 variant: :success9113 sets the variant class9114 variant: :warning9115 sets the variant class9116 variant: :danger9117 sets the variant class9118 sizes9119 defaults to md9120 falls back to default given an unknown size9121 size: :sm9122 sets the size class9123 size: :md9124 sets the size class9125 size: :lg9126 sets the size class9127 icons9128 with text9129 renders an icon9130 adds a spacing class and any custom classes to the icon9131 icon only9132 adds an img role to element9133 adds aria-label to element9134 does not add a spacing class to the icon9135 given an href9136 creates a badge link9137Gitlab::UntrustedRegexp::RubySyntax9138 .matches_syntax?9139 returns true if regexp is valid9140 returns true if regexp is invalid, but resembles regexp9141 .valid?9142 returns true if regexp is valid9143 returns false if regexp is invalid9144 .fabricate9145 when regexp is valid9146 fabricates regexp without flags9147 when regexp is empty9148 fabricates regexp correctly9149 when regexp is a raw pattern9150 returns error9151 .fabricate!9152 safe regexp is used9153 when regexp is using /regexp/ scheme with flags9154 fabricates regexp with a single flag9155 fabricates regexp with multiple flags9156 fabricates regexp without flags9157 when regexp is a raw pattern9158 raises an error9159Gitlab::Database::UnidirectionalCopyTrigger9160 #name9161 when a single column name is given9162 returns the trigger name9163 when multiple column names are given9164 returns the trigger name9165 when a different number of new and old column names are given9166 raises an error9167 #create9168 when a single column name is given9169 creates the trigger and function9170 properly copies the column data using the trigger function9171 when multiple column names are given9172 creates the trigger and function to set all the columns9173 properly copies the columns using the trigger function9174 when a custom trigger name is given9175 creates the trigger and function with the custom name9176 when the trigger function already exists9177 does not raise an error9178 when a different number of new and old column names are given9179 raises an error9180 #drop9181 drops the trigger and function for the given arguments9182 when the trigger does not exist9183 does not raise an error9184Puma9185{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"Puma starting in cluster mode..."}9186{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Puma version: 5.6.2 (ruby 2.7.6-p219) (\"Birdie's Version\")"}9187{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Min threads: 1"}9188{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Max threads: 4"}9189{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Environment: test"}9190{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Master PID: 7213"}9191{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Workers: 1"}9192{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Restarts: (✔) hot (✖) phased"}9193{"timestamp":"2022-06-28T10:48:16.229Z","pid":7213,"message":"* Preloading application"}9194{"timestamp":"2022-06-28T10:48:16.239Z","pid":7213,"message":"* Listening on unix:///builds/gitlab-org/gitlab/tmp/tests/puma.socket"}9195{"timestamp":"2022-06-28T10:48:16.239Z","pid":7213,"message":"Use Ctrl-C to stop"}9196{"timestamp":"2022-06-28T10:48:16.239Z","pid":7213,"message":"! WARNING: Detected running cluster mode with 1 worker."}9197{"timestamp":"2022-06-28T10:48:16.239Z","pid":7213,"message":"! Running Puma in cluster mode with a single worker is often a misconfiguration."}9198{"timestamp":"2022-06-28T10:48:16.239Z","pid":7213,"message":"! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead."}9199{"timestamp":"2022-06-28T10:48:16.239Z","pid":7213,"message":"! Set the `silence_single_worker_warning` option to silence this warning message."}9200{"timestamp":"2022-06-28T10:48:16.240Z","pid":7213,"message":"! Promoting existing objects to old generation..."}9201{"timestamp":"2022-06-28T10:48:16.248Z","pid":7213,"message":"! Compacting..."}9202{"timestamp":"2022-06-28T10:48:16.270Z","pid":7213,"message":"! Friendly fork preparation complete."}9203{"timestamp":"2022-06-28T10:48:16.272Z","pid":7213,"message":"- Worker 0 (PID: 7214) booted in 0.0s, phase: 0"}9204{"timestamp":"2022-06-28T10:48:16.877Z","pid":7213,"message":"- Worker 0 (PID: 7221) booted in 0.0s, phase: 0"}9205 has a worker that self-terminates on signal SIGQUIT9206{"timestamp":"2022-06-28T10:48:17.718Z","pid":7213,"message":"- Worker 0 (PID: 7228) booted in 0.0s, phase: 0"}9207 has a worker that self-terminates on signal SIGTERM9208{"timestamp":"2022-06-28T10:48:18.762Z","pid":7213,"message":"- Worker 0 (PID: 7235) booted in 0.0s, phase: 0"}9209 has a worker that self-terminates on signal SIGKILL9210{"timestamp":"2022-06-28T10:48:18.770Z","pid":7213,"message":"=== puma shutdown: 2022-06-28 10:48:18 +0000 ==="}9211{"timestamp":"2022-06-28T10:48:18.770Z","pid":7213,"message":"- Goodbye!"}9212{"timestamp":"2022-06-28T10:48:18.771Z","pid":7213,"message":"- Gracefully shutting down workers..."}9213Gitlab::Database::Reindexing9214 .invoke9215 cleans up any leftover indexes9216 when there is an error raised9217 logs and re-raise9218 when async index creation is enabled9219 executes async index creation prior to any reindexing actions9220 when async index creation is disabled9221 does not execute async index creation9222 calls automatic reindexing9223 uses all candidate indexes9224 when explicit database is given9225 skips other databases9226 .automatic_reindexing9227 cleans up leftovers, before consuming the queue9228 with records in the queue9229 with enough records in the queue to reach limit9230 does not perform reindexing with heuristic9231 without enough records in the queue to reach limit9232 continues if the queue did not have enough records9233 .perform_with_heuristic9234 delegates to Coordinator9235 .perform_from_queue9236 consumes the queue in order of created_at and applies the limit9237 updates queued action and sets state to done9238 updates queued action upon error and sets state to failed9239 .cleanup_leftovers!9240Skipping ./spec/lib/gitlab/database/reindexing_spec.rb[1:5:1] 'Gitlab::Database::Reindexing.cleanup_leftovers! drops both leftover indexes' because it's flaky.9241 drops both leftover indexes (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)9242Gitlab::GithubImport9243 github.com9244 returns a new Client with a custom token9245 returns a new Client with a token stored in the import data9246 returns the ID of the ghost user9247 caches the ghost user ID9248 GitHub Enterprise9249 returns a new Client with a custom token9250 returns a new Client with a token stored in the import data9251 returns the ID of the ghost user9252 caches the ghost user ID9253 formats the import url9254 .per_page9255 when project group is present9256 when github_importer_lower_per_page_limit is enabled9257 returns lower per page value9258 when github_importer_lower_per_page_limit is disabled9259 returns default per page value9260 when project group is missing9261 returns default per page value9262Resolvers::Crm::ContactsResolver9263 #resolve9264 with unauthorized user9265 does not rise an error and returns no contacts9266 with authorized user9267 does not rise an error and returns all contacts in the correct order9268 without parent9269 returns no contacts9270 with a group parent9271 when no filter is provided9272 returns all the contacts in the correct order9273 when search term is provided9274 returns the correct contacts9275 when state is provided9276 returns the correct contacts9277 when ids are provided9278 returns the correct contacts9279Gitlab::Utils::MimeType9280 .from_io9281 input isn't an IO9282 returns nil9283 input is a file9284 fixture: "banana_sample.gif", mime_type: "image/gif"9285 is expected to eq "image/gif"9286 fixture: "rails_sample.jpg", mime_type: "image/jpeg"9287 is expected to eq "image/jpeg"9288 fixture: "rails_sample.png", mime_type: "image/png"9289 is expected to eq "image/png"9290 fixture: "rails_sample.bmp", mime_type: "image/bmp"9291 is expected to eq "image/bmp"9292 fixture: "rails_sample.tif", mime_type: "image/tiff"9293 is expected to eq "image/tiff"9294 fixture: "sample.ico", mime_type: "image/vnd.microsoft.icon"9295 is expected to eq "image/vnd.microsoft.icon"9296 fixture: "blockquote_fence_before.md", mime_type: "text/plain"9297 is expected to eq "text/plain"9298 fixture: "csv_empty.csv", mime_type: "application/x-empty"9299 is expected to eq "application/x-empty"9300 .from_string9301 input isn't a string9302 returns nil9303 input is a string9304 is expected to eq "text/plain"9305Ci::AuthJobFinder9306 #execute!9307 is expected to eq #<Ci::Build status: "running", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 888, stage_id: 651, tag_list: nil>9308 raises error if the job is not running9309 raises error if the job is erased9310 raises error if the the project is missing9311 raises error if the the project is being removed9312 with wrong job token9313 is expected to be nil9314 #execute9315 when job is not running9316 is expected to be nil9317 when job is running9318 sets ci_job_token_scope on the job user9319Gitlab::SampleDataTemplate9320 .all9321 returns all templates9322 .find9323 when there is a match9324 is expected to be a kind of Gitlab::SampleDataTemplate9325 when there is no match9326 is expected to equal nil9327 .archive_directory9328 is expected to be a kind of Pathname9329 validate all templates9330 sample has a valid archive9331 with valid parameters9332 can be imported9333Branches::DeleteService9334 #execute9335 when user has access to push to repository9336 behaves like a deleted branch9337 removes the branch9338 calls the RefDeleteUnlockArtifactsWorker9339 when Gitlab::Git::CommandError is raised9340 handles and returns error9341 when user does not have access to push to repository9342 does not remove branch9343ErrorTracking::IssueDetailsService9344 #execute9345 with authorized user9346 when issue_details returns a detailed error9347 returns the detailed error9348 returns the gitlab_issue when the error has a sentry_issue9349 returns the gitlab_issue path from sentry when the error has no sentry_issue9350 when issue_details returns nil9351 result is not ready9352 when issue_details returns error9353 returns the error9354 when issue_details returns error with http_status9355 returns the error with correct http_status9356 with integrated error tracking9357 returns the error in detailed format9358 when error does not exist9359 returns the error in detailed format9360 with unauthorized user9361 returns error9362 with error tracking disabled9363 raises error9364Gitlab::Auth::UserAccessDeniedReason9365 #rejection_message9366 when a user is blocked9367 is expected to match /blocked/9368 a user did not accept the enforced terms9369 is expected to match /must accept the Terms of Service/9370 is expected to include "user708"9371 is expected to include "http://localhost"9372 when the user is internal9373 is expected to match /This action cannot be performed by internal users/9374 when the user is deactivated9375 is expected to eq "Your account has been deactivated by your administrator. Please log back in from a web browser to reactivate your account at http://localhost"9376 when the user is unconfirmed9377 is expected to match /Your primary email address is not confirmed/9378 when the user is blocked pending approval9379 is expected to eq "Your account is pending approval from your administrator and hence blocked."9380 when the user has expired password9381 is expected to eq "Your password expired. Please access GitLab from a web browser to update your password."9382ObjectPool::CreateWorker9383 #perform9384 when the pool creation is successful9385 marks the pool as ready9386 when a the pool already exists9387 cleans up the pool9388 when the server raises an unknown error9389 marks the pool as failed9390 when the pool creation failed before9391 deletes the pool first9392Gitlab::LegacyGithubImport::CommentFormatter9393 #attributes9394 when do not reference a portion of the diff9395 returns formatted attributes9396 when on a portion of the diff9397 returns formatted attributes9398 when author is a GitLab user9399 returns GitLab user id associated with GitHub id as author_id9400 returns GitLab user id associated with GitHub email as author_id9401 returns note without created at tag line9402Gitlab::JiraImport::Stage::ImportLabelsWorker9403 modules9404 behaves like include import workers modules9405 is expected to includes the ApplicationWorker module9406 is expected to includes the Gitlab::JiraImport::QueueOptions module9407 is expected to includes the Gitlab::JiraImport::ImportWorker module9408 #perform9409 when import did not start9410 behaves like cannot do Jira import9411 does not advance to next stage9412 behaves like does not advance to next stage9413 does not advance to next stage9414 when import started9415 executes labels importer9416 behaves like advance to next stage9417 advances to issues stage9418Mutations::MergeRequests::SetSubscription9419 is expected to require graphql authorizations :update_subscription9420 when user does not have access to the project9421 behaves like a subscribeable not accessible graphql resource9422 raises an error if the resource is not accessible to the user9423 when user is developer member of the project9424 behaves like a subscribeable graphql resource9425 subscribes to the resource9426 when passing subscribe as false9427 unsubscribes from the discussion9428 when the project is public9429 behaves like a subscribeable graphql resource9430 subscribes to the resource9431 when passing subscribe as false9432 unsubscribes from the discussion9433Gitlab::Ci::Build::Rules::Rule9434 #matches?9435 with one matching clause9436 is expected to eq true9437 with two matching clauses9438 is expected to eq true9439 with a matching and non-matching clause9440 is expected to eq false9441 with two non-matching clauses9442 is expected to eq false9443Gitlab::UsageDataCounters::KubernetesAgentCounter9444 behaves like a redis usage counter9445 .count(gitops_sync)9446 increments the Kubernetes Agent gitops_sync counter by 19447 .read(gitops_sync)9448 returns the total number of gitops_sync events9449 behaves like a redis usage counter with totals9450 totals9451 can report all totals9452 unknown events9453 cannot increment9454 cannot read9455 behaves like a redis usage counter9456 .count(k8s_api_proxy_request)9457 increments the Kubernetes Agent k8s_api_proxy_request counter by 19458 .read(k8s_api_proxy_request)9459 returns the total number of k8s_api_proxy_request events9460 behaves like a redis usage counter with totals9461 totals9462 can report all totals9463 unknown events9464 cannot increment9465 cannot read9466 .increment_event_counts9467 increments the specified counters by the new increment amount9468 event is unknown9469 raises an ArgumentError9470 increment is negative9471 raises an ArgumentError9472Resolvers::IncidentManagement::TimelineEventsResolver9473 is expected to have nullable GraphQL type TimelineEventTypeConnection9474 returns timeline events9475 when user does not have permissions9476 returns no timeline events9477 when resolving a single item9478 when id given9479 returns the timeline event9480Gitlab::VisibilityLevelChecker9481 #level_restricted?9482 when visibility level is allowed9483 returns false with nil for visibility level9484 when visibility level is restricted9485 for public project9486 for non-admin user9487 returns true and visibility name9488 for admin user9489 returns false and a nil visibility level9490 overridden visibility9491 when restricted9492 returns true and visibility name9493 when misspelled9494 returns false with nil for visibility level9495 when import_data is missing9496 returns false with nil for visibility level9497Ci::CreatePipelineService9498 include:9499 with a local file9500 behaves like including the file9501 includes the job in the file9502 with a local file with rules with a project variable9503 when the rules matches9504 behaves like including the file9505 includes the job in the file9506 when the rules does not match9507 behaves like not including the file9508 does not include the job in the file9509 with a local file with rules with a predefined pipeline variable9510 when the rules matches9511 behaves like including the file9512 includes the job in the file9513 when the rules does not match9514 behaves like not including the file9515 does not include the job in the file9516 with a local file with rules with a run pipeline variable9517 when the rules matches9518 behaves like including the file9519 includes the job in the file9520 when the rules does not match9521 behaves like not including the file9522 does not include the job in the file9523UserCustomAttribute9524 assocations9525 is expected to belong to user required: false9526 validations9527 is expected to validate that :user_id cannot be empty/falsy9528 is expected to validate that :key cannot be empty/falsy9529 is expected to validate that :value cannot be empty/falsy9530 is expected to validate that :key is case-sensitively unique within the scope of :user_id9531 scopes9532 .by_user_id9533 is expected to contain exactly #<UserCustomAttribute id: 2, created_at: "2022-06-28 10:49:02.662403044 +0000", updated_at: "2022-06-28 10:49:02.662403044 +0000", user_id: 1915, key: [FILTERED], value: "2022-06-28T10:49:02+00:00">9534 .by_updated_at9535 is expected to contain exactly #<UserCustomAttribute id: 3, created_at: "2022-06-28 10:49:02.874212655 +0000", updated_at: "2022-06-28 10:49:02.874212655 +0000", user_id: 1916, key: [FILTERED], value: "2022-06-28T10:49:02+00:00">9536 .by_key9537 is expected to contain exactly #<UserCustomAttribute id: 4, created_at: "2022-06-28 10:49:03.095236566 +0000", updated_at: "2022-06-28 10:49:03.095236566 +0000", user_id: 1917, key: [FILTERED], value: "2022-06-28T10:49:02+00:00">9538 #upsert_custom_attributes9539 adds arkose data to custom attributes9540PipelineProcessWorker9541 is labeled as idempotent9542 performs multiple times sequentially without raising an exception9543 processes the pipeline9544 #perform9545 when pipeline exists9546 processes pipeline9547 when pipeline does not exist9548 does not raise exception9549ExceedQueryLimitHelpers9550 can count queries9551 can select specific queries9552 can filter specific models9553 can ignore specific queries9554 can perform inclusion and exclusion9555 does not contain marginalia annotations9556 #diff_query_group_message9557 prints a group helpfully9558 #diff_query_counts9559 merges two query counts, showing only diffs9560 can show common queries if so desired9561 #count_queries9562 handles queries with suffixes over multiple lines9563 can aggregate queries9564Ci::VariablesFinder9565 for a project9566 #initialize9567 without key filter9568 raises an error9569 #execute9570 with key filter9571 returns var19572 with key and environment_scope filter9573 returns var29574 for a group9575 #initialize9576 without key filter9577 raises an error9578 #execute9579 with key filter9580 returns var19581 with key and environment_scope filter9582 returns var29583HooksHelper9584 #link_to_test_hook9585 returns project namespaced link9586 returns admin namespaced link9587 #hook_log_path9588 with a project hook9589 returns project-namespaced link9590 with a service hook9591 returns project-namespaced link9592 with a system hook9593 returns admin-namespaced link9594InstanceClusterablePresenter9595 #connect_path9596 is expected to eq "/admin/clusters/connect"9597 #clear_cluster_cache_path9598 is expected to eq "/admin/clusters/46/clear_cache"9599 #metrics_dashboard_path9600 is expected to eq "/admin/clusters/49/metrics_dashboard"9601 #learn_more_link9602 is expected to include "user/instance/clusters/index"9603Resolvers::Ci::ProjectPipelineCountsResolver9604 #resolve9605 counts pipelines9606 counts by ref9607 counts by sha9608 counts by source9609Gitlab::JiraImport::IssueSerializer9610 #execute9611 attributes setting9612 sets the basic attributes9613 creates a hash for valid issue9614 labels9615 creates all missing labels (on project level)9616 when there are no new labels9617 assigns the labels to the Issue hash9618 does not create new labels9619 author9620 when reporter maps to a valid GitLab user9621 sets the issue author to the mapped user9622 when reporter does not map to a valid Gitlab user9623 defaults the issue author to project creator9624 when reporter field is empty9625 defaults the issue author to project creator9626 when reporter field is missing accountId9627 defaults the issue author to project creator9628 assignee9629 when assignee maps to a valid GitLab user9630 sets the issue assignees to the mapped user9631 when assignee does not map to a valid GitLab user9632 leaves the assignee empty9633 when assginee field is empty9634 leaves the assignee empty9635 when assginee field is missing accountId9636 leaves the assignee empty9637 with jira server response9638 when assignee maps to a valid GitLab user9639 sets the issue assignees to the mapped user9640 with done status9641 maps the status to closed9642 without the iid9643 does not set the iid9644Gitlab::HTTPConnectionAdapter9645 #connection9646 with use_read_total_timeout option9647 sets up the connection using the Gitlab::NetHttpAdapter9648 when local requests are allowed9649 sets up the connection9650 when local requests are not allowed9651 sets up the connection9652 when it is a request to local network9653 raises error9654 when local request allowed9655 sets up the connection9656 when it is a request to local address9657 raises error9658 when local request allowed9659 sets up the connection9660 when port different from URL scheme is used9661 sets up the addr_port accordingly9662 when DNS rebinding protection is disabled9663 sets up the connection9664 when http(s) environment variable is set9665 sets up the connection9666GpgKeys::DestroyService9667 destroys the GPG key9668Groups::ProjectsRequiringAuthorizationsRefresh::OnTransferFinder9669 #execute9670 projects requiring authorizations refresh when a group is transferred (here, `Group B`)9671 includes only the expected projects9672Gitlab::Kubernetes::Helm::V2::ResetCommand9673 behaves like helm command generator9674 #generate_script9675 returns appropriate command9676 #pod_name9677 is expected to eq "uninstall-helm"9678 behaves like helm command9679 HELM_VERSION9680 is expected to match /\d+\.\d+\.\d+/9681 #env9682 is expected to be a kind of Hash9683 #rbac?9684 rbac is enabled9685 is expected to be truthy9686 rbac is not enabled9687 is expected to be falsey9688 #pod_resource9689 rbac is enabled9690 is expected to be an instance of Kubeclient::Resource9691 generates a pod that uses the tiller serviceAccountName9692 rbac is not enabled9693 is expected to be an instance of Kubeclient::Resource9694 generates a pod that uses the default serviceAccountName9695 #config_map_resource9696 returns a KubeClient resource with config map content for the application9697 #service_account_resource9698 rbac is enabled9699 generates a Kubeclient resource for the tiller ServiceAccount9700 rbac is not enabled9701 generates nothing9702 #cluster_role_binding_resource9703 rbac is enabled9704 generates a Kubeclient resource for the ClusterRoleBinding for tiller9705 binds the account in #service_account_resource9706 rbac is not enabled9707 generates nothing9708RuboCop::Cop::RSpec::FactoriesInMigrationSpecs9709 behaves like an offensive factory call9710 registers an offense for build(:user)9711 registers an offense for build_list(:user)9712 registers an offense for create(:user)9713 registers an offense for create_list(:user)9714 registers an offense for attributes_for(:user)9715 behaves like an offensive factory call9716 registers an offense for FactoryBot.build(:user)9717 registers an offense for FactoryBot.build_list(:user)9718 registers an offense for FactoryBot.create(:user)9719 registers an offense for FactoryBot.create_list(:user)9720 registers an offense for FactoryBot.attributes_for(:user)9721projects/notes/_more_actions_dropdown9722 shows Report abuse to admin button if not editable and not current users comment9723 does not show the More actions button if not editable and current users comment9724 shows Report abuse to admin and Delete buttons if editable and not current users comment9725 shows Delete button if editable and current users comment9726HashedStorage::ProjectRollbackWorker9727 #perform9728 skips when project no longer exists9729 skips when project is pending delete9730 delegates rollback to service class when have exclusive lease9731 skips when it cant acquire the exclusive lease9732Projects::MoveLfsObjectsProjectsService9733 #execute9734 links the lfs objects from existent in source project9735 does not link existent lfs_object in the current project9736 rollbacks changes if transaction fails9737 when remove_remaining_elements is false9738 does not remove remaining lfs objects9739Gitlab::ImportExport::AttributesFinder9740 #find_root9741 generates hash from project tree config9742 individual scenarios9743 generates the correct hash for a single project relation9744 generates the correct hash for a single project feature relation9745 generates the correct hash for a multiple project relation9746 generates the correct hash for a single sub-relation9747 generates the correct hash for a multiple sub-relation9748 generates the correct hash for a sub-relation with another sub-relation9749 generates the correct hash for a relation with included attributes9750 generates the correct hash for a relation with excluded attributes9751 generates the correct hash for a relation with both excluded and included attributes9752 generates the correct hash for a relation with custom methods9753 #find_relations_tree9754 when initialized with config including tree9755 when relation is in top-level keys of the tree9756 is expected to eq {:issues=>{}}9757 when the relation is not in top-level keys9758 is expected to be nil9759 when tree is not present in config9760 is expected to be nil9761 #find_excluded_keys9762 when initialized with excluded_attributes9763 is expected to eq ["name", "path"]9764 when excluded_attributes are not present in config9765 is expected to eq []9766Gitlab::Graphql::Pagination::ArrayConnection9767 behaves like a connection with collection methods9768 responds to to_a9769 responds to size9770 responds to map9771 responds to include?9772 responds to empty?9773 behaves like a redactable connection9774 no redactor set9775 contains the unwanted item9776 does not redact more than once9777 redactor is set9778 does not contain the unwanted item9779 does not redact more than once9780Integrations::Asana9781 Validations9782 active9783 is expected to validate that :api_key cannot be empty/falsy9784 Execute9785 with restrict_to_branch9786 when ref is in scope of restriced branches9787 calls the Asana integration9788 when ref is not in scope of restricted branches9789 does not call the Asana integration9790 when creating a story9791 calls Asana integration to create a story9792 when creating a story and closing a task9793 calls Asana integration to create a story and close a task9794 when closing via url9795 calls Asana integration to close via url9796 with multiple matches per line9797 allows multiple matches per line9798TriggerVariableEntity9799 exposes the variable key9800 when user has access to the value9801 when user is maintainer9802 exposes the variable value9803 when user is owner9804 exposes the variable value9805 when user does not have access to the value9806 does not expose the variable value9807Gitlab::SnowplowEventDefinitionGenerator9808 Creating event definition file9809 creates CE event definition file using the template9810 generated filename9811 includes timestamp9812 removes special characters9813 cuts name if longer than 100 characters9814 event definition already exists9815 overwrites event definition --force flag set to true9816 raises error when --force flag set to false9817 EE9818 creates EE event definition file using the template9819projects/environments/terminal9820 when environment has external URL9821 shows external URL button9822 when environment does not have external URL9823 shows external URL button9824Users::CreditCardValidation9825 is expected to belong to user required: false9826 is expected to validate that the length of :holder_name is at most 509827 is expected to validate that the length of :network is at most 329828 is expected to validate that :last_digits looks like a number less than or equal to 99999829 .similar_records9830 returns matches with the same last_digits, expiration and network, ordered by credit_card_validated_at9831ErrorTrackingIssueLinkWorker9832 #perform9833 creates a link between an issue and a Sentry issue in Sentry9834 when issue is unavailable9835 behaves like makes no external API requests9836 takes no action9837 when project does not have error tracking configured9838 behaves like makes no external API requests9839 takes no action9840 when the issue is not linked to a Sentry issue in GitLab9841 behaves like makes no external API requests9842 takes no action9843 when Sentry disabled the GitLab integration9844 behaves like attempts to create a link via plugin9845 takes no action9846 when Sentry the GitLab integration is for another project9847 behaves like attempts to create a link via plugin9848 takes no action9849 when Sentry repos request errors9850 falls back to creating a link via plugin9851Resolvers::PaginatedTreeResolver9852 is expected to have nullable GraphQL type TreeConnection9853 #resolve9854 resolves to a collection with a tree object9855 with recursive option9856 resolve to a recursive tree9857 with limited max_page_size9858 resolves to a pagination collection with a tree object9859 when repository does not exist9860 returns nil9861 Cursor pagination9862 returns all tree entries during cursor pagination9863 when cursor is invalid9864 generates an error9865Types::MemberInterface9866 exposes the expected fields9867 .resolve_type9868 for project member9869 is expected to equal Types::ProjectMemberType9870 for group member9871 is expected to equal Types::GroupMemberType9872 for an unkown type9873 raises an error9874 #merge_request_interaction9875 returns the correct type9876 has the correct arguments9877SafeZip::Extract9878 #extract9879 when using valid-simple.zip archive9880 behaves like extracts archive9881 does extract archive9882 when using valid-symlinks-first.zip archive9883 behaves like extracts archive9884 does extract archive9885 when using valid-non-writeable.zip archive9886 behaves like extracts archive9887 does extract archive9888 when using invalid-symlink-does-not-exist.zip archive9889 behaves like fails to extract archive9890 does not extract archive9891 when using invalid-symlinks-outside.zip archive9892 behaves like fails to extract archive9893 does not extract archive9894 when no matching directories are found9895 behaves like fails to extract archive9896 does not extract archive9897layouts/_head9898 escapes HTML-safe strings in page_title9899 escapes HTML-safe strings in page_description9900 escapes HTML-safe strings in page_image9901DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.9902Falling back to an asset that may be in the public folder.9903This behavior is deprecated and will be removed.9904To bypass the asset pipeline and preserve this behavior,9905use the `skip_pipeline: true` option.9906 (called from block in _app_views_layouts__loading_hints_html_haml___1586313164766129317_547175380 at /builds/gitlab-org/gitlab/app/views/layouts/_loading_hints.html.haml:13)9907DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.9908Falling back to an asset that may be in the public folder.9909This behavior is deprecated and will be removed.9910To bypass the asset pipeline and preserve this behavior,9911use the `skip_pipeline: true` option.9912 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:272)9913 adds selected syntax highlight stylesheet9914 when an asset_host is set9915 adds a link dns-prefetch tag9916 adds a link preconnect tag9917 when a Matomo config is set9918 add a Matomo Javascript9919 when matomo_disable_cookies is true9920 disables cookies9921UserProjectAccessChangedService9922 #execute9923 schedules the user IDs9924 permits non-blocking operation9925 permits low-priority operation9926 permits medium-priority operation9927 sets the current caller_id as related_class in the context of all the enqueued jobs9928 with load balancing enabled9929 sticks all the updated users and returns the original result9930 avoids N+1 cached queries9931Packages::Generic::CreatePackageFileService9932 #execute9933 creates package file9934 with a status9935 updates an existing packages status9936 behaves like assigns build to package file9937 with build info9938 assigns the pipeline to the package9939 creates a new PackageFileBuildInfo record9940 with existing package9941 is expected to change `project.package_files.count` by 19942 when duplicates are not allowed9943 does not allow duplicates9944 when the package name matches the exception regex9945 is expected to change `project.package_files.count` by 19946 with multiple files for the same package and the same pipeline9947 creates the build info only once9948projects/settings/integrations/edit9949 is expected not to have text "Recent events"9950 integration using WebHooks9951 is expected to have text "Recent events"9952Gitlab::ImportExport::UploadsRestorer9953 bundle a project Git repo9954 legacy storage9955 saves the uploads successfully9956 copies the uploads to the project path9957 hashed storage9958 saves the uploads successfully9959 copies the uploads to the project path9960Gitlab::Template::GitignoreTemplate9961 .all9962 strips the gitignore suffix9963 combines the globals and rest9964 .find9965 returns nil if the file does not exist9966 returns the Gitignore object of a valid file9967 #content9968 loads the full file9969Gitlab::ProjectTransfer9970 #move_project9971 moves project upload to another namespace9972 #move_namespace9973 when moving namespace from root into another namespace9974 moves namespace projects' upload9975 when moving namespace from one parent to another9976 moves namespace projects' upload9977 when moving namespace from having a parent to root9978 moves namespace projects' upload9979 #rename_project9980 renames project9981 #rename_namespace9982 renames namespace9983Gitlab::Ci::Config::Entry::Inherit::Default9984 validations9985 config: true, valid: true9986 is expected to eq true9987 config: false, valid: true9988 is expected to eq true9989 config: ["image"], valid: true9990 is expected to eq true9991 config: ["unknown"], valid: false9992 is expected to eq false9993 config: [:image], valid: false9994 is expected to eq false9995 config: [true], valid: false9996 is expected to eq false9997 config: "string", valid: false9998 is expected to eq false9999 #inherit?10000 config: true, inherit: true10001 is expected to eq true10002 config: false, inherit: false10003 is expected to eq false10004 config: ["image"], inherit: true10005 is expected to eq true10006 config: ["before_script"], inherit: false10007 is expected to eq false10008Gitlab::SQL::CTE10009 #to_arel10010 when relation is an ActiveRecord::Relation10011 generates an Arel relation for the CTE body10012 when relation is a String10013 generates an Arel relation for the CTE body10014 #alias_to10015 returns an alias for the CTE10016 #apply_to10017 applies a CTE to an ActiveRecord::Relation10018 behaves like CTE with MATERIALIZED keyword examples10019 adding MATERIALIZE to the CTE10020 when PG version is <1210021 does not add MATERIALIZE keyword10022 when PG version is >=1210023 adds MATERIALIZE keyword10024 when version is higher than 1210025 adds MATERIALIZE keyword10026 when materialized is disabled10027 does not add MATERIALIZE keyword10028LfsObjectsProject10029 associations10030 is expected to belong to project required: false10031 is expected to belong to lfs_object required: false10032 validation10033 is expected to validate that :lfs_object_id cannot be empty/falsy10034 is expected to validate that :project_id cannot be empty/falsy10035 validates object id10036 #link_to_project!10037 does not throw error when duplicate exists10038 upserts a new entry and updates the project cache10039 #update_project_statistics10040 updates project statistics when the object is added10041 updates project statistics when the object is removed10042Mutations::Todos::MarkDone10043 is expected to require graphql authorizations :update_todo10044 #resolve10045 marks a single todo as done10046 handles a todo which is already done as expected10047 ignores requests for todos which do not belong to the current user10048HashedStorage::MigratorWorker10049 #perform10050 delegates to MigratorService10051 migrates projects in the specified range10052ProtectedTags::CreateService10053 #execute10054 creates a new protected tag10055 protecting a tag with a name that contains HTML tags10056 creates a new protected tag10057User10058 types consistency checks10059 scopes & predicates10060 .humans10061 includes humans only10062 .bots10063 includes all bots10064 .without_bots10065 includes everyone except bots10066 .bots_without_project_bot10067 includes all bots except project_bot10068 .non_internal10069 includes all non_internal users10070 .without_ghosts10071 includes everyone except ghosts10072 .without_project_bot10073 includes everyone except project_bot10074 #bot?10075 is true for all bot user types and false for others10076 #human?10077 is true for humans only10078 #internal?10079 is true for all internal user types and false for others10080Gitlab::Ci::MaskSecret10081 #mask10082 masks exact number of characters10083 masks multiple occurrences10084 does not mask if not found10085 does support null token10086 does not change a bytesize of a value10087OauthAccessToken10088 returns unique owners10089Projects::FetchStatisticsIncrementService10090 #execute10091 creates a new record for today with count == 110092 doesn't increment previous days statistics10093 when the record already exists for today10094 increments the today record count by 110095GroupImportWorker10096 sidekiq options10097 disables retry10098 disables dead10099 #perform10100 when it succeeds10101 calls the ImportService10102 updates the existing state10103 when it fails10104 raises an exception when params are invalid10105 import state10106 sets the group import status to failed10107Packages::Rubygems::Metadatum10108 relationships10109 is expected to belong to package required: false10110 validations10111 is expected to validate that :package cannot be empty/falsy10112 #rubygems_package_type10113 will not allow a package with a different package_type10114ApplicationSettingPolicy10115 update_runners_registration_token10116 when anonymous10117 is expected not to be allowed :update_runners_registration_token10118 regular user10119 is expected not to be allowed :update_runners_registration_token10120 when external10121 is expected not to be allowed :update_runners_registration_token10122 admin10123 when admin mode is enabled10124 is expected to be allowed :update_runners_registration_token10125 when admin mode is disabled10126 is expected to be disallowed :update_runners_registration_token10127Gitlab::DataBuilder::FeatureFlag10128 .build10129 is expected to be a kind of Hash10130 is expected to eq "feature_flag"10131 contains the correct object attributes10132StatAnchorsHelper10133 #stat_anchor_attrs10134 when anchor is a link10135 returns the proper attributes10136 when anchor is not a link10137 when class_modifier is set10138 returns the proper attributes10139 when class_modifier is not set10140 returns the proper attributes10141 when itemprop is not set10142 returns the itemprop attributes10143 when itemprop is set set10144 returns the itemprop attributes10145 when data is not set10146 returns the data attributes10147 when itemprop is set10148 returns the data attributes10149Gitlab::Auth::Saml::IdentityLinker10150 with valid GitLab initiated request10151 linked identity exists10152 doesn't create new identity10153 sets #changed? to false10154 identity needs to be created10155 creates linked identity10156 sets identity provider10157 sets identity extern_uid10158 sets #changed? to true10159 with identity provider initiated request10160 attempting to link accounts raises an exception10161BulkImports::StuckImportWorker10162 perform10163 updates the status of bulk imports to timeout10164 updates the status of bulk import entities to timeout10165 updates the status of stale entities trackers to timeout10166 does not update the status of non-stale records10167RuboCop::Cop::Style::RegexpLiteralMixedPreserve10168 when EnforcedStyle is set to mixed_preserve10169 a single-line `//` regex without slashes10170 is accepted10171 a single-line `//` regex with slashes10172 registers an offense and corrects10173 when configured to allow inner slashes10174 is accepted10175 a multi-line `//` regex without slashes10176 is accepted10177 a multi-line `//` regex with slashes10178 registers an offense and corrects10179 a single-line %r regex without slashes10180 is accepted10181 a single-line %r regex with slashes10182 is accepted10183 when configured to allow inner slashes10184 is accepted10185 a multi-line %r regex without slashes10186 is accepted10187 a multi-line %r regex with slashes10188 is accepted10189Gitlab::Usage::Metrics::Instrumentations::JiraImportsTotalImportedIssuesCountMetric10190 behaves like a correct instrumented metric value and query10191 behaves like a correct instrumented metric value10192 has correct value10193 behaves like a correct instrumented metric query10194 has correct generate query10195Gitlab::Ci::Build::Artifacts::Adapters::RawStream10196 #initialize10197 when stream is passed10198 initialized10199 when stream is not passed10200 raises an error10201 #each_blob10202 when file is not empty10203 iterates content10204 when file is empty10205 does not iterate content10206Guest10207 .can_pull?10208 when project is private10209 does not allow to pull the repo10210 when project is internal10211 does not allow to pull the repo10212 when project is public10213 when repository is disabled10214 does not allow to pull the repo10215 when repository is accessible only by team members10216 does not allow to pull the repo10217 when repository is enabled10218 allows to pull the repo10219Gitlab::GithubImport::Stage::ImportPullRequestsWorker10220 raises an error10221 #import10222 imports all the pull requests10223Gitlab::Ci::Config::Entry::Release::Assets::Link10224 validation10225 when entry config value is correct10226 #value10227 returns link configuration10228 #valid?10229 is valid10230 when entry value is not correct10231 #errors10232 when name is not a string10233 reports error10234 when name is not present10235 reports error10236 when url is not addressable10237 reports error10238 when url is not present10239 reports error10240 when there is an unknown key present10241 reports error10242Types::Ci::RunnerUpgradeStatusTypeEnum10243 is expected to eq "CiRunnerUpgradeStatusType"10244 exposes all upgrade status values10245StripAttribute10246 .strip_attributes!10247 is expected to respond to #strip_attributes!10248 is expected to include :title10249 #strip_attributes!10250 is expected to eq "8.3"10251Applications::CreateService10252 when scopes are present10253 is expected to change `Doorkeeper::Application.count` by 110254 when scopes are missing10255 is expected not to change `Doorkeeper::Application.count`10256 includes blank scopes error message10257Types::EventType10258 is expected to eq "Event"10259 is expected to require graphql authorizations :read_event10260 is expected to have graphql fields :id, :author, :action, :created_at, and :updated_at10261SidebarsHelper10262 #sidebar_tracking_attributes_by_object10263 when object is a project10264 returns tracking attrs for project10265 when object is a group10266 returns tracking attrs for group10267 when object is a user10268 returns tracking attrs for user10269 when object is something else10270 returns no attributes10271Pages::PageDeletedEvent10272 data: {:project_id=>1, :namespace_id=>2}, valid: true10273 validates data10274 data: {:project_id=>1}, valid: false10275 validates data10276 data: {:namespace_id=>1}, valid: false10277 validates data10278 data: {:project_id=>"foo", :namespace_id=>2}, valid: false10279 validates data10280 data: {:project_id=>1, :namespace_id=>"foo"}, valid: false10281 validates data10282 data: {:project_id=>[], :namespace_id=>2}, valid: false10283 validates data10284 data: {:project_id=>1, :namespace_id=>[]}, valid: false10285 validates data10286 data: {:project_id=>{}, :namespace_id=>2}, valid: false10287 validates data10288 data: {:project_id=>1, :namespace_id=>{}}, valid: false10289 validates data10290 data: "foo", valid: false10291 validates data10292 data: 123, valid: false10293 validates data10294 data: [], valid: false10295 validates data10296Gitlab::Middleware::CompressedJson10297 #call10298 with collector route10299 behaves like decompress middleware10300 replaces input with a decompressed content10301 with no Content-Type10302 behaves like decompress middleware10303 replaces input with a decompressed content10304 with collector route under relative url10305 behaves like decompress middleware10306 replaces input with a decompressed content10307 with some other route10308 keeps the original input10309 payload is too large10310 reads only limited size10311BlameHelper10312 #get_age_map_start_date10313 returns the earliest date from a blame group10314 returns the earliest date from a project10315 #age_map_class10316 returns blame-commit-age-9 when oldest10317 returns blame-commit-age-0 class when newest10318 when called on the same day as project creation10319 returns blame-commit-age-0 class10320global_id10321 prepends `Gitlab::Patch::GlobalId`10322 patches GlobalID to find aliased models when a deprecation exists10323 works as normal when no deprecation exists10324ResetProjectCacheService10325 when project cache_index is nil10326 sets project cache_index to one10327 when project cache_index is a numeric value10328 increments project cache index10329Gitlab::SlashCommands::Presenters::IssueSearch10330 formats the message correct10331 shows a list of results10332PagesDomains::CreateAcmeOrderService10333 saves order to database before requesting validation10334 generates and saves private key: rsa10335 generates and saves private key: ec10336 properly saves order attributes10337 properly saves challenge attributes10338Types::ContainerExpirationPolicyType10339 is expected to eq "ContainerExpirationPolicy"10340 is expected to eq "A tag expiration policy designed to keep only the images that matter most"10341 is expected to require graphql authorizations :admin_container_image10342 older_than field10343 returns older_than enum10344 keep n field10345 returns keep enum10346 name_regex field10347 returns untrusted regexp type10348 name_regex_keep field10349 returns untrusted regexp type10350BulkImports::Projects::Transformers::ProjectAttributesTransformer10351 #transform10352 transforms name to destination name10353 adds path as parameterized name10354 transforms visibility level10355 adds import type10356 converts all keys to symbols10357 namespace_id10358 when destination namespace is present10359 adds namespace_id10360 when destination namespace is blank10361 does not add namespace_id key10362Banzai::Filter::SuggestionFilter10363 includes `js-render-suggestion` class10364 includes no `js-render-suggestion` when filter is disabled10365 multi-line suggestions10366 element has correct data-lang-params10367Mutations::Environments::CanaryIngress::Update10368 #resolve10369 when service execution succeeded10370 returns no errors10371 with certificate_based_clusters disabled10372 returns notice about feature removal10373 when service encounters a problem10374 returns an error10375 when user is reporter who does not have permission to access the environment10376 raises an error10377Gitlab::SlashCommands::Presenters::IssueClose10378 is expected to be a kind of Hash10379 shows the issue10380 confidential issue10381 shows an ephemeral response10382Ci::CreatePipelineService10383 artifacts:10384 reports:10385 with valid config10386 creates pipeline with builds10387 with invalid config10388 creates pipeline with yaml errors10389Gitlab::Audit::DeployTokenAuthor10390 #initialize10391 sets correct attributes10392 sets default name when it is not provided10393SearchServicePresenter10394 #search_objects10395 objects do not respond to eager_load10396 users scope10397 does not eager load anything10398 #show_results_status?10399 with_count: true, show_snippets: true, show_sort_dropdown: true, result: true10400 is expected to eq true10401 with_count: false, show_snippets: true, show_sort_dropdown: false, result: true10402 is expected to eq true10403 with_count: false, show_snippets: false, show_sort_dropdown: true, result: true10404 is expected to eq true10405 with_count: false, show_snippets: false, show_sort_dropdown: false, result: false10406 is expected to eq false10407Gitlab::AssetProxy10408 when asset proxy is disabled10409 returns the original URL10410 when asset proxy is enabled10411 returns a proxied URL10412 returns original URL for invalid domains10413 whitelisted domain10414 returns original URL for single domain whitelist10415 returns original URL for wildcard subdomain whitelist10416Types::CustomEmojiType10417 is expected to eq "CustomEmoji"10418 is expected to require graphql authorizations :read_custom_emoji10419 is expected to have graphql fields :id, :name, :url, and :external10420Backup::Task10421 #dump10422 must be implemented by the subclass10423 #restore10424 must be implemented by the subclass10425Gitlab::Ci::Status::Running10426 #text10427 is expected to eq "running"10428 #label10429 is expected to eq "running"10430 #icon10431 is expected to eq "status_running"10432 #favicon10433 is expected to eq "favicon_status_running"10434 #group10435 is expected to eq "running"10436 #details_path10437 is expected to be nil10438projects/settings/operations/show10439 Operations > Alerts10440 renders the Operations Settings page10441 Operations > Error Tracking10442 Settings page10443 renders the Operations Settings page10444Terraform::ModulesPresenter10445 #modules10446 is expected to be a kind of Array10447 is expected to be a kind of Hash10448 is expected to match schema "public_api/v4/packages/terraform/modules/v1/modules"10449MailScheduler::NotificationServiceWorker10450 #perform10451 deserializes arguments from global IDs10452 when the arguments cannot be deserialized10453 when the arguments are not deserializeable10454 raises exception10455 when the arguments are deserializeable10456 does nothing10457 when the method is not a public method10458 raises NoMethodError10459 .perform_async10460 serializes arguments as global IDs when scheduling10461 with ActiveController::Parameters10462 when permitted10463 serializes as a serializable Hash10464 when not permitted10465 fails to serialize10466Releases::CreateEvidenceWorker10467 creates a new Evidence record10468 creates a new Evidence record with pipeline10469Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent10470 is expected to respond to #name10471 is expected to respond to #identifier10472 is expected to respond to #object_type10473 is expected to respond to #timestamp_projection10474 is expected to respond to #apply_query_customization10475Gitlab::CodeNavigationPath10476 when there is an artifact with code navigation data10477 when a pipeline exist for a sha10478 returns path to a file in the artifact10479 when passed commit sha is nil10480 returns path to a file in the artifact10481 when a pipeline exist for the latest commits10482 returns path to a file in the artifact10483Gitlab::Ci::Config::Entry::Release::Assets::Links10484 validation10485 when entry config value is correct10486 #value10487 returns links configuration10488 #valid?10489 is valid10490 when entry value is not correct10491 #errors10492 when value of link is invalid10493 reports error10494 when value of links link is empty10495 reports error10496 when there is an unknown key present10497 reports error10498Serializers::Json10499 .dump10500 returns a hash10501 .load10502 when loading a hash10503 decodes a string10504 allows to access with symbols10505 allows to access with strings10506 when loading a nil10507 returns nil10508Types::AlertManagement::SeverityEnum10509 is expected to eq "AlertManagementSeverity"10510 exposes all the severity values10511Types::DurationType10512 presents information as a floating point number10513 accepts integers as input10514 accepts floats as input10515 rejects nil10516Gitlab::NotifyUponDeath10517 .sidekiq_retries_exhausted10518 notifies the JobWaiter when 3 arguments are given and the last is a String10519 does not notify the JobWaiter when only 2 arguments are given10520 does not notify the JobWaiter when only 1 argument is given10521 does not notify the JobWaiter when the last argument is not a String10522projects/imports/new.html.haml10523 when import fails10524 escapes HTML in import errors10525Gitlab::Ci::Ansi2json::Parser10526 bold?10527 returns true if style mask matches bold format10528 returns false if style mask does not match bold format10529 matching_formats10530 returns matching formats given a style mask10531 returns an empty array if no formats match the style mask10532Banzai::Pipeline::BroadcastMessagePipeline10533 allows `a` elements10534 is expected to eq "<p><a>Link</a></p>"10535 allows `br` elements10536 is expected to eq "<p>Hello<br>World</p>"10537CrossDatabaseModification10538 .transaction10539 adds the current gitlab schema to gitlab_transactions_stack10540 yields10541 feature flag disabled10542 does not add to gitlab_transactions_stack10543 feature flag is not yet setup10544 does not add to gitlab_transactions_stack10545Types::DependencyProxy::ImageTtlGroupPolicyType10546 is expected to eq "DependencyProxyImageTtlGroupPolicy"10547 is expected to eq "Group-level Dependency Proxy TTL policy settings"10548 is expected to require graphql authorizations :admin_dependency_proxy10549 includes dependency proxy image ttl policy fields10550Sidebars::Projects::Menus::RepositoryMenu10551 #render?10552 when project repository is empty10553 returns false10554 when project repository is not empty10555 when user can download code10556 returns true10557 when user cannot download code10558 returns false10559Ci::PipelineBridgeStatusWorker10560 #perform10561 when pipeline exists10562 calls the service10563 when pipeline does not exist10564 does not call the service10565Gitlab::View::Presenter::Delegated10566 includes Gitlab::View::Presenter::Base10567 #initialize10568 takes arbitrary key/values and exposes them10569 raise an error if the presentee already respond to method10570 delegation10571 forwards missing methods to subject10572Gitlab::Database::MigrationHelpers::LooseForeignKeyHelpers10573-- create_table(:_test_loose_fk_test_table)10574 -> 0.0049s10575 when the record deletion tracker trigger is not installed10576 does store record deletions10577 when the record deletion tracker trigger is installed10578-- execute("CREATE TRIGGER _test_loose_fk_test_table_loose_fk_trigger\nAFTER DELETE ON _test_loose_fk_test_table REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")10579 -> 0.0018s10580 stores the record deletion10581-- execute("CREATE TRIGGER _test_loose_fk_test_table_loose_fk_trigger\nAFTER DELETE ON _test_loose_fk_test_table REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")10582 -> 0.0019s10583 stores multiple record deletions10584-- drop_table(:_test_loose_fk_test_table)10585 -> 0.0021s10586Gitlab::ApplicationRateLimiter::IncrementPerActionedResource10587 #increment10588 increments per resource10589 sets time to live (TTL) for the key10590 #read10591 returns 0 when there is no data10592 returns the correct value10593API::Entities::DesignManagement::Design10594 has the correct attributes10595Gitlab::ExternalAuthorization::Cache10596 #load10597 reads stored info from redis10598 #store10599 sets the values in redis10600Gitlab::GithubImport::Stage::FinishImportWorker10601 #perform10602 marks the import as finished and reports import statistics10603FutureDateValidator10604 past date10605 is expected not to be valid10606 current date10607 is expected to be valid10608 future date10609 is expected to be valid10610ProductAnalytics::BuildActivityGraphService10611 returns a valid graph hash10612Types::PermissionTypes::BasePermissionType10613 .permission_field10614 adds a field for the required permission10615 .ability_field10616 adds a field for the required permission10617 does not add a resolver block if another resolving param is passed10618 .abilities10619 adds a field for the passed permissions10620Gitlab::Faraday::ErrorCallback10621 #call10622 with no errors10623 is expected to eq "success"10624 with errors10625 with no callback10626 uses the default callback10627 with a custom callback10628 uses the custom callback10629registrations/welcome/show10630 is expected not to have visible css "label[for=\"user_setup_for_company\"]"10631 is expected to have visible button "Get started!" that is not disabled10632 is expected not to have visible css "input[name=\"user[email_opted_in]\"]"10633Sidebars::Projects::Menus::SnippetsMenu10634 #render?10635 when user cannot access snippets10636 returns false10637 when user can access snippets10638 returns true10639BulkImports::Failure10640 associations10641 is expected to belong to entity required: true10642 validations10643 is expected to validate that :entity cannot be empty/falsy10644BulkImports::Clients::Graphql10645 #execute10646 when source instance is compatible10647 marks source instance as compatible10648 when source instance is incompatible10649 raises an error10650Types::Ci::GroupType10651 is expected to eq "CiGroup"10652 exposes the expected fields10653Gitlab::PhabricatorImport::WorkerState10654 #add_job10655 increments the counter for jobs10656 #remove_job10657 decrements the counter for jobs10658 #running_count10659 reads the value10660 returns 0 when nothing was set10661Gitlab::EtagCaching::Router10662 .match10663 with RESTful routes10664 matches project pipelines endpoint10665 with GraphQL routes10666 matches pipelines endpoint10667 matches pipeline sha endpoint10668Types::PermissionTypes::WorkItem10669 is expected to have graphql field :delete_work_item10670Gitlab::Email::Hook::AdditionalHeadersInterceptor10671 adds Auto-Submitted header10672 when the same mail object is sent twice10673 does not add the Auto-Submitted header twice10674Gitlab::Experimentation::GroupTypes10675 defines a GROUP_CONTROL constant10676 defines a GROUP_EXPERIMENTAL constant10677API::Entities::SSHKey10678 #as_json10679 includes basic fields10680Gitlab::Database::Migrations::Observers::QueryLog10681 writes a file with the query log10682 does not change the default logger10683Types::IssuableStateEnum10684 is expected to eq "IssuableState"10685 behaves like issuable state10686 exposes all the existing issuable states10687Banzai::Filter::NormalizeSourceFilter10688 removes the UTF8 BOM from the beginning of the text10689 does not remove those characters from anywhere else in the text10690Metrics::SampleMetricsService10691 query10692 when the file is not found10693 is expected to be nil10694 when the file is found10695 loads data from the sample file correctly10696 when the identifier is for a path outside of sample_metrics10697 is expected to be nil10698Emails::ConfirmService10699 #execute10700 enqueues a background job to send confirmation email again10701Types::ContainerExpirationPolicyOlderThanEnum10702 behaves like exposing container expiration policy option10703 exposes all options10704 uses all possible options from model10705RuboCop::Cop::RSpec::ModifySidekiqMiddleware10706 registers an offense and corrects10707RolloutStatuses::IngressEntity10708 exposes canary weight10709Types::Notes::DiffPositionType10710 exposes the expected fields10711UploaderHelper10712 #extension_match?10713 returns false if file does not exist10714Gitlab::Usage::Metrics::Instrumentations::CollectedDataCategoriesMetric10715 behaves like a correct instrumented metric value10716 has correct value10717Gitlab::Usage::Metrics::Instrumentations::ServicePingFeaturesMetric10718 usage_ping_features_enabled: true, expected_value: true10719 behaves like a correct instrumented metric value10720 has correct value10721 usage_ping_features_enabled: false, expected_value: false10722 behaves like a correct instrumented metric value10723 has correct value10724API::Entities::Nuget::PackageMetadataCatalogEntry10725 is expected to eq {:@id=>"http://sandbox.com/json/package", :authors=>"Authors", :dependencyGroups=>[], :iconUrl=>"http...tUrl=>"http://sandbox.com/project", :summary=>"Summary", :tags=>"tag1 tag2 tag3", :version=>"1.2.3"}10726TodosDestroyer::DestroyedIssuableWorker10727 calls the Todos::Destroy::DestroyedIssuableService10728BlobViewer::ComposerJson10729 #package_name10730 returns the package name10731Gitlab::Ci::Config::Normalizer::Factory10732 #create10733 when no strategy applies10734 is expected to be empty10735Peek::Views::ActiveRecord10736 includes db role data and db_config_name name10737TodosDestroyer::GroupPrivateWorker10738 calls the Todos::Destroy::GroupPrivateService with the params it was given10739ClusterQueue10740 sets a default pipelines queue automatically10741Types::Packages::PackageDependencyTypeEnum10742 exposes all depeendency type values10743Knapsack report was generated. Preview:10745 "spec/models/ci/pipeline_spec.rb": 188.29369186300028,10746 "spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb": 250.1217341069996,10747 "spec/services/groups/transfer_service_spec.rb": 202.46774299000026,10748 "spec/finders/snippets_finder_spec.rb": 57.81357384999956,10749 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 75.36760922899975,10750 "spec/models/integrations/mattermost_spec.rb": 70.14961268199932,10751 "spec/lib/gitlab/database/migration_helpers_spec.rb": 28.853060354999798,10752 "spec/policies/environment_policy_spec.rb": 48.983530281999265,10753 "spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb": 48.8547574840004,10754 "spec/services/projects/alerting/notify_service_spec.rb": 34.42582421099996,10755 "spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb": 48.44009892000031,10756 "spec/models/diff_note_spec.rb": 29.213274632999855,10757 "spec/lib/gitlab/auth/auth_finders_spec.rb": 7.580740187999254,10758 "spec/lib/banzai/filter/references/commit_reference_filter_spec.rb": 26.434459019000315,10759 "spec/models/integrations/webex_teams_spec.rb": 26.737954352000088,10760 "spec/helpers/groups_helper_spec.rb": 14.048213406000286,10761 "spec/models/ci/bridge_spec.rb": 15.904054921000352,10762 "spec/services/members/approve_access_request_service_spec.rb": 30.173294518000148,10763 "spec/helpers/namespaces_helper_spec.rb": 26.151475274000404,10764 "spec/lib/gitlab/url_builder_spec.rb": 11.336147996000363,10765 "spec/services/packages/debian/extract_metadata_service_spec.rb": 22.00331381199976,10766 "spec/workers/packages/debian/process_changes_worker_spec.rb": 18.97262044999843,10767 "spec/finders/group_projects_finder_spec.rb": 20.420502032000513,10768 "spec/graphql/resolvers/todo_resolver_spec.rb": 19.62917931099946,10769 "spec/models/concerns/project_api_compatibility_spec.rb": 12.848670575000142,10770 "spec/models/project_statistics_spec.rb": 18.43920840700048,10771 "spec/models/incident_management/issuable_escalation_status_spec.rb": 5.513144841999747,10772 "spec/services/web_hook_service_spec.rb": 12.77550815900031,10773 "spec/models/timelog_spec.rb": 11.239049314999647,10774 "spec/models/concerns/chronic_duration_attribute_spec.rb": 9.944007829997645,10775 "spec/lib/gitlab/checks/branch_check_spec.rb": 16.04343354000048,10776 "spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 3.126648903000387,10777 "spec/views/projects/_home_panel.html.haml_spec.rb": 13.600089745001242,10778 "spec/models/label_spec.rb": 11.547955807000108,10779 "spec/lib/gitlab/email/handler/create_issue_handler_spec.rb": 10.606876730000295,10780 "spec/services/projects/cleanup_service_spec.rb": 10.704927728000257,10781 "spec/lib/gitlab/auth/request_authenticator_spec.rb": 2.2949798709996685,10782 "spec/lib/banzai/filter/references/reference_filter_spec.rb": 3.3270340710005257,10783 "spec/services/clusters/applications/prometheus_update_service_spec.rb": 10.461305709000953,10784 "spec/lib/gitlab/github_import/client_spec.rb": 2.9649354119992495,10785 "spec/lib/gitlab/redis/queues_spec.rb": 2.3416733559988643,10786 "spec/presenters/projects/settings/deploy_keys_presenter_spec.rb": 8.335882854000374,10787 "spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb": 4.95745314800115,10788 "spec/workers/packages/nuget/extraction_worker_spec.rb": 8.297294208001404,10789 "spec/services/snippets/destroy_service_spec.rb": 6.561577529000715,10790 "spec/finders/packages/maven/package_finder_spec.rb": 7.554443582001113,10791 "spec/lib/gitlab/search/recent_merge_requests_spec.rb": 7.754616125001121,10792 "spec/lib/object_storage/config_spec.rb": 1.6088034700005664,10793 "spec/graphql/types/issue_type_spec.rb": 6.90063439900041,10794 "spec/services/work_items/task_list_reference_removal_service_spec.rb": 6.21653736799999,10795 "spec/lib/gitlab/redis/cache_spec.rb": 1.8426777700005914,10796 "spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb": 1.61554501899991,10797 "spec/lib/gitlab/ci/config/normalizer_spec.rb": 1.1787865179994697,10798 "spec/policies/base_policy_spec.rb": 1.4035717979986657,10799 "spec/lib/gitlab/auth/current_user_mode_spec.rb": 2.0003941650011257,10800 "spec/models/pages_domain_acme_order_spec.rb": 4.694004142000267,10801 "spec/lib/gitlab/ci/reports/test_suite_spec.rb": 2.3559677440007363,10802 "spec/views/ci/status/_icon.html.haml_spec.rb": 6.461639656999978,10803 "spec/models/hooks/project_hook_spec.rb": 6.607221244001266,10804 "spec/helpers/invite_members_helper_spec.rb": 2.0368891029993392,10805 "spec/services/error_tracking/issue_update_service_spec.rb": 4.653470405000917,10806 "spec/services/users/refresh_authorized_projects_service_spec.rb": 6.195209289999184,10807 "spec/components/pajamas/button_component_spec.rb": 1.873710187001052,10808 "spec/finders/packages/tags_finder_spec.rb": 5.206599376999293,10809 "spec/models/concerns/cacheable_attributes_spec.rb": 1.8776626359995134,10810 "spec/lib/gitlab/file_finder_spec.rb": 5.064198448999377,10811 "spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb": 3.6162445840000146,10812 "spec/lib/gitlab/chat/output_spec.rb": 3.9282016679990193,10813 "spec/finders/boards/boards_finder_spec.rb": 4.588511349998953,10814 "spec/tasks/gitlab/task_helpers_spec.rb": 0.7494002350013034,10815 "spec/models/concerns/ci/has_ref_spec.rb": 4.254744809999465,10816 "spec/lib/gitlab/i18n/translation_entry_spec.rb": 1.39920728800098,10817 "spec/services/metrics/dashboard/annotations/delete_service_spec.rb": 7.092079242000182,10818 "spec/lib/gitlab/git/attributes_parser_spec.rb": 1.3076668659996358,10819 "spec/finders/ci/daily_build_group_report_results_finder_spec.rb": 4.2211825829999725,10820 "spec/views/layouts/application.html.haml_spec.rb": 4.605905178999819,10821 "spec/services/ci/expire_pipeline_cache_service_spec.rb": 4.354513541000415,10822 "spec/lib/banzai/filter/emoji_filter_spec.rb": 0.7053260079992469,10823 "spec/lib/gitlab/ci/config/entry/include_spec.rb": 0.5331610640005238,10824 "spec/models/packages/dependency_link_spec.rb": 3.6879133980000915,10825 "spec/uploaders/dependency_proxy/file_uploader_spec.rb": 1.1834006259996386,10826 "spec/presenters/ci/legacy_stage_presenter_spec.rb": 4.723451369000031,10827 "spec/policies/deploy_key_policy_spec.rb": 4.608612658999846,10828 "spec/models/design_management/action_spec.rb": 2.6514291090006736,10829 "spec/models/wiki_page/slug_spec.rb": 1.8571743379998225,10830 "spec/lib/gitlab/profiler_spec.rb": 1.2435148820004542,10831 "spec/models/deploy_keys_project_spec.rb": 2.2628063629999815,10832 "spec/models/label_link_spec.rb": 3.9045258900005138,10833 "spec/services/merge_requests/reload_merge_head_diff_service_spec.rb": 3.5882998180004506,10834 "spec/lib/gitlab/mail_room/mail_room_spec.rb": 0.848590924999371,10835 "spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb": 0.7568557739996322,10836 "spec/helpers/badges_helper_spec.rb": 1.0940565550008614,10837 "spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb": 0.549903331000678,10838 "spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb": 0.8935913129989785,10839 "spec/rack_servers/puma_spec.rb": 4.296524196999599,10840 "spec/lib/gitlab/database/reindexing_spec.rb": 1.9516673010002705,10841 "spec/lib/gitlab/github_import_spec.rb": 2.920120295999368,10842 "spec/graphql/resolvers/crm/contacts_resolver_spec.rb": 1.8836207759995887,10843 "spec/lib/gitlab/utils/mime_type_spec.rb": 0.5114784859997599,10844 "spec/finders/ci/auth_job_finder_spec.rb": 0.996359233999101,10845 "spec/lib/gitlab/sample_data_template_spec.rb": 0.7534078340013366,10846 "spec/services/branches/delete_service_spec.rb": 3.30091613300101,10847 "spec/services/error_tracking/issue_details_service_spec.rb": 3.794761519999156,10848 "spec/lib/gitlab/auth/user_access_denied_reason_spec.rb": 2.8573803920007776,10849 "spec/workers/object_pool/create_worker_spec.rb": 2.5198149110001395,10850 "spec/lib/gitlab/legacy_github_import/comment_formatter_spec.rb": 2.8870038589993783,10851 "spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb": 1.8007426329986629,10852 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 3.1455807559996174,10853 "spec/lib/gitlab/ci/build/rules/rule_spec.rb": 2.957708472999002,10854 "spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb": 0.6911904190001223,10855 "spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb": 3.0114634679994197,10856 "spec/lib/gitlab/visibility_level_checker_spec.rb": 4.279573326999525,10857 "spec/services/ci/create_pipeline_service/include_spec.rb": 2.8190202940004383,10858 "spec/models/user_custom_attribute_spec.rb": 1.4536904329997924,10859 "spec/workers/pipeline_process_worker_spec.rb": 3.93037701799949,10860 "spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb": 0.8742926939994504,10861 "spec/finders/ci/variables_finder_spec.rb": 2.64490614999886,10862 "spec/helpers/hooks_helper_spec.rb": 2.45849793600064,10863 "spec/presenters/instance_clusterable_presenter_spec.rb": 2.034581171999889,10864 "spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb": 1.9457838099988294,10865 "spec/lib/gitlab/jira_import/issue_serializer_spec.rb": 2.104069016999347,10866 "spec/lib/gitlab/http_connection_adapter_spec.rb": 1.5036556489994837,10867 "spec/services/gpg_keys/destroy_service_spec.rb": 1.4237297759991634,10868 "spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb": 3.3441650589993515,10869 "spec/lib/gitlab/kubernetes/helm/v2/reset_command_spec.rb": 0.7647199830007594,10870 "spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb": 0.6882303899983526,10871 "spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb": 3.4538578190004046,10872 "spec/workers/hashed_storage/project_rollback_worker_spec.rb": 1.2193159449998348,10873 "spec/services/projects/move_lfs_objects_projects_service_spec.rb": 2.328120296999259,10874 "spec/lib/gitlab/import_export/attributes_finder_spec.rb": 0.432659991998662,10875 "spec/lib/gitlab/graphql/pagination/array_connection_spec.rb": 0.3195515120005439,10876 "spec/models/integrations/asana_spec.rb": 0.7330069159997947,10877 "spec/serializers/trigger_variable_entity_spec.rb": 2.3992565009993996,10878 "spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb": 0.25786655800038716,10879 "spec/views/projects/environments/terminal.html.haml_spec.rb": 1.5452523549993202,10880 "spec/models/users/credit_card_validation_spec.rb": 0.7569994139994378,10881 "spec/workers/error_tracking_issue_link_worker_spec.rb": 0.9958815739992133,10882 "spec/graphql/resolvers/paginated_tree_resolver_spec.rb": 0.8118038799984788,10883 "spec/graphql/types/member_interface_spec.rb": 0.24579903800076863,10884 "spec/lib/safe_zip/extract_spec.rb": 0.2326899700001377,10885 "spec/views/layouts/_head.html.haml_spec.rb": 0.9365042389999871,10886 "spec/services/user_project_access_changed_service_spec.rb": 0.2649229369999375,10887 "spec/services/packages/generic/create_package_file_service_spec.rb": 2.704983984000137,10888 "spec/views/projects/settings/integrations/edit.html.haml_spec.rb": 1.3715300809999462,10889 "spec/lib/gitlab/import_export/uploads_restorer_spec.rb": 1.7383123580002575,10890 "spec/lib/gitlab/template/gitignore_template_spec.rb": 0.3034847839990107,10891 "spec/lib/gitlab/project_transfer_spec.rb": 0.39952392499981215,10892 "spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb": 0.5847644890000083,10893 "spec/lib/gitlab/sql/cte_spec.rb": 0.5921167489996151,10894 "spec/models/lfs_objects_project_spec.rb": 1.2818663890011521,10895 "spec/graphql/mutations/todos/mark_done_spec.rb": 1.926835692000168,10896 "spec/workers/hashed_storage/migrator_worker_spec.rb": 1.3891702989985788,10897 "spec/services/protected_tags/create_service_spec.rb": 0.9790609449992189,10898 "spec/models/concerns/has_user_type_spec.rb": 1.6390847069997108,10899 "spec/lib/gitlab/ci/mask_secret_spec.rb": 0.3857078660003026,10900 "spec/models/oauth_access_token_spec.rb": 0.8848759530010284,10901 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 1.5965777410001465,10902 "spec/workers/group_import_worker_spec.rb": 1.7753651259990875,10903 "spec/models/packages/rubygems/metadatum_spec.rb": 0.21041389200036065,10904 "spec/policies/application_setting_policy_spec.rb": 1.3096190560008836,10905 "spec/lib/gitlab/data_builder/feature_flag_spec.rb": 1.5195367779997468,10906 "spec/helpers/stat_anchors_helper_spec.rb": 0.26392164699973364,10907 "spec/lib/gitlab/auth/saml/identity_linker_spec.rb": 1.0320171099992876,10908 "spec/workers/bulk_imports/stuck_import_worker_spec.rb": 1.5187251979987195,10909 "spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb": 0.5875316589990689,10910 "spec/lib/gitlab/usage/metrics/instrumentations/jira_imports_total_imported_issues_count_metric_spec.rb": 1.7941905640000186,10911 "spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb": 0.26613951699982863,10912 "spec/models/guest_spec.rb": 1.4717587719987932,10913 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.5920231780000904,10914 "spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb": 0.7780153420007991,10915 "spec/graphql/types/ci/runner_upgrade_status_type_enum_spec.rb": 0.1739229040013015,10916 "spec/models/concerns/strip_attribute_spec.rb": 0.45212670999899274,10917 "spec/services/applications/create_service_spec.rb": 0.7572642940012884,10918 "spec/graphql/types/event_type_spec.rb": 0.19726985300076194,10919 "spec/helpers/sidebars_helper_spec.rb": 0.6720810119986709,10920 "spec/events/pages/page_deleted_event_spec.rb": 0.6246070860015607,10921 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 0.2867976150009781,10922 "spec/helpers/blame_helper_spec.rb": 0.18566896399897814,10923 "spec/initializers/global_id_spec.rb": 0.8387144570006058,10924 "spec/services/reset_project_cache_service_spec.rb": 0.8564732159993582,10925 "spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb": 1.2449787410005229,10926 "spec/services/pages_domains/create_acme_order_service_spec.rb": 0.7079171179993864,10927 "spec/graphql/types/container_expiration_policy_type_spec.rb": 0.4371974620007677,10928 "spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb": 0.7658990729996731,10929 "spec/lib/banzai/filter/suggestion_filter_spec.rb": 0.2185497310001665,10930 "spec/graphql/mutations/environments/canary_ingress/update_spec.rb": 0.7898655119988689,10931 "spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb": 1.6908646920001047,10932 "spec/services/ci/create_pipeline_service/artifacts_spec.rb": 1.099420653999914,10933 "spec/lib/gitlab/audit/deploy_token_author_spec.rb": 0.14323393699851295,10934 "spec/presenters/search_service_presenter_spec.rb": 0.7372111859986035,10935 "spec/lib/gitlab/asset_proxy_spec.rb": 0.2267600399991352,10936 "spec/graphql/types/custom_emoji_type_spec.rb": 0.16607977600142476,10937 "spec/lib/backup/task_spec.rb": 0.1241660289997526,10938 "spec/lib/gitlab/ci/status/running_spec.rb": 0.25350485799935996,10939 "spec/views/projects/settings/operations/show.html.haml_spec.rb": 0.9005565309998929,10940 "spec/presenters/terraform/modules_presenter_spec.rb": 0.49268879699957324,10941 "spec/workers/mail_scheduler/notification_service_worker_spec.rb": 0.3649124090006808,10942 "spec/workers/releases/create_evidence_worker_spec.rb": 1.2553427610000654,10943 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb": 0.2040306929993676,10944 "spec/lib/gitlab/code_navigation_path_spec.rb": 0.6699194110005919,10945 "spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb": 0.3293028009993577,10946 "spec/lib/serializers/json_spec.rb": 0.31549078300122346,10947 "spec/graphql/types/alert_management/severity_enum_spec.rb": 0.1431752480002615,10948 "spec/graphql/types/duration_type_spec.rb": 0.3278309220004303,10949 "spec/workers/concerns/gitlab/notify_upon_death_spec.rb": 0.2745280659983109,10950 "spec/views/projects/imports/new.html.haml_spec.rb": 0.9923384840003564,10951 "spec/lib/gitlab/ci/ansi2json/parser_spec.rb": 0.16457951499978662,10952 "spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb": 0.44790628100054164,10953 "spec/models/concerns/cross_database_modification_spec.rb": 0.2041419830002269,10954 "spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb": 0.16599613600010343,10955 "spec/lib/sidebars/projects/menus/repository_menu_spec.rb": 0.44545878099961556,10956 "spec/workers/ci/pipeline_bridge_status_worker_spec.rb": 0.5634463209989917,10957 "spec/lib/gitlab/view/presenter/delegated_spec.rb": 0.2824114760005614,10958 "spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb": 0.3724410180002451,10959 "spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb": 0.20584484199935105,10960 "spec/lib/api/entities/design_management/design_spec.rb": 0.601868536999973,10961 "spec/lib/gitlab/external_authorization/cache_spec.rb": 0.14085635699848353,10962 "spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb": 0.5805171699994389,10963 "spec/validators/future_date_validator_spec.rb": 0.13064515800033405,10964 "spec/services/product_analytics/build_activity_graph_service_spec.rb": 0.3942946959996334,10965 "spec/graphql/types/permission_types/base_permission_type_spec.rb": 0.1314295989996026,10966 "spec/lib/gitlab/faraday/error_callback_spec.rb": 0.12593097899843997,10967 "spec/views/registrations/welcome/show.html.haml_spec.rb": 0.3434432400008518,10968 "spec/lib/sidebars/projects/menus/snippets_menu_spec.rb": 0.15499089600052685,10969 "spec/models/bulk_imports/failure_spec.rb": 0.38684985599866195,10970 "spec/lib/bulk_imports/clients/graphql_spec.rb": 0.39087466599994514,10971 "spec/graphql/types/ci/group_type_spec.rb": 0.15969372700055828,10972 "spec/lib/gitlab/phabricator_import/worker_state_spec.rb": 0.23181764999935695,10973 "spec/lib/gitlab/etag_caching/router_spec.rb": 0.19242106399906334,10974 "spec/graphql/types/permission_types/work_item_spec.rb": 0.09115988200028369,10975 "spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb": 0.17562076499962131,10976 "spec/lib/gitlab/experimentation/group_types_spec.rb": 0.21186091100025806,10977 "spec/lib/api/entities/ssh_key_spec.rb": 0.32551365200015425,10978 "spec/lib/gitlab/database/migrations/observers/query_log_spec.rb": 0.15138962699893455,10979 "spec/graphql/types/issuable_state_enum_spec.rb": 0.1111595699985628,10980 "spec/lib/banzai/filter/normalize_source_filter_spec.rb": 0.18217508400084625,10981 "spec/services/metrics/sample_metrics_service_spec.rb": 0.21887204100130475,10982 "spec/services/emails/confirm_service_spec.rb": 0.28772110499994596,10983 "spec/graphql/types/container_expiration_policy_older_than_enum_spec.rb": 0.13927779799996642,10984 "spec/rubocop/cop/rspec/modify_sidekiq_middleware_spec.rb": 0.1198430799995549,10985 "spec/serializers/rollout_statuses/ingress_entity_spec.rb": 0.08648797199930414,10986 "spec/graphql/types/notes/diff_position_type_spec.rb": 0.10551698100061913,10987 "spec/uploaders/uploader_helper_spec.rb": 0.16765817499981495,10988 "spec/lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric_spec.rb": 0.16307719600081327,10989 "spec/lib/gitlab/usage/metrics/instrumentations/service_ping_features_metric_spec.rb": 0.18930844299939054,10990 "spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb": 0.21653414200045518,10991 "spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb": 0.07046950400035712,10992 "spec/models/blob_viewer/composer_json_spec.rb": 0.16916534600022715,10993 "spec/lib/gitlab/ci/config/normalizer/factory_spec.rb": 0.17467952500010142,10994 "spec/lib/peek/views/active_record_spec.rb": 0.21569395100050315,10995 "spec/workers/todos_destroyer/group_private_worker_spec.rb": 0.12536806900061492,10996 "spec/workers/concerns/cluster_queue_spec.rb": 0.13422410800012585,10997 "spec/graphql/types/packages/package_dependency_type_enum_spec.rb": 0.0947641620005015310999Knapsack global time execution for tests: 30m 19s11000Pending: (Failures listed here are expected and do not affect your suite's status)11001 1) Ci::Pipeline modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is required when creating an object raises an error if the internal id is blank11002 # No reason given11003 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:2211004 2) Ci::Pipeline modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is required when updating an object raises an error if the internal id is blank11005 # No reason given11006 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:2811007 3) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #upload_path behaves like matches the method pattern 11008 # No pattern provided, skipping.11009 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811010 4) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #relative_path is relative11011 # Path not set, skipping.11012 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4011013 5) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 11014 # No pattern provided, skipping.11015 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811016 6) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 11017 # No pattern provided, skipping.11018 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811019 7) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 11020 # No pattern provided, skipping.11021 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811022 8) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 11023 # No pattern provided, skipping.11024 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811025 9) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 11026 # No pattern provided, skipping.11027 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811028 10) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #relative_path is relative11029 # Path not set, skipping.11030 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4011031 11) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 11032 # No pattern provided, skipping.11033 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811034 12) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 11035 # No pattern provided, skipping.11036 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811037 13) Gitlab::Database::Reindexing.cleanup_leftovers! drops both leftover indexes11038 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example11039 # ./spec/lib/gitlab/database/reindexing_spec.rb:21111040Finished in 30 minutes 24 seconds (files took 1 minute 11.55 seconds to load)110414780 examples, 0 failures, 13 pending11042RSpec exited with 0.11043No examples to retry, congrats!11045Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy11046Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy11048Uploading artifacts...11049coverage/: found 5 matching files and directories 11050crystalball/: found 2 matching files and directories 11051deprecations/: found 7 matching files and directories 11052knapsack/: found 3 matching files and directories 11053rspec/: found 9 matching files and directories 11054WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 11055log/*.log: found 19 matching files and directories 11056WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2649391745/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com11057WARNING: Retrying... context=artifacts-uploader error=request redirected11058Uploading artifacts as "archive" to coordinator... 201 Created id=2649391745 responseStatus=201 Created token=Y8ioUi_h11059Uploading artifacts...11060rspec/junit_rspec.xml: found 1 matching files and directories 11061WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2649391745/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com11062WARNING: Retrying... context=artifacts-uploader error=request redirected11063Uploading artifacts as "junit" to coordinator... 201 Created id=2649391745 responseStatus=201 Created token=Y8ioUi_h11065Job succeeded