rspec unit pg12 17/22
Passed Started
by
@dbalexandre

Douglas Barbosa Alexandre
1Running with gitlab-runner 15.3.0~beta.42.gdb7789ca (db7789ca)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image 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-103-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:f2f1f275f1a1dff86079a737d24a925772f06910c3559b43f32ef6b0dd23b152 for postgres:12 with digest postgres@sha256:afc79f5499a589f3130bd8666c1743db6748aa43083b52f823db72dd3af89785 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:648aa889c697d1745a25a82475ee0df2c22ffe74dc3b7e11d2785b7738f1bcaa for redis:6.0-alpine with digest redis@sha256:4af27048227d6f68911c0098f56fff75d2e0af41d424536a571c604a5a2aa85f ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:0de04b8fae6d288f2674c8ee330dead655389b1f4c48fa027d76f2d798deadaf 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-103-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:3632d3da2a61b74f7c4724eb8752b609c16b498daf20e9800a9c44629adab0bc ...18Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1661356889-c5a6a3be...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 115695, done. 25remote: Counting objects: 100% (115695/115695), done. 26remote: Compressing objects: 100% (77168/77168), done. 27remote: Total 115695 (delta 47763), reused 80641 (delta 34098), pack-reused 0 28Receiving objects: 100% (115695/115695), 110.34 MiB | 28.97 MiB/s, done.29Resolving deltas: 100% (47763/47763), done.31 * [new ref] refs/pipelines/621982466 -> refs/pipelines/62198246632Checking out 63997366 as refs/merge-requests/95971/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-14...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-14...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2929379408)...44Downloading artifacts from coordinator... ok id=2929379408 responseStatus=200 OK token=hEs3S15445Downloading artifacts for detect-tests (2929379414)...46Downloading artifacts from coordinator... ok id=2929379414 responseStatus=200 OK token=hEs3S15447Downloading artifacts for retrieve-tests-metadata (2929379417)...48Downloading artifacts from coordinator... ok id=2929379417 responseStatus=200 OK token=hEs3S15449Downloading artifacts for setup-test-env (2929379411)...50Downloading artifacts from coordinator... ok id=2929379411 responseStatus=200 OK token=hEs3S15452Using docker image sha256:0de04b8fae6d288f2674c8ee330dead655389b1f4c48fa027d76f2d798deadaf 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-103-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:3632d3da2a61b74f7c4724eb8752b609c16b498daf20e9800a9c44629adab0bc ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh593.2.3360Bundler version 2.2.3361Successfully installed bundler-2.3.15621 gem installed63production:development64Settings are listed in order of priority. The top value will be used.65clean66Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true67frozen68Set via BUNDLE_FROZEN: true69install_flags70Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"71path72Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"73without74Set via BUNDLE_WITHOUT: [:production, :development]75$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check76Don't run Bundler as root. Bundler can ask for sudo if it is needed, and77installing your bundle as root will break this application for all non-root78users on this machine.79The Gemfile's dependencies are satisfied80==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.81$ bundle pristine pg82Installing pg 1.4.1 with native extensions83==> 'bundle pristine pg' succeeded in 11 seconds.84Using decomposed database config (config/database.yml.decomposed-postgresql)85$ setup_db_user_only86CREATE ROLE87GRANT88==> 'setup_db_user_only' succeeded in 0 seconds.89$ bundle exec rake db:drop db:create db:schema:load db:migrate90Dropped database 'gitlabhq_test'91Dropped database 'gitlabhq_test_ci'92Dropped database 'gitlabhq_geo_test'93Created database 'gitlabhq_test'94Created database 'gitlabhq_test_ci'95Created database 'gitlabhq_geo_test'96==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 38 seconds.97$ setup_db_praefect98SELECT pg_catalog.set_config('search_path', '', false);99CREATE DATABASE praefect_test ENCODING 'UTF8';100==> 'setup_db_praefect' succeeded in 1 seconds.101$ run_timed_command "gem install knapsack --no-document"102$ gem install knapsack --no-document103Successfully installed knapsack-4.0.01041 gem installed105==> 'gem install knapsack --no-document' succeeded in 0 seconds.106$ run_timed_command "scripts/gitaly-test-spawn"107$ scripts/gitaly-test-spawn108find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory109find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory110find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory111find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory112find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory113find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory114Don't run Bundler as root. Bundler can ask for sudo if it is needed, and115installing your bundle as root will break this application for all non-root116users on this machine.117Using abstract_type 0.0.7118Using concurrent-ruby 1.1.10119Using i18n 1.12.0120Using minitest 5.16.2121Using tzinfo 2.0.5122Using zeitwerk 2.6.0123Using activesupport 6.1.6.1124Using builder 3.2.4125Using erubi 1.10.0126Using mini_portile2 2.8.0127Using racc 1.6.0128Using nokogiri 1.13.8 (x86_64-linux)129Using rails-dom-testing 2.0.3130Using crass 1.0.6131Using loofah 2.18.0132Using rails-html-sanitizer 1.4.3133Using actionview 6.1.6.1134Using rack 2.2.4135Using rack-test 1.1.0136Using actionpack 6.1.6.1137Using ice_nine 0.11.2138Using thread_safe 0.3.6139Using memoizable 0.4.2140Using adamantium 0.2.0141Using public_suffix 4.0.7142Using addressable 2.8.0143Using ast 2.4.2144Using binding_ninja 0.2.3145Using bundler 2.3.15146Using charlock_holmes 0.7.7147Using coderay 1.1.2148Using equalizer 0.0.11149Using concord 0.1.5150Using diff-lcs 1.3151Using dotenv 2.7.6152Using escape_utils 1.2.2153Using factory_bot 5.0.2154Using multipart-post 2.1.1155Using faraday 1.0.1156Using ffi 1.15.5157Using json 2.5.1158Using gemojione 3.3.0159Using mini_mime 1.1.2160Using rugged 1.2.0161Using github-linguist 7.20.0162Using github-markup 1.7.0163Using mime-types-data 3.2020.1104164Using mime-types 3.3.1165Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1166Using rouge 3.30.0167Using sanitize 6.0.0168Using stringex 2.8.5169Using gitlab-gollum-lib 4.2.7.10.gitlab.2170Using google-protobuf 3.21.3 (x86_64-linux)171Using googleapis-common-protos-types 1.3.0172Using grpc 1.42.0 (x86_64-linux)173Using opentracing 0.5.0174Using thrift 0.15.0175Using jaeger-client 1.1.0176Using pg_query 2.1.3177Using redis 4.4.0178Using gitlab-labkit 0.23.0179Using rubyzip 2.3.2180Using thor 1.1.0181Using tomlrb 2.0.1182Using with_env 1.1.0183Using rexml 3.2.5184Using xml-simple 1.1.9185Using gitlab-license_finder 6.14.2.1186Using gitlab-markup 1.7.1187Using grpc-tools 1.42.0188Using sawyer 0.8.2189Using octokit 4.20.0190Using reverse_markdown 1.4.0191Using licensee 9.15.2192Using method_source 0.9.2193Using msgpack 1.3.3194Using optimist 3.0.1195Using parallel 1.19.2196Using parser 3.0.3.2197Using procto 0.0.3198Using unparser 0.4.7199Using proc_to_ast 0.1.0200Using pry 0.12.2201Using rainbow 3.0.0202Using rbtrace 0.4.14203Using rdoc 6.3.2204Using regexp_parser 1.8.1205Using rspec-support 3.8.0206Using rspec-core 3.8.0207Using rspec-expectations 3.8.3208Using rspec-mocks 3.8.0209Using rspec 3.8.0210Using rspec-parameterized 0.4.2211Using rubocop-ast 0.2.0212Using ruby-progressbar 1.10.1213Using unicode-display_width 1.7.0214Using rubocop 0.86.0215Using sentry-raven 3.0.4216Using timecop 0.9.1217Bundle complete! 22 Gemfile dependencies, 100 gems now installed.218Gems in the groups 'production' and 'development' were not installed.219Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`220Checking gitaly-ruby Gemfile...221Checking gitaly-ruby bundle...222The Gemfile's dependencies are satisfied223Trying to connect to gitaly: ............................................ OK224Trying to connect to gitaly2: ................................................................. OK225Starting Praefect with in-memory election strategyTrying to connect to praefect: ......... OK226==> 'scripts/gitaly-test-spawn' succeeded in 13 seconds.227$ source ./scripts/rspec_helpers.sh228$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"229SKIP_FLAKY_TESTS_AUTOMATICALLY: true230RETRY_FAILED_TESTS_IN_NEW_PROCESS: true231KNAPSACK_GENERATE_REPORT: true232FLAKY_RSPEC_GENERATE_REPORT: true233KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb234KNAPSACK_LOG_LEVEL: debug235KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_17_22_report.json236FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json237FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_17_22_report.json238NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_17_22_report.json239SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_17_22_report.txt240RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_17_22_report.txt241CRYSTALBALL: 242Knapsack node specs:243spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb244spec/services/quick_actions/interpret_service_spec.rb245spec/models/concerns/ci/has_status_spec.rb246spec/services/ci/create_downstream_pipeline_service_spec.rb247spec/services/todo_service_spec.rb248spec/policies/group_policy_spec.rb249spec/lib/banzai/filter/references/issue_reference_filter_spec.rb250spec/models/commit_status_spec.rb251spec/lib/gitlab/background_migration/update_timelogs_project_id_spec.rb252spec/lib/gitlab/background_migration/drop_invalid_vulnerabilities_spec.rb253spec/lib/banzai/filter/references/commit_reference_filter_spec.rb254spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb255spec/models/ci/bridge_spec.rb256spec/finders/todos_finder_spec.rb257spec/lib/gitlab/bitbucket_server_import/importer_spec.rb258spec/services/incident_management/timeline_events/update_service_spec.rb259spec/graphql/mutations/merge_requests/update_spec.rb260spec/lib/gitlab/data_builder/push_spec.rb261spec/lib/gitlab/contributions_calendar_spec.rb262spec/lib/gitlab/tree_summary_spec.rb263spec/models/pages_domain_spec.rb264spec/models/notification_recipient_spec.rb265spec/services/search_service_spec.rb266spec/models/concerns/integrations/has_data_fields_spec.rb267spec/models/projects/build_artifacts_size_refresh_spec.rb268spec/models/list_spec.rb269spec/serializers/pipeline_details_entity_spec.rb270spec/workers/packages/debian/process_changes_worker_spec.rb271spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb272spec/lib/gitlab/data_builder/issuable_spec.rb273spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb274spec/models/incident_management/issuable_escalation_status_spec.rb275spec/policies/issuable_policy_spec.rb276spec/lib/gitlab/fake_application_settings_spec.rb277spec/policies/project_snippet_policy_spec.rb278spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb279spec/services/merge_requests/conflicts/resolve_service_spec.rb280spec/views/projects/_home_panel.html.haml_spec.rb281spec/services/projects/git_deduplication_service_spec.rb282spec/lib/gitlab/background_migration/batching_strategies/loose_index_scan_batching_strategy_spec.rb283spec/services/projects/container_repository/cleanup_tags_service_spec.rb284spec/lib/gitlab/import_export/merge_request_parser_spec.rb285spec/services/ci/delete_unit_tests_service_spec.rb286spec/services/merge_requests/get_urls_service_spec.rb287spec/models/alert_management/http_integration_spec.rb288spec/graphql/mutations/design_management/upload_spec.rb289spec/finders/packages/build_infos_finder_spec.rb290spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb291spec/models/performance_monitoring/prometheus_dashboard_spec.rb292spec/graphql/mutations/releases/create_spec.rb293spec/lib/gitlab/github_import/representation/diff_note_spec.rb294spec/lib/gitlab/quick_actions/extractor_spec.rb295spec/finders/user_recent_events_finder_spec.rb296spec/lib/gitlab/encoding_helper_spec.rb297spec/lib/gitlab/redis/cache_spec.rb298spec/finders/autocomplete/move_to_project_finder_spec.rb299spec/policies/award_emoji_policy_spec.rb300spec/lib/gitlab/logger_spec.rb301spec/models/merge_request/metrics_spec.rb302spec/models/protected_tag_spec.rb303spec/services/projects/open_issues_count_service_spec.rb304spec/lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed_spec.rb305spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb306spec/services/todos/destroy/confidential_issue_service_spec.rb307spec/lib/gitlab/email/receiver_spec.rb308spec/services/wiki_pages/destroy_service_spec.rb309spec/services/issues/reorder_service_spec.rb310spec/lib/gitlab/regex_requires_app_spec.rb311spec/graphql/mutations/incident_management/timeline_event/update_spec.rb312spec/lib/gitlab/middleware/same_site_cookies_spec.rb313spec/lib/gitlab/ci/trace/archive_spec.rb314spec/models/prometheus_alert_event_spec.rb315spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb316spec/models/merge_request_reviewer_spec.rb317spec/lib/gitlab/slash_commands/run_spec.rb318spec/views/projects/commits/_commit.html.haml_spec.rb319spec/models/design_management/action_spec.rb320spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb321spec/lib/gitlab/ci/build/rules_spec.rb322spec/policies/packages/policies/project_policy_spec.rb323spec/graphql/mutations/merge_requests/set_subscription_spec.rb324spec/lib/gitlab/ci/config/entry/image_spec.rb325spec/models/integrations/custom_issue_tracker_spec.rb326spec/serializers/group_child_serializer_spec.rb327spec/uploaders/packages/composer/cache_uploader_spec.rb328spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb329spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb330spec/services/todos/destroy/design_service_spec.rb331spec/helpers/ci/builds_helper_spec.rb332spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb333spec/tooling/lib/tooling/find_codeowners_spec.rb334spec/workers/ci/cancel_pipeline_worker_spec.rb335spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb336spec/lib/gitlab/diff/parser_spec.rb337spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb338spec/lib/gitlab/database/partitioning/time_partition_spec.rb339spec/graphql/mutations/boards/lists/update_spec.rb340spec/models/blob_viewer/base_spec.rb341spec/services/projects/create_from_template_service_spec.rb342spec/models/protected_branch/push_access_level_spec.rb343spec/policies/namespaces/user_namespace_policy_spec.rb344spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb345spec/models/work_items/type_spec.rb346spec/services/security/ci_configuration/sast_iac_create_service_spec.rb347spec/lib/gitlab/health_checks/redis/sessions_check_spec.rb348spec/rubocop/cop/graphql/descriptions_spec.rb349spec/workers/remove_unaccepted_member_invites_worker_spec.rb350spec/models/integrations/chat_message/push_message_spec.rb351spec/lib/gitlab/rack_attack_spec.rb352spec/rubocop/cop/migration/update_column_in_batches_spec.rb353spec/lib/gitlab/ci/templates/Jobs/sast_iac_latest_gitlab_ci_yaml_spec.rb354spec/graphql/mutations/labels/create_spec.rb355spec/policies/clusters/instance_policy_spec.rb356spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb357spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb358spec/lib/bitbucket/representation/repo_spec.rb359spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb360spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb361spec/services/design_management/move_designs_service_spec.rb362spec/lib/gitlab/ci/runner_instructions_spec.rb363spec/workers/container_expiration_policy_worker_spec.rb364spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb365spec/lib/gitlab/ci/config/entry/rules_spec.rb366spec/lib/gitlab/ci/pipeline/logger_spec.rb367spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb368spec/lib/gitlab/ci/build/releaser_spec.rb369spec/workers/propagate_integration_inherit_worker_spec.rb370spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb371spec/helpers/lazy_image_tag_helper_spec.rb372spec/lib/gitlab/cycle_analytics/summary/value_spec.rb373spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb374spec/serializers/merge_request_user_entity_spec.rb375spec/lib/gitlab/ci/config/entry/imageable_spec.rb376spec/workers/stuck_export_jobs_worker_spec.rb377spec/services/todos/destroy/destroyed_issuable_service_spec.rb378spec/services/ci/create_pipeline_service/merge_requests_spec.rb379spec/workers/external_service_reactive_caching_worker_spec.rb380spec/lib/gitlab/prometheus/adapter_spec.rb381spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb382spec/helpers/x509_helper_spec.rb383spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb384spec/workers/hashed_storage/project_migrate_worker_spec.rb385spec/lib/release_highlights/validator/entry_spec.rb386spec/lib/gitlab/import_export/lfs_saver_spec.rb387spec/lib/gitlab/avatar_cache_spec.rb388spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb389spec/services/customer_relations/contacts/create_service_spec.rb390spec/views/events/event/_push.html.haml_spec.rb391spec/models/users/credit_card_validation_spec.rb392spec/models/concerns/batch_nullify_dependent_associations_spec.rb393spec/finders/feature_flags_user_lists_finder_spec.rb394spec/workers/merge_requests/resolve_todos_after_approval_worker_spec.rb395spec/models/packages/composer/cache_file_spec.rb396spec/support_specs/database/prevent_cross_joins_spec.rb397spec/workers/rebase_worker_spec.rb398spec/serializers/project_access_token_entity_spec.rb399spec/services/clusters/integrations/create_service_spec.rb400spec/services/bulk_imports/repository_bundle_export_service_spec.rb401spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb402spec/services/google_cloud/enable_cloud_run_service_spec.rb403spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb404spec/workers/merge_requests/resolve_todos_worker_spec.rb405spec/lib/api/entities/merge_request_changes_spec.rb406spec/services/packages/debian/update_distribution_service_spec.rb407spec/lib/gitlab/diff/line_mapper_spec.rb408spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb409spec/lib/container_registry/registry_spec.rb410spec/lib/gitlab/ci/config/entry/jobs_spec.rb411spec/workers/packages/rubygems/extraction_worker_spec.rb412spec/services/todos/allowed_target_filter_service_spec.rb413spec/serializers/feature_flag_serializer_spec.rb414spec/rubocop/cop/code_reuse/worker_spec.rb415spec/workers/projects/import_export/relation_export_worker_spec.rb416spec/lib/gitlab/view/presenter/base_spec.rb417spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb418spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb419spec/models/approval_spec.rb420spec/lib/gitlab/sample_data_template_spec.rb421spec/lib/gitlab/ci/config/entry/tags_spec.rb422spec/lib/gitlab/sql/union_spec.rb423spec/services/terraform/states/trigger_destroy_service_spec.rb424spec/serializers/merge_requests/pipeline_entity_spec.rb425spec/helpers/startupjs_helper_spec.rb426spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb427spec/lib/gitlab/metrics/dashboard/stages/url_validator_spec.rb428spec/lib/gitlab/ci/reports/security/scan_spec.rb429spec/rubocop/cop/graphql/id_type_spec.rb430spec/services/ci/build_unschedule_service_spec.rb431spec/serializers/ci/downloadable_artifact_entity_spec.rb432spec/lib/gitlab/ci/trace/section_parser_spec.rb433spec/lib/gitlab/ci/status/build/created_spec.rb434spec/lib/sidebars/menu_item_spec.rb435spec/graphql/resolvers/ci/jobs_resolver_spec.rb436spec/lib/gitlab/ci/templates/MATLAB_spec.rb437spec/models/issuable_severity_spec.rb438spec/services/webauthn/register_service_spec.rb439spec/validators/import/gitlab_projects/remote_file_validator_spec.rb440spec/models/design_management/design_action_spec.rb441spec/services/keys/last_used_service_spec.rb442spec/workers/ci/retry_pipeline_worker_spec.rb443spec/graphql/types/commit_action_mode_enum_spec.rb444spec/helpers/pagination_helper_spec.rb445spec/models/uploads/local_spec.rb446spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb447spec/graphql/types/projects/service_type_enum_spec.rb448spec/graphql/types/ci/config/include_type_spec.rb449spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb450spec/graphql/resolvers/project_resolver_spec.rb451spec/workers/jira_connect/sync_builds_worker_spec.rb452spec/lib/gitlab/middleware/compressed_json_spec.rb453spec/models/users/callout_spec.rb454spec/lib/gitlab/database/partitioning/replace_table_spec.rb455spec/lib/gitlab/git/util_spec.rb456spec/workers/ci/create_cross_project_pipeline_worker_spec.rb457spec/lib/gitlab/with_request_store_spec.rb458spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb459spec/lib/gitlab/ci/status/running_spec.rb460spec/models/concerns/strip_attribute_spec.rb461spec/lib/gitlab/word_diff/segments/chunk_spec.rb462spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb463spec/rubocop/cop/migration/background_migration_record_spec.rb464spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb465spec/services/groups/update_statistics_service_spec.rb466spec/lib/sidebars/projects/menus/scope_menu_spec.rb467spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb468spec/rubocop/cop/rspec/top_level_describe_path_spec.rb469spec/models/concerns/optionally_search_spec.rb470spec/lib/gitlab/phabricator_import/conduit/client_spec.rb471spec/lib/gitlab/database/load_balancing/srv_resolver_spec.rb472spec/models/packages/rubygems/metadatum_spec.rb473spec/graphql/types/award_emojis/award_emoji_type_spec.rb474spec/graphql/types/ci_configuration/sast/analyzers_entity_type_spec.rb475spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb476spec/rubocop/cop/safe_params_spec.rb477spec/graphql/types/packages/package_base_type_spec.rb478spec/presenters/ci/bridge_presenter_spec.rb479spec/lib/gitlab/ci/config/entry/caches_spec.rb480spec/graphql/resolvers/topics_resolver_spec.rb481spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb482spec/lib/sidebars/projects/menus/wiki_menu_spec.rb483spec/lib/sidebars/projects/menus/snippets_menu_spec.rb484spec/graphql/types/range_input_type_spec.rb485spec/policies/instance_metadata_policy_spec.rb486spec/graphql/types/ci/config/stage_type_spec.rb487spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb488spec/graphql/types/prometheus_alert_type_spec.rb489spec/dependencies/omniauth_saml_spec.rb490spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb491spec/models/discussion_note_spec.rb492spec/graphql/types/alert_management/domain_filter_enum_spec.rb493spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb494spec/graphql/types/tree/tree_type_spec.rb495spec/initializers/100_patch_omniauth_saml_spec.rb496spec/lib/api/validations/validators/absence_spec.rb497spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb498spec/helpers/admin/application_settings/settings_helper_spec.rb499spec/graphql/types/ci/test_suite_type_spec.rb500spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb501spec/graphql/types/permission_types/ci/runner_spec.rb502spec/lib/api/integrations/slack/events/url_verification_spec.rb503spec/lib/gitlab/kubernetes/role_binding_spec.rb504spec/graphql/types/packages/helm/metadata_type_spec.rb505spec/graphql/types/permission_types/merge_request_spec.rb506spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb507spec/spam/concerns/has_spam_action_response_fields_spec.rb508spec/graphql/types/packages/package_group_sort_enum_spec.rb509spec/graphql/types/ci/pipeline_status_enum_spec.rb510Filter specs:511Running specs:512Running all node tests without filter513spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb514spec/services/quick_actions/interpret_service_spec.rb515spec/models/concerns/ci/has_status_spec.rb516spec/services/ci/create_downstream_pipeline_service_spec.rb517spec/services/todo_service_spec.rb518spec/policies/group_policy_spec.rb519spec/lib/banzai/filter/references/issue_reference_filter_spec.rb520spec/models/commit_status_spec.rb521spec/lib/gitlab/background_migration/update_timelogs_project_id_spec.rb522spec/lib/gitlab/background_migration/drop_invalid_vulnerabilities_spec.rb523spec/lib/banzai/filter/references/commit_reference_filter_spec.rb524spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb525spec/models/ci/bridge_spec.rb526spec/finders/todos_finder_spec.rb527spec/lib/gitlab/bitbucket_server_import/importer_spec.rb528spec/services/incident_management/timeline_events/update_service_spec.rb529spec/graphql/mutations/merge_requests/update_spec.rb530spec/lib/gitlab/data_builder/push_spec.rb531spec/lib/gitlab/contributions_calendar_spec.rb532spec/lib/gitlab/tree_summary_spec.rb533spec/models/pages_domain_spec.rb534spec/models/notification_recipient_spec.rb535spec/services/search_service_spec.rb536spec/models/concerns/integrations/has_data_fields_spec.rb537spec/models/projects/build_artifacts_size_refresh_spec.rb538spec/models/list_spec.rb539spec/serializers/pipeline_details_entity_spec.rb540spec/workers/packages/debian/process_changes_worker_spec.rb541spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb542spec/lib/gitlab/data_builder/issuable_spec.rb543spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb544spec/models/incident_management/issuable_escalation_status_spec.rb545spec/policies/issuable_policy_spec.rb546spec/lib/gitlab/fake_application_settings_spec.rb547spec/policies/project_snippet_policy_spec.rb548spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb549spec/services/merge_requests/conflicts/resolve_service_spec.rb550spec/views/projects/_home_panel.html.haml_spec.rb551spec/services/projects/git_deduplication_service_spec.rb552spec/lib/gitlab/background_migration/batching_strategies/loose_index_scan_batching_strategy_spec.rb553spec/services/projects/container_repository/cleanup_tags_service_spec.rb554spec/lib/gitlab/import_export/merge_request_parser_spec.rb555spec/services/ci/delete_unit_tests_service_spec.rb556spec/services/merge_requests/get_urls_service_spec.rb557spec/models/alert_management/http_integration_spec.rb558spec/graphql/mutations/design_management/upload_spec.rb559spec/finders/packages/build_infos_finder_spec.rb560spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb561spec/models/performance_monitoring/prometheus_dashboard_spec.rb562spec/graphql/mutations/releases/create_spec.rb563spec/lib/gitlab/github_import/representation/diff_note_spec.rb564spec/lib/gitlab/quick_actions/extractor_spec.rb565spec/finders/user_recent_events_finder_spec.rb566spec/lib/gitlab/encoding_helper_spec.rb567spec/lib/gitlab/redis/cache_spec.rb568spec/finders/autocomplete/move_to_project_finder_spec.rb569spec/policies/award_emoji_policy_spec.rb570spec/lib/gitlab/logger_spec.rb571spec/models/merge_request/metrics_spec.rb572spec/models/protected_tag_spec.rb573spec/services/projects/open_issues_count_service_spec.rb574spec/lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed_spec.rb575spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb576spec/services/todos/destroy/confidential_issue_service_spec.rb577spec/lib/gitlab/email/receiver_spec.rb578spec/services/wiki_pages/destroy_service_spec.rb579spec/services/issues/reorder_service_spec.rb580spec/lib/gitlab/regex_requires_app_spec.rb581spec/graphql/mutations/incident_management/timeline_event/update_spec.rb582spec/lib/gitlab/middleware/same_site_cookies_spec.rb583spec/lib/gitlab/ci/trace/archive_spec.rb584spec/models/prometheus_alert_event_spec.rb585spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb586spec/models/merge_request_reviewer_spec.rb587spec/lib/gitlab/slash_commands/run_spec.rb588spec/views/projects/commits/_commit.html.haml_spec.rb589spec/models/design_management/action_spec.rb590spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb591spec/lib/gitlab/ci/build/rules_spec.rb592spec/policies/packages/policies/project_policy_spec.rb593spec/graphql/mutations/merge_requests/set_subscription_spec.rb594spec/lib/gitlab/ci/config/entry/image_spec.rb595spec/models/integrations/custom_issue_tracker_spec.rb596spec/serializers/group_child_serializer_spec.rb597spec/uploaders/packages/composer/cache_uploader_spec.rb598spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb599spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb600spec/services/todos/destroy/design_service_spec.rb601spec/helpers/ci/builds_helper_spec.rb602spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb603spec/tooling/lib/tooling/find_codeowners_spec.rb604spec/workers/ci/cancel_pipeline_worker_spec.rb605spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb606spec/lib/gitlab/diff/parser_spec.rb607spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb608spec/lib/gitlab/database/partitioning/time_partition_spec.rb609spec/graphql/mutations/boards/lists/update_spec.rb610spec/models/blob_viewer/base_spec.rb611spec/services/projects/create_from_template_service_spec.rb612spec/models/protected_branch/push_access_level_spec.rb613spec/policies/namespaces/user_namespace_policy_spec.rb614spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb615spec/models/work_items/type_spec.rb616spec/services/security/ci_configuration/sast_iac_create_service_spec.rb617spec/lib/gitlab/health_checks/redis/sessions_check_spec.rb618spec/rubocop/cop/graphql/descriptions_spec.rb619spec/workers/remove_unaccepted_member_invites_worker_spec.rb620spec/models/integrations/chat_message/push_message_spec.rb621spec/lib/gitlab/rack_attack_spec.rb622spec/rubocop/cop/migration/update_column_in_batches_spec.rb623spec/lib/gitlab/ci/templates/Jobs/sast_iac_latest_gitlab_ci_yaml_spec.rb624spec/graphql/mutations/labels/create_spec.rb625spec/policies/clusters/instance_policy_spec.rb626spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb627spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb628spec/lib/bitbucket/representation/repo_spec.rb629spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb630spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb631spec/services/design_management/move_designs_service_spec.rb632spec/lib/gitlab/ci/runner_instructions_spec.rb633spec/workers/container_expiration_policy_worker_spec.rb634spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb635spec/lib/gitlab/ci/config/entry/rules_spec.rb636spec/lib/gitlab/ci/pipeline/logger_spec.rb637spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb638spec/lib/gitlab/ci/build/releaser_spec.rb639spec/workers/propagate_integration_inherit_worker_spec.rb640spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb641spec/helpers/lazy_image_tag_helper_spec.rb642spec/lib/gitlab/cycle_analytics/summary/value_spec.rb643spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb644spec/serializers/merge_request_user_entity_spec.rb645spec/lib/gitlab/ci/config/entry/imageable_spec.rb646spec/workers/stuck_export_jobs_worker_spec.rb647spec/services/todos/destroy/destroyed_issuable_service_spec.rb648spec/services/ci/create_pipeline_service/merge_requests_spec.rb649spec/workers/external_service_reactive_caching_worker_spec.rb650spec/lib/gitlab/prometheus/adapter_spec.rb651spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb652spec/helpers/x509_helper_spec.rb653spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb654spec/workers/hashed_storage/project_migrate_worker_spec.rb655spec/lib/release_highlights/validator/entry_spec.rb656spec/lib/gitlab/import_export/lfs_saver_spec.rb657spec/lib/gitlab/avatar_cache_spec.rb658spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb659spec/services/customer_relations/contacts/create_service_spec.rb660spec/views/events/event/_push.html.haml_spec.rb661spec/models/users/credit_card_validation_spec.rb662spec/models/concerns/batch_nullify_dependent_associations_spec.rb663spec/finders/feature_flags_user_lists_finder_spec.rb664spec/workers/merge_requests/resolve_todos_after_approval_worker_spec.rb665spec/models/packages/composer/cache_file_spec.rb666spec/support_specs/database/prevent_cross_joins_spec.rb667spec/workers/rebase_worker_spec.rb668spec/serializers/project_access_token_entity_spec.rb669spec/services/clusters/integrations/create_service_spec.rb670spec/services/bulk_imports/repository_bundle_export_service_spec.rb671spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb672spec/services/google_cloud/enable_cloud_run_service_spec.rb673spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb674spec/workers/merge_requests/resolve_todos_worker_spec.rb675spec/lib/api/entities/merge_request_changes_spec.rb676spec/services/packages/debian/update_distribution_service_spec.rb677spec/lib/gitlab/diff/line_mapper_spec.rb678spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb679spec/lib/container_registry/registry_spec.rb680spec/lib/gitlab/ci/config/entry/jobs_spec.rb681spec/workers/packages/rubygems/extraction_worker_spec.rb682spec/services/todos/allowed_target_filter_service_spec.rb683spec/serializers/feature_flag_serializer_spec.rb684spec/rubocop/cop/code_reuse/worker_spec.rb685spec/workers/projects/import_export/relation_export_worker_spec.rb686spec/lib/gitlab/view/presenter/base_spec.rb687spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb688spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb689spec/models/approval_spec.rb690spec/lib/gitlab/sample_data_template_spec.rb691spec/lib/gitlab/ci/config/entry/tags_spec.rb692spec/lib/gitlab/sql/union_spec.rb693spec/services/terraform/states/trigger_destroy_service_spec.rb694spec/serializers/merge_requests/pipeline_entity_spec.rb695spec/helpers/startupjs_helper_spec.rb696spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb697spec/lib/gitlab/metrics/dashboard/stages/url_validator_spec.rb698spec/lib/gitlab/ci/reports/security/scan_spec.rb699spec/rubocop/cop/graphql/id_type_spec.rb700spec/services/ci/build_unschedule_service_spec.rb701spec/serializers/ci/downloadable_artifact_entity_spec.rb702spec/lib/gitlab/ci/trace/section_parser_spec.rbKnapsack report generator started!703Run options: exclude {:quarantine=>true, :level=>"migration"}704Test environment set up in 0.675564888 seconds705Auto-DevOps.gitlab-ci.yml706 default_branch: "master"707 the created pipeline708 creates a build and a test job709 when the project is set for deployment to AWS710 creates an ECS deployment job for production only711 behaves like no Kubernetes deployment job712 does not create any Kubernetes deployment-related builds713 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present714 when AUTO_DEVOPS_PLATFORM_TARGET is nil715 does not trigger the job716 when AUTO_DEVOPS_PLATFORM_TARGET is empty717 does not trigger the job718 with FARGATE as a launch type719 creates a FARGATE deployment job for production only720 and we are not on the default branch721 creates an ECS deployment job for review only722 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present723 when AUTO_DEVOPS_PLATFORM_TARGET is nil724 does not trigger the job725 when AUTO_DEVOPS_PLATFORM_TARGET is empty726 does not trigger the job727 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present728 when AUTO_DEVOPS_PLATFORM_TARGET is nil729 does not trigger the job730 when AUTO_DEVOPS_PLATFORM_TARGET is empty731 does not trigger the job732 with FARGATE as a launch type733 creates an FARGATE deployment job for review only734 and when the project has an active cluster735 on default branch736 triggers the deployment to Kubernetes, not to ECS737 when the platform target is EC2738 contains the build_artifact job, not the build job739 when the project has no active cluster740 only creates a build and a test stage741 behaves like no Kubernetes deployment job742 does not create any Kubernetes deployment-related builds743 when a cluster is attached744 behaves like pipeline with Kubernetes jobs745 deployment-related builds746 on default branch747 does not include rollout jobs besides production748 when STAGING_ENABLED=1749 includes a staging job and a production_manual job750 when CANARY_ENABLED=1751 includes a canary job and a production_manual job752 when MIGRATE_HELM_2TO3=true753 includes a helm-2to3:migrate and a helm-2to3:cleanup job754 outside of default branch755 does not include rollout jobs besides review756 when MIGRATE_HELM_2TO3=true757 includes a helm-2to3:migrate and a helm-2to3:cleanup job758 when certificate_based_clusters FF is disabled759 does not include production job760 when project has an Agent761 behaves like pipeline with Kubernetes jobs762 deployment-related builds763 on default branch764 does not include rollout jobs besides production765 when STAGING_ENABLED=1766 includes a staging job and a production_manual job767 when CANARY_ENABLED=1768 includes a canary job and a production_manual job769 when MIGRATE_HELM_2TO3=true770 includes a helm-2to3:migrate and a helm-2to3:cleanup job771 outside of default branch772 does not include rollout jobs besides review773 when MIGRATE_HELM_2TO3=true774 includes a helm-2to3:migrate and a helm-2to3:cleanup job775 when certificate_based_clusters FF is disabled776 includes production job777 buildpack detection778 No match779 creates a pipeline with the expected jobs780 Buildpack781 creates a pipeline with the expected jobs782 Explicit set783 creates a pipeline with the expected jobs784 Explicit unset785 creates a pipeline with the expected jobs786 DOCKERFILE_PATH787 creates a pipeline with the expected jobs788 Dockerfile789 creates a pipeline with the expected jobs790 Clojure791 creates a pipeline with the expected jobs792 Go modules793 creates a pipeline with the expected jobs794 Go gb795 creates a pipeline with the expected jobs796 Gradle797 creates a pipeline with the expected jobs798 Java799 creates a pipeline with the expected jobs800 Multi-buildpack801 creates a pipeline with the expected jobs802 NodeJS803 creates a pipeline with the expected jobs804 PHP805 creates a pipeline with the expected jobs806 Play807 creates a pipeline with the expected jobs808 Python809 creates a pipeline with the expected jobs810 Ruby811 creates a pipeline with the expected jobs812 Scala813 creates a pipeline with the expected jobs814 Static815 creates a pipeline with the expected jobs816 default_branch: "main"817 the created pipeline818 creates a build and a test job819 when the project is set for deployment to AWS820 creates an ECS deployment job for production only821 behaves like no Kubernetes deployment job822 does not create any Kubernetes deployment-related builds823 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present824 when AUTO_DEVOPS_PLATFORM_TARGET is nil825 does not trigger the job826 when AUTO_DEVOPS_PLATFORM_TARGET is empty827 does not trigger the job828 with FARGATE as a launch type829 creates a FARGATE deployment job for production only830 and we are not on the default branch831 creates an ECS deployment job for review only832 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present833 when AUTO_DEVOPS_PLATFORM_TARGET is nil834 does not trigger the job835 when AUTO_DEVOPS_PLATFORM_TARGET is empty836 does not trigger the job837 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present838 when AUTO_DEVOPS_PLATFORM_TARGET is nil839 does not trigger the job840 when AUTO_DEVOPS_PLATFORM_TARGET is empty841 does not trigger the job842 with FARGATE as a launch type843 creates an FARGATE deployment job for review only844 and when the project has an active cluster845 on default branch846 triggers the deployment to Kubernetes, not to ECS847 when the platform target is EC2848 contains the build_artifact job, not the build job849 when the project has no active cluster850 only creates a build and a test stage851 behaves like no Kubernetes deployment job852 does not create any Kubernetes deployment-related builds853 when a cluster is attached854 behaves like pipeline with Kubernetes jobs855 deployment-related builds856 on default branch857 does not include rollout jobs besides production858 when STAGING_ENABLED=1859 includes a staging job and a production_manual job860 when CANARY_ENABLED=1861 includes a canary job and a production_manual job862 when MIGRATE_HELM_2TO3=true863 includes a helm-2to3:migrate and a helm-2to3:cleanup job864 outside of default branch865 does not include rollout jobs besides review866 when MIGRATE_HELM_2TO3=true867 includes a helm-2to3:migrate and a helm-2to3:cleanup job868 when certificate_based_clusters FF is disabled869 does not include production job870 when project has an Agent871 behaves like pipeline with Kubernetes jobs872 deployment-related builds873 on default branch874 does not include rollout jobs besides production875 when STAGING_ENABLED=1876 includes a staging job and a production_manual job877 when CANARY_ENABLED=1878 includes a canary job and a production_manual job879 when MIGRATE_HELM_2TO3=true880 includes a helm-2to3:migrate and a helm-2to3:cleanup job881 outside of default branch882 does not include rollout jobs besides review883 when MIGRATE_HELM_2TO3=true884 includes a helm-2to3:migrate and a helm-2to3:cleanup job885 when certificate_based_clusters FF is disabled886 includes production job887 buildpack detection888 No match889 creates a pipeline with the expected jobs890 Buildpack891 creates a pipeline with the expected jobs892 Explicit set893 creates a pipeline with the expected jobs894 Explicit unset895 creates a pipeline with the expected jobs896 DOCKERFILE_PATH897 creates a pipeline with the expected jobs898 Dockerfile899 creates a pipeline with the expected jobs900 Clojure901 creates a pipeline with the expected jobs902 Go modules903 creates a pipeline with the expected jobs904 Go gb905 creates a pipeline with the expected jobs906 Gradle907 creates a pipeline with the expected jobs908 Java909 creates a pipeline with the expected jobs910 Multi-buildpack911 creates a pipeline with the expected jobs912 NodeJS913 creates a pipeline with the expected jobs914 PHP915 creates a pipeline with the expected jobs916 Play917 creates a pipeline with the expected jobs918 Python919 creates a pipeline with the expected jobs920 Ruby921 creates a pipeline with the expected jobs922 Scala923 creates a pipeline with the expected jobs924 Static925 creates a pipeline with the expected jobs926QuickActions::InterpretService927 #execute928 limits to commands passed929 preserves leading whitespace930 tracks MAU for commands931 move issue command932 returns the move issue message933 returns move issue failure message when the referenced issue is not found934 behaves like reopen command935 returns state_event: "reopen" if content contains /reopen936 returns the reopen message937 behaves like reopen command938 returns state_event: "reopen" if content contains /reopen939 returns the reopen message940 behaves like close command941 returns state_event: "close" if content contains /close942 returns the close message943 behaves like close command944 returns state_event: "close" if content contains /close945 returns the close message946 merge command947 behaves like merge immediately command948 runs merge command if content contains /merge949 returns them merge message950 when the head pipeline of merge request is running951 behaves like merge automatically command952 runs merge command if content contains /merge and returns merge message953 can not be merged when logged user does not have permissions954 behaves like failed command955 populates {} if content contains an unsupported command956 returns Could not apply merge command. message957 can not be merged when sha does not match958 behaves like failed command959 populates {} if content contains an unsupported command960 returns Branch has been updated since the merge was requested. message961 when sha is missing962 behaves like failed command963 populates {} if content contains an unsupported command964 returns The `/merge` quick action requires the SHA of the head of the branch. message965 issue can not be merged966 behaves like failed command967 populates {} if content contains an unsupported command968 returns Could not apply merge command. message969 non persisted merge request cant be merged970 behaves like failed command971 populates {} if content contains an unsupported command972 returns Could not apply merge command. message973 not persisted merge request can not be merged974 behaves like failed command975 populates {} if content contains an unsupported command976 returns Could not apply merge command. message977 behaves like title command978 populates title: "A brand new title" if content contains /title A brand new title979 returns the title message980 behaves like title command981 populates title: "A brand new title" if content contains /title A brand new title982 returns the title message983 behaves like failed command984 populates {} if content contains an unsupported command985 returns an empty message986 assign command with one user987 behaves like assign command988 assigns to me989 does not assign to group members990 assigns to users with escaped underscores991 assigns to a single user992 returns the assign message993 when there are too many references994 says what went wrong995 when the user extractor raises an uninticipated error996 tracks the exception in dev, and reports a generic message in production997 when the reference does not match the exact case998 assigns to the user999 when the user has a private profile1000 assigns to the user1001 behaves like assign command1002 assigns to me1003 does not assign to group members1004 assigns to users with escaped underscores1005 assigns to a single user1006 returns the assign message1007 when there are too many references1008 says what went wrong1009 when the user extractor raises an uninticipated error1010 tracks the exception in dev, and reports a generic message in production1011 when the reference does not match the exact case1012 assigns to the user1013 when the user has a private profile1014 assigns to the user1015 behaves like assign command1016 assigns to me1017 does not assign to group members1018 assigns to users with escaped underscores1019 assigns to a single user1020 returns the assign message1021 when there are too many references1022 says what went wrong1023 when the user extractor raises an uninticipated error1024 tracks the exception in dev, and reports a generic message in production1025 when the reference does not match the exact case1026 assigns to the user1027 when the user has a private profile1028 assigns to the user1029 assign command with multiple assignees1030 behaves like assigns to one of the two users1031 assigns to a single user1032 behaves like assigns to one of the two users1033 assigns to a single user1034 assign command with me alias1035 behaves like assign command1036 assigns to me1037 does not assign to group members1038 assigns to users with escaped underscores1039 assigns to a single user1040 returns the assign message1041 when there are too many references1042 says what went wrong1043 when the user extractor raises an uninticipated error1044 tracks the exception in dev, and reports a generic message in production1045 when the reference does not match the exact case1046 assigns to the user1047 when the user has a private profile1048 assigns to the user1049 behaves like assign command1050 assigns to me1051 does not assign to group members1052 assigns to users with escaped underscores1053 assigns to a single user1054 returns the assign message1055 when there are too many references1056 says what went wrong1057 when the user extractor raises an uninticipated error1058 tracks the exception in dev, and reports a generic message in production1059 when the reference does not match the exact case1060 assigns to the user1061 when the user has a private profile1062 assigns to the user1063 assign command with me alias and whitespace1064 behaves like assign command1065 assigns to me1066 does not assign to group members1067 assigns to users with escaped underscores1068 assigns to a single user1069 returns the assign message1070 when there are too many references1071 says what went wrong1072 when the user extractor raises an uninticipated error1073 tracks the exception in dev, and reports a generic message in production1074 when the reference does not match the exact case1075 assigns to the user1076 when the user has a private profile1077 assigns to the user1078 behaves like assign command1079 assigns to me1080 does not assign to group members1081 assigns to users with escaped underscores1082 assigns to a single user1083 returns the assign message1084 when there are too many references1085 says what went wrong1086 when the user extractor raises an uninticipated error1087 tracks the exception in dev, and reports a generic message in production1088 when the reference does not match the exact case1089 assigns to the user1090 when the user has a private profile1091 assigns to the user1092 behaves like failed command1093 populates {} if content contains an unsupported command1094 returns a parse error message1095 behaves like failed command1096 populates {} if content contains an unsupported command1097 returns Failed to assign a user because no user was found. message1098 assign_reviewer command1099 with one user1100 behaves like assign_reviewer command1101 assigns a reviewer to a single user1102 with an issue instead of a merge request1103 behaves like failed command1104 populates {} if content contains an unsupported command1105 returns Could not apply assign_reviewer command. message1106 assign command with multiple assignees1107 assigns to one of the two users1108 assigns to a single reviewer1109 with "me" alias1110 behaves like assign_reviewer command1111 assigns a reviewer to a single user1112 with an alias and whitespace1113 behaves like assign_reviewer command1114 assigns a reviewer to a single user1115 with @all1116 behaves like failed command1117 populates {} if content contains an unsupported command1118 returns a parse error message1119 with an incorrect user1120 behaves like failed command1121 populates {} if content contains an unsupported command1122 returns a parse error message1123 with the "reviewer" alias1124 behaves like assign_reviewer command1125 assigns a reviewer to a single user1126 with the "request_review" alias1127 behaves like assign_reviewer command1128 assigns a reviewer to a single user1129 with no user1130 behaves like failed command1131 populates {} if content contains an unsupported command1132 returns Failed to assign a reviewer because no user was specified. message1133 with extra text1134 behaves like failed command1135 populates {} if content contains an unsupported command1136 returns a parse error message1137 unassign_reviewer command1138 with one user1139 behaves like unassign_reviewer command1140 removes a single reviewer1141 with an issue instead of a merge request1142 behaves like failed command1143 populates {} if content contains an unsupported command1144 returns Could not apply unassign_reviewer command. message1145 with anything after the command1146 behaves like unassign_reviewer command1147 removes a single reviewer1148 with the "remove_reviewer" alias1149 behaves like unassign_reviewer command1150 removes a single reviewer1151 with no user1152 behaves like unassign_reviewer command1153 removes a single reviewer1154 unassign command1155 Issue1156 populates assignee_ids: [] if content contains /unassign1157 returns the unassign message for all the assignee if content contains /unassign1158 Merge Request1159 populates assignee_ids: [] if content contains /unassign1160 returns the unassign message for all the assignee if content contains /unassign1161 project milestones1162 behaves like milestone command1163 fetches milestone and populates milestone_id if content contains /milestone1164 returns the milestone message1165 returns empty milestone message when milestone is wrong1166 behaves like milestone command1167 fetches milestone and populates milestone_id if content contains /milestone1168 returns the milestone message1169 returns empty milestone message when milestone is wrong1170 only group milestones available1171 behaves like milestone command1172 fetches milestone and populates milestone_id if content contains /milestone1173 returns the milestone message1174 returns empty milestone message when milestone is wrong1175 behaves like milestone command1176 fetches milestone and populates milestone_id if content contains /milestone1177 returns the milestone message1178 returns empty milestone message when milestone is wrong1179 behaves like remove_milestone command1180 populates milestone_id: nil if content contains /remove_milestone1181 returns removed milestone message1182 behaves like remove_milestone command1183 populates milestone_id: nil if content contains /remove_milestone1184 returns removed milestone message1185 behaves like label command1186 fetches label ids and populates add_label_ids if content contains /label1187 returns the label message1188 behaves like label command1189 fetches label ids and populates add_label_ids if content contains /label1190 returns the label message1191 with a colon label1192 when quoted1193 behaves like label command1194 fetches label ids and populates add_label_ids if content contains /label1195 returns the label message1196 behaves like label command1197 fetches label ids and populates add_label_ids if content contains /label1198 returns the label message1199 when unquoted1200 behaves like label command1201 fetches label ids and populates add_label_ids if content contains /label1202 returns the label message1203 behaves like label command1204 fetches label ids and populates add_label_ids if content contains /label1205 returns the label message1206 with a scoped label1207 when quoted1208 behaves like label command1209 fetches label ids and populates add_label_ids if content contains /label1210 returns the label message1211 behaves like label command1212 fetches label ids and populates add_label_ids if content contains /label1213 returns the label message1214 when unquoted1215 behaves like label command1216 fetches label ids and populates add_label_ids if content contains /label1217 returns the label message1218 behaves like label command1219 fetches label ids and populates add_label_ids if content contains /label1220 returns the label message1221 behaves like multiple label command1222 fetches label ids and populates add_label_ids if content contains multiple /label1223 behaves like multiple label with same argument1224 prevents duplicate label ids and populates add_label_ids if content contains multiple /label1225 behaves like multiword label name starting without ~1226 fetches label ids and populates add_label_ids if content contains /label1227 behaves like multiword label name starting without ~1228 fetches label ids and populates add_label_ids if content contains /label1229 behaves like label name is included in the middle of another label name1230 ignores the sublabel when the content contains the includer label name1231 behaves like label name is included in the middle of another label name1232 ignores the sublabel when the content contains the includer label name1233 behaves like unlabel command1234 fetches label ids and populates remove_label_ids if content contains /unlabel1235 returns the unlabel message1236 behaves like unlabel command1237 fetches label ids and populates remove_label_ids if content contains /unlabel1238 returns the unlabel message1239 behaves like multiple unlabel command1240 fetches label ids and populates remove_label_ids if content contains mutiple /unlabel1241 behaves like unlabel command with no argument1242 populates label_ids: [] if content contains /unlabel with no arguments1243 behaves like unlabel command with no argument1244 populates label_ids: [] if content contains /unlabel with no arguments1245 behaves like relabel command1246 populates label_ids: [] if content contains /relabel1247 returns the relabel message1248 behaves like relabel command1249 populates label_ids: [] if content contains /relabel1250 returns the relabel message1251 behaves like done command1252 populates todo_event: "done" if content contains /done1253 returns the done message1254 behaves like done command1255 populates todo_event: "done" if content contains /done1256 returns the done message1257 behaves like subscribe command1258 populates subscription_event: "subscribe" if content contains /subscribe1259 returns the subscribe message1260 behaves like subscribe command1261 populates subscription_event: "subscribe" if content contains /subscribe1262 returns the subscribe message1263 behaves like unsubscribe command1264 populates subscription_event: "unsubscribe" if content contains /unsubscribe1265 returns the unsubscribe message1266 behaves like unsubscribe command1267 populates subscription_event: "unsubscribe" if content contains /unsubscribe1268 returns the unsubscribe message1269 behaves like failed command1270 populates {} if content contains an unsupported command1271 returns Could not apply due command. message1272 behaves like remove_due_date command1273 populates due_date: nil if content contains /remove_due_date1274 returns Removed the due date1275 behaves like draft command1276 returns wip_event: "draft"1277 returns the draft message1278 behaves like ready command1279 returns wip_event: "ready"1280 returns the ready message1281 behaves like draft/ready command no action1282 returns the no action message if there is no change to the status1283 behaves like ready command1284 returns wip_event: "ready"1285 returns the ready message1286 behaves like failed command1287 populates {} if content contains an unsupported command1288 returns Could not apply remove_due_date command. message1289 behaves like estimate command1290 populates time_estimate: 3600 if content contains /estimate 1h1291 returns the time_estimate formatted message1292 behaves like failed command1293 populates {} if content contains an unsupported command1294 returns an empty message1295 behaves like failed command1296 populates {} if content contains an unsupported command1297 returns an empty message1298 behaves like spend command1299 populates spend_time: 3600 if content contains /spend 1h1300 behaves like spend command1301 populates spend_time: 3600 if content contains /spend 1h1302 behaves like spend command with negative time1303 populates spend_time: -7200 if content contains -120m1304 returns the spend_time message including the formatted duration and verb1305 behaves like spend command with negative time1306 populates spend_time: -7200 if content contains -120m1307 returns the spend_time message including the formatted duration and verb1308 behaves like spend command with valid date1309 populates spend time: 1800 with date in date type format1310 behaves like spend command with valid date1311 populates spend time: 1800 with date in date type format1312 behaves like spend command with invalid date1313 will not create any note and timelog1314 behaves like spend command with invalid date1315 will not create any note and timelog1316 behaves like spend command with future date1317 will not create any note and timelog1318 behaves like spend command with future date1319 will not create any note and timelog1320 behaves like failed command1321 populates {} if content contains an unsupported command1322 returns an empty message1323 behaves like failed command1324 populates {} if content contains an unsupported command1325 returns an empty message1326 behaves like failed command1327 populates {} if content contains an unsupported command1328 returns an empty message1329 behaves like failed command1330 populates {} if content contains an unsupported command1331 returns an empty message1332 behaves like remove_estimate command1333 populates time_estimate: 0 if content contains /remove_estimate1334 returns the remove_estimate message1335 behaves like remove_time_spent command1336 populates spend_time: :reset if content contains /remove_time_spent1337 returns the remove_time_spent message1338 /confidential1339 behaves like confidential command1340 marks issue as confidential if content contains /confidential1341 returns the confidential message1342 when issuable is already confidential1343 returns an error message1344 is not part of the available commands1345 behaves like confidential command1346 marks issue as confidential if content contains /confidential1347 returns the confidential message1348 when issuable is already confidential1349 returns an error message1350 is not part of the available commands1351 when non-member is creating a new issue1352 behaves like confidential command1353 marks issue as confidential if content contains /confidential1354 returns the confidential message1355 when issuable is already confidential1356 returns an error message1357 is not part of the available commands1358 behaves like lock command1359 returns discussion_locked: true if content contains /lock1360 returns the lock discussion message1361 behaves like lock command1362 returns discussion_locked: true if content contains /lock1363 returns the lock discussion message1364 behaves like unlock command1365 returns discussion_locked: true if content contains /unlock1366 returns the unlock discussion message1367 behaves like unlock command1368 returns discussion_locked: true if content contains /unlock1369 returns the unlock discussion message1370 /todo1371 if issuable is an Issue1372 behaves like todo command1373 populates todo_event: "add" if content contains /todo1374 returns the todo message1375 if issuable is a MergeRequest1376 behaves like todo command1377 populates todo_event: "add" if content contains /todo1378 returns the todo message1379 if issuable is a Commit1380 behaves like failed command1381 populates {} if content contains an unsupported command1382 returns Could not apply todo command. message1383 /due command1384 returns invalid date format message when the due date is invalid1385 behaves like due command1386 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281387 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281388 behaves like due command1389 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281390 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281391 behaves like due command1392 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281393 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281394 behaves like due command1395 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281396 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281397 /copy_metadata command1398 is available when the user is a developer1399 when the user does not have permission1400 is not available1401 behaves like failed command1402 populates {} if content contains an unsupported command1403 returns an empty message1404 behaves like copy_metadata command1405 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1406 returns the copy metadata message1407 behaves like copy_metadata command1408 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1409 returns the copy metadata message1410 when the parent issuable has a milestone1411 behaves like copy_metadata command1412 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1413 returns the copy metadata message1414 when more than one issuable is passed1415 behaves like copy_metadata command1416 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1417 returns the copy metadata message1418 cross project references1419 behaves like failed command1420 populates {} if content contains an unsupported command1421 returns an empty message1422 behaves like failed command1423 populates {} if content contains an unsupported command1424 returns an empty message1425 behaves like failed command1426 populates {} if content contains an unsupported command1427 returns an empty message1428 /duplicate command1429 behaves like duplicate command1430 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference1431 returns the duplicate message1432 behaves like failed command1433 populates {} if content contains an unsupported command1434 returns an empty message1435 cross project references1436 behaves like duplicate command1437 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference1438 returns the duplicate message1439 behaves like failed command1440 populates {} if content contains an unsupported command1441 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1442 behaves like failed command1443 populates {} if content contains an unsupported command1444 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1445 when current_user cannot :admin_issue1446 behaves like failed command1447 populates {} if content contains an unsupported command1448 returns Could not apply assign command. message1449 behaves like failed command1450 populates {} if content contains an unsupported command1451 returns Could not apply unassign command. message1452 behaves like failed command1453 populates {} if content contains an unsupported command1454 returns Could not apply milestone command. message1455 behaves like failed command1456 populates {} if content contains an unsupported command1457 returns Could not apply remove_milestone command. message1458 behaves like failed command1459 populates {} if content contains an unsupported command1460 returns Could not apply label command. message1461 behaves like failed command1462 populates {} if content contains an unsupported command1463 returns Could not apply unlabel command. message1464 behaves like failed command1465 populates {} if content contains an unsupported command1466 returns Could not apply relabel command. message1467 behaves like failed command1468 populates {} if content contains an unsupported command1469 returns Could not apply due command. message1470 behaves like failed command1471 populates {} if content contains an unsupported command1472 returns Could not apply remove_due_date command. message1473 behaves like failed command1474 populates {} if content contains an unsupported command1475 returns Could not apply confidential command. message1476 behaves like failed command1477 populates {} if content contains an unsupported command1478 returns Could not apply lock command. message1479 behaves like failed command1480 populates {} if content contains an unsupported command1481 returns Could not apply unlock command. message1482 /award command1483 behaves like award command1484 toggle award 100 emoji if content contains /award :100:1485 returns the award message1486 behaves like award command1487 toggle award 100 emoji if content contains /award :100:1488 returns the award message1489 ignores command with no argument1490 behaves like failed command1491 populates {} if content contains an unsupported command1492 returns an empty message1493 ignores non-existing / invalid emojis1494 behaves like failed command1495 populates {} if content contains an unsupported command1496 returns an empty message1497 behaves like failed command1498 populates {} if content contains an unsupported command1499 returns an empty message1500 if issuable is a Commit1501 behaves like failed command1502 populates {} if content contains an unsupported command1503 returns Could not apply award command. message1504 /shrug command1505 behaves like shrug command1506 appends ¯\_(ツ)_/¯ to the comment1507 behaves like shrug command1508 appends ¯\_(ツ)_/¯ to the comment1509 /tableflip command1510 behaves like tableflip command1511 appends (╯°□°)╯︵ ┻━┻ to the comment1512 behaves like tableflip command1513 appends (╯°□°)╯︵ ┻━┻ to the comment1514 /target_branch command1515 updates target_branch if /target_branch command is executed1516 handles blanks around param1517 returns the target_branch message1518 ignores command with no argument1519 behaves like failed command1520 populates {} if content contains an unsupported command1521 returns Could not apply target_branch command. message1522 ignores non-existing target branch1523 behaves like failed command1524 populates {} if content contains an unsupported command1525 returns Could not apply target_branch command. message1526 /board_move command1527 populates remove_label_ids for all current board columns1528 populates add_label_ids with the id of the given label1529 does not include the given label id in remove_label_ids1530 does not remove label ids that are not lists on the board1531 returns board_move message1532 if the project has multiple boards1533 behaves like failed command1534 populates {} if content contains an unsupported command1535 returns Could not apply board_move command. message1536 if the given label does not exist1537 behaves like failed command1538 populates {} if content contains an unsupported command1539 returns Failed to move this issue because label was not found. message1540 if multiple labels are given1541 behaves like failed command1542 populates {} if content contains an unsupported command1543 returns Failed to move this issue because only a single label can be provided. message1544 if the given label is not a list on the board1545 behaves like failed command1546 populates {} if content contains an unsupported command1547 returns Failed to move this issue because label was not found. message1548 if issuable is not an Issue1549 behaves like failed command1550 populates {} if content contains an unsupported command1551 returns Could not apply board_move command. message1552 /tag command1553 ignores command with no argument1554 behaves like failed command1555 populates {} if content contains an unsupported command1556 returns an empty message1557 tags a commit with a tag name1558 behaves like tag command1559 tags a commit1560 returns the tag message1561 tags a commit with a tag name and message1562 behaves like tag command1563 tags a commit1564 returns the tag message1565 /create_merge_request command1566 populates create_merge_request with branch_name and issue iid1567 returns the create_merge_request message1568 if issuable is not an Issue1569 behaves like failed command1570 populates {} if content contains an unsupported command1571 returns Could not apply create_merge_request command. message1572 when logged user cannot create_merge_requests in the project1573 behaves like failed command1574 populates {} if content contains an unsupported command1575 returns Could not apply create_merge_request command. message1576 when logged user cannot push code to the project1577 behaves like failed command1578 populates {} if content contains an unsupported command1579 returns Could not apply create_merge_request command. message1580 submit_review command1581 note: "I like it"1582 submits the users current review1583 note: "/submit_review"1584 submits the users current review1585 relate command1586 user is member of group1587 relate a single issue1588 behaves like relate command1589 relates issues1590 relate multiple issues at once1591 behaves like relate command1592 relates issues1593 when quick action target is unpersisted1594 relates the issues after the issue is persisted1595 empty relate command1596 behaves like relate command1597 relates issues1598 already having related issues1599 behaves like relate command1600 relates issues1601 cross project1602 relate a cross project issue1603 behaves like relate command1604 relates issues1605 relate multiple cross projects issues at once1606 behaves like relate command1607 relates issues1608 relate a non-existing issue1609 behaves like relate command1610 relates issues1611 relate a private issue1612 behaves like relate command1613 relates issues1614 invite_email command1615 behaves like failed command1616 populates {} if content contains an unsupported command1617/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1618/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1619 returns No email participants were added. Either none were provided, or they already exist. message1620 with existing email participant1621 behaves like failed command1622/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1623/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1624 populates {} if content contains an unsupported command1625/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1626/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1627 returns No email participants were added. Either none were provided, or they already exist. message1628 with new email participants1629/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1630/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1631 returns message1632/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1633/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1634 adds 2 participants1635 with mixed case email1636/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1637/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1638 returns correctly cased message1639 with invalid email1640/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1641/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1642 only adds valid emails1643 with existing email1644/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1645/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1646 only adds new emails1647/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1648/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1649 only adds new (case insensitive) emails1650 with duplicate email1651/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1652/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1653 only adds unique new emails1654 with more than 6 emails1655/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1656/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1657 only adds 6 new emails1658 with feature flag disabled1659 does not add any participants1660 severity command1661 behaves like failed command1662 populates {} if content contains an unsupported command1663 returns No severity matches the provided parameter message1664 when quick action is used on creation1665 behaves like updates the severity1666 is expected to change `issuable.severity` from "unknown" to "medium"1667 issuable does not support severity1668 behaves like failed command1669 populates {} if content contains an unsupported command1670 returns message1671 severity given with S format1672 behaves like updates the severity1673 is expected to change `issuable.severity` from "unknown" to "medium"1674 severity given with number format1675 behaves like updates the severity1676 is expected to change `issuable.severity` from "unknown" to "medium"1677 severity given with text format1678 behaves like updates the severity1679 is expected to change `issuable.severity` from "unknown" to "medium"1680 an issuable that does not support severity1681 behaves like failed command1682 populates {} if content contains an unsupported command1683 returns Could not apply severity command. message1684 approve command1685 approves the current merge request1686 when the user can't approve1687 does not approve the MR1688 behaves like approve command unavailable1689 is not part of the available commands1690 unapprove command1691 unapproves the current merge request1692 when the user can't unapprove1693 does not unapprove the MR1694 behaves like unapprove command unavailable1695 is not part of the available commands1696 crm_contact commands1697 add_contacts command adds the contact1698 remove_contacts command removes the contact1699 #explain1700 close command1701 includes issuable name1702 reopen command1703 includes issuable name1704 title command1705 includes new title1706 assign command1707 when using a reference1708 tells us we will assign the developer1709 when using a bare username1710 tells us we will assign the developer1711 when using me1712 tells us we will assign the developer1713 when there are unparseable arguments1714 tells us why we cannot do that1715 unassign command1716 includes current assignee reference1717 unassign_reviewer command1718 includes current assignee reference1719 assign_reviewer command1720 includes only the user reference1721 milestone command1722 is empty when milestone reference is wrong1723 remove milestone command1724 includes current milestone name1725 label command1726 is empty when there are no correct labels1727 unlabel command1728 says all labels if no parameter provided1729 relabel command1730 includes label name1731 subscribe command1732 includes issuable name1733 unsubscribe command1734 includes issuable name1735 due command1736 includes the date1737 draft command1738 includes the new status1739 ready command1740 includes the new status1741 includes the no change message when status unchanged1742 award command1743 includes the emoji1744 estimate command1745 includes the formatted duration1746 spend command1747 includes the formatted duration and proper verb when using /spend1748 includes the formatted duration and proper verb when using /spent1749 target branch command1750 includes the branch name1751 board move command1752 includes the label name1753 move issue to another project command1754 includes the project name1755 tag a commit1756 with a tag name1757 without a message1758 includes the tag name only1759 with an empty message1760 includes the tag name only1761 with a tag name and message1762 includes the tag name and message1763 create a merge request1764 with no branch name1765 uses the default branch name1766 returns the execution message using the default branch name1767 with a branch name1768 uses the given branch name1769 returns the execution message using the given branch name1770 #commands_executed_count1771 counts commands executed1772 crm commands1773 when group has no contacts1774 /add_contacts is not available1775 when group has contacts1776 /add_contacts is available1777 when issue has no contacts1778 /remove_contacts is not available1779 when issue has contacts1780 /remove_contacts is available1781 #available_commands1782 when Guest is creating a new issue1783 includes commands to set metadata1784Ci::HasStatus1785 .composite_status1786 ci build statuses1787 behaves like build status summary1788 all successful1789 is expected to eq "success"1790 at least one failed1791 is expected to eq "failed"1792 at least one running1793 is expected to eq "running"1794 at least one pending1795 is expected to eq "running"1796 all waiting for resource1797 is expected to eq "waiting_for_resource"1798 at least one waiting for resource1799 is expected to eq "waiting_for_resource"1800 all preparing1801 is expected to eq "preparing"1802 at least one preparing1803 is expected to eq "preparing"1804 success and failed but allowed to fail1805 is expected to eq "success"1806 one failed but allowed to fail1807 is expected to eq "success"1808 success and canceled1809 is expected to eq "canceled"1810 one failed and one canceled1811 is expected to eq "failed"1812 one failed but allowed to fail and one canceled1813 is expected to eq "canceled"1814 one running one canceled1815 is expected to eq "running"1816 all canceled1817 is expected to eq "canceled"1818 success and canceled but allowed to fail1819 is expected to eq "success"1820 one finished and second running but allowed to fail1821 is expected to eq "running"1822 when one status finished and second is still created1823 is expected to eq "running"1824 when there is a manual status before created status1825 is expected to eq "manual"1826 when one status is a blocking manual action1827 is expected to eq "manual"1828 when one status is a non-blocking manual action1829 is expected to eq "failed"1830 generic commit statuses1831 behaves like build status summary1832 all successful1833 is expected to eq "success"1834 at least one failed1835 is expected to eq "failed"1836 at least one running1837 is expected to eq "running"1838 at least one pending1839 is expected to eq "running"1840 all waiting for resource1841 is expected to eq "waiting_for_resource"1842 at least one waiting for resource1843 is expected to eq "waiting_for_resource"1844 all preparing1845 is expected to eq "preparing"1846 at least one preparing1847 is expected to eq "preparing"1848 success and failed but allowed to fail1849 is expected to eq "success"1850 one failed but allowed to fail1851 is expected to eq "success"1852 success and canceled1853 is expected to eq "canceled"1854 one failed and one canceled1855 is expected to eq "failed"1856 one failed but allowed to fail and one canceled1857 is expected to eq "canceled"1858 one running one canceled1859 is expected to eq "running"1860 all canceled1861 is expected to eq "canceled"1862 success and canceled but allowed to fail1863 is expected to eq "success"1864 one finished and second running but allowed to fail1865 is expected to eq "running"1866 when one status finished and second is still created1867 is expected to eq "running"1868 when there is a manual status before created status1869 is expected to eq "manual"1870 when one status is a blocking manual action1871 is expected to eq "manual"1872 when one status is a non-blocking manual action1873 is expected to eq "failed"1874 for scope with one status1875 behaves like having a job1876 when it's created ci_build job1877 .created1878 contains the job1879 .relevant1880 contains nothing1881 when it's created generic_commit_status job1882 .created1883 contains the job1884 .relevant1885 contains nothing1886 behaves like having a job1887 when it's waiting_for_resource ci_build job1888 .waiting_for_resource1889 contains the job1890 .relevant1891 contains the job1892 when it's waiting_for_resource generic_commit_status job1893 .waiting_for_resource1894 contains the job1895 .relevant1896 contains the job1897 behaves like having a job1898 when it's preparing ci_build job1899 .preparing1900 contains the job1901 .relevant1902 contains the job1903 when it's preparing generic_commit_status job1904 .preparing1905 contains the job1906 .relevant1907 contains the job1908 behaves like having a job1909 when it's running ci_build job1910 .running1911 contains the job1912 .relevant1913 contains the job1914 when it's running generic_commit_status job1915 .running1916 contains the job1917 .relevant1918 contains the job1919 behaves like having a job1920 when it's pending ci_build job1921 .pending1922 contains the job1923 .relevant1924 contains the job1925 when it's pending generic_commit_status job1926 .pending1927 contains the job1928 .relevant1929 contains the job1930 behaves like having a job1931 when it's success ci_build job1932 .success1933 contains the job1934 .relevant1935 contains the job1936 when it's success generic_commit_status job1937 .success1938 contains the job1939 .relevant1940 contains the job1941 behaves like having a job1942 when it's failed ci_build job1943 .failed1944 contains the job1945 .relevant1946 contains the job1947 when it's failed generic_commit_status job1948 .failed1949 contains the job1950 .relevant1951 contains the job1952 behaves like having a job1953 when it's canceled ci_build job1954 .canceled1955 contains the job1956 .relevant1957 contains the job1958 when it's canceled generic_commit_status job1959 .canceled1960 contains the job1961 .relevant1962 contains the job1963 behaves like having a job1964 when it's skipped ci_build job1965 .skipped1966 contains the job1967 .relevant1968 contains the job1969 when it's skipped generic_commit_status job1970 .skipped1971 contains the job1972 .relevant1973 contains the job1974 for scope with more statuses1975 .running_or_pending1976 behaves like containing the job1977 when it's running ci_build job1978 contains the job1979 when it's running generic_commit_status job1980 contains the job1981 behaves like containing the job1982 when it's pending ci_build job1983 contains the job1984 when it's pending generic_commit_status job1985 contains the job1986 behaves like not containing the job1987 when it's created ci_build job1988 contains nothing1989 when it's created generic_commit_status job1990 contains nothing1991 behaves like not containing the job1992 when it's failed ci_build job1993 contains nothing1994 when it's failed generic_commit_status job1995 contains nothing1996 behaves like not containing the job1997 when it's success ci_build job1998 contains nothing1999 when it's success generic_commit_status job2000 contains nothing2001 .alive2002 behaves like containing the job2003 when it's running ci_build job2004 contains the job2005 when it's running generic_commit_status job2006 contains the job2007 behaves like containing the job2008 when it's pending ci_build job2009 contains the job2010 when it's pending generic_commit_status job2011 contains the job2012 behaves like containing the job2013 when it's waiting_for_resource ci_build job2014 contains the job2015 when it's waiting_for_resource generic_commit_status job2016 contains the job2017 behaves like containing the job2018 when it's preparing ci_build job2019 contains the job2020 when it's preparing generic_commit_status job2021 contains the job2022 behaves like containing the job2023 when it's created ci_build job2024 contains the job2025 when it's created generic_commit_status job2026 contains the job2027 behaves like not containing the job2028 when it's failed ci_build job2029 contains nothing2030 when it's failed generic_commit_status job2031 contains nothing2032 behaves like not containing the job2033 when it's success ci_build job2034 contains nothing2035 when it's success generic_commit_status job2036 contains nothing2037 .alive_or_scheduled2038 behaves like containing the job2039 when it's running ci_build job2040 contains the job2041 when it's running generic_commit_status job2042 contains the job2043 behaves like containing the job2044 when it's pending ci_build job2045 contains the job2046 when it's pending generic_commit_status job2047 contains the job2048 behaves like containing the job2049 when it's waiting_for_resource ci_build job2050 contains the job2051 when it's waiting_for_resource generic_commit_status job2052 contains the job2053 behaves like containing the job2054 when it's preparing ci_build job2055 contains the job2056 when it's preparing generic_commit_status job2057 contains the job2058 behaves like containing the job2059 when it's created ci_build job2060 contains the job2061 when it's created generic_commit_status job2062 contains the job2063 behaves like containing the job2064 when it's scheduled ci_build job2065 contains the job2066 when it's scheduled generic_commit_status job2067 contains the job2068 behaves like not containing the job2069 when it's failed ci_build job2070 contains nothing2071 when it's failed generic_commit_status job2072 contains nothing2073 behaves like not containing the job2074 when it's success ci_build job2075 contains nothing2076 when it's success generic_commit_status job2077 contains nothing2078 behaves like not containing the job2079 when it's canceled ci_build job2080 contains nothing2081 when it's canceled generic_commit_status job2082 contains nothing2083 behaves like not containing the job2084 when it's skipped ci_build job2085 contains nothing2086 when it's skipped generic_commit_status job2087 contains nothing2088 .created_or_pending2089 behaves like containing the job2090 when it's created ci_build job2091 contains the job2092 when it's created generic_commit_status job2093 contains the job2094 behaves like containing the job2095 when it's pending ci_build job2096 contains the job2097 when it's pending generic_commit_status job2098 contains the job2099 behaves like not containing the job2100 when it's running ci_build job2101 contains nothing2102 when it's running generic_commit_status job2103 contains nothing2104 behaves like not containing the job2105 when it's failed ci_build job2106 contains nothing2107 when it's failed generic_commit_status job2108 contains nothing2109 behaves like not containing the job2110 when it's success ci_build job2111 contains nothing2112 when it's success generic_commit_status job2113 contains nothing2114 .finished2115 behaves like containing the job2116 when it's success ci_build job2117 contains the job2118 when it's success generic_commit_status job2119 contains the job2120 behaves like containing the job2121 when it's failed ci_build job2122 contains the job2123 when it's failed generic_commit_status job2124 contains the job2125 behaves like containing the job2126 when it's canceled ci_build job2127 contains the job2128 when it's canceled generic_commit_status job2129 contains the job2130 behaves like not containing the job2131 when it's created ci_build job2132 contains nothing2133 when it's created generic_commit_status job2134 contains nothing2135 behaves like not containing the job2136 when it's running ci_build job2137 contains nothing2138 when it's running generic_commit_status job2139 contains nothing2140 behaves like not containing the job2141 when it's pending ci_build job2142 contains nothing2143 when it's pending generic_commit_status job2144 contains nothing2145 .cancelable2146 behaves like containing the job2147 when it's running ci_build job2148 contains the job2149 when it's running generic_commit_status job2150 contains the job2151 behaves like containing the job2152 when it's pending ci_build job2153 contains the job2154 when it's pending generic_commit_status job2155 contains the job2156 behaves like containing the job2157 when it's waiting_for_resource ci_build job2158 contains the job2159 when it's waiting_for_resource generic_commit_status job2160 contains the job2161 behaves like containing the job2162 when it's preparing ci_build job2163 contains the job2164 when it's preparing generic_commit_status job2165 contains the job2166 behaves like containing the job2167 when it's created ci_build job2168 contains the job2169 when it's created generic_commit_status job2170 contains the job2171 behaves like containing the job2172 when it's scheduled ci_build job2173 contains the job2174 when it's scheduled generic_commit_status job2175 contains the job2176 behaves like not containing the job2177 when it's failed ci_build job2178 contains nothing2179 when it's failed generic_commit_status job2180 contains nothing2181 behaves like not containing the job2182 when it's success ci_build job2183 contains nothing2184 when it's success generic_commit_status job2185 contains nothing2186 behaves like not containing the job2187 when it's skipped ci_build job2188 contains nothing2189 when it's skipped generic_commit_status job2190 contains nothing2191 behaves like not containing the job2192 when it's canceled ci_build job2193 contains nothing2194 when it's canceled generic_commit_status job2195 contains nothing2196 behaves like not containing the job2197 when it's manual ci_build job2198 contains nothing2199 when it's manual generic_commit_status job2200 contains nothing2201 .manual2202 behaves like containing the job2203 when it's manual ci_build job2204 contains the job2205 when it's manual generic_commit_status job2206 contains the job2207 behaves like not containing the job2208 when it's failed ci_build job2209 contains nothing2210 when it's failed generic_commit_status job2211 contains nothing2212 behaves like not containing the job2213 when it's success ci_build job2214 contains nothing2215 when it's success generic_commit_status job2216 contains nothing2217 behaves like not containing the job2218 when it's skipped ci_build job2219 contains nothing2220 when it's skipped generic_commit_status job2221 contains nothing2222 behaves like not containing the job2223 when it's canceled ci_build job2224 contains nothing2225 when it's canceled generic_commit_status job2226 contains nothing2227 .scheduled2228 behaves like containing the job2229 when it's scheduled ci_build job2230 contains the job2231 when it's scheduled generic_commit_status job2232 contains the job2233 behaves like not containing the job2234 when it's failed ci_build job2235 contains nothing2236 when it's failed generic_commit_status job2237 contains nothing2238 behaves like not containing the job2239 when it's success ci_build job2240 contains nothing2241 when it's success generic_commit_status job2242 contains nothing2243 behaves like not containing the job2244 when it's skipped ci_build job2245 contains nothing2246 when it's skipped generic_commit_status job2247 contains nothing2248 behaves like not containing the job2249 when it's canceled ci_build job2250 contains nothing2251 when it's canceled generic_commit_status job2252 contains nothing2253 .complete2254 behaves like containing the job2255 when it's success ci_build job2256 contains the job2257 when it's success generic_commit_status job2258 contains the job2259 behaves like containing the job2260 when it's failed ci_build job2261 contains the job2262 when it's failed generic_commit_status job2263 contains the job2264 behaves like containing the job2265 when it's canceled ci_build job2266 contains the job2267 when it's canceled generic_commit_status job2268 contains the job2269 behaves like containing the job2270 when it's skipped ci_build job2271 contains the job2272 when it's skipped generic_commit_status job2273 contains the job2274 behaves like not containing the job2275 when it's waiting_for_resource ci_build job2276 contains nothing2277 when it's waiting_for_resource generic_commit_status job2278 contains nothing2279 behaves like not containing the job2280 when it's preparing ci_build job2281 contains nothing2282 when it's preparing generic_commit_status job2283 contains nothing2284 behaves like not containing the job2285 when it's pending ci_build job2286 contains nothing2287 when it's pending generic_commit_status job2288 contains nothing2289 behaves like not containing the job2290 when it's running ci_build job2291 contains nothing2292 when it's running generic_commit_status job2293 contains nothing2294 .waiting_for_resource_or_upcoming2295 behaves like containing the job2296 when it's created ci_build job2297 contains the job2298 when it's created generic_commit_status job2299 contains the job2300 behaves like containing the job2301 when it's scheduled ci_build job2302 contains the job2303 when it's scheduled generic_commit_status job2304 contains the job2305 behaves like containing the job2306 when it's waiting_for_resource ci_build job2307 contains the job2308 when it's waiting_for_resource generic_commit_status job2309 contains the job2310 behaves like not containing the job2311 when it's running ci_build job2312 contains nothing2313 when it's running generic_commit_status job2314 contains nothing2315 behaves like not containing the job2316 when it's failed ci_build job2317 contains nothing2318 when it's failed generic_commit_status job2319 contains nothing2320 behaves like not containing the job2321 when it's success ci_build job2322 contains nothing2323 when it's success generic_commit_status job2324 contains nothing2325 behaves like not containing the job2326 when it's canceled ci_build job2327 contains nothing2328 when it's canceled generic_commit_status job2329 contains nothing2330 ::DEFAULT_STATUS2331 is a status created2332 ::BLOCKED_STATUS2333 is a status manual2334 blocked?2335 when status is scheduled2336 is expected to be truthy2337 when status is manual2338 is expected to be truthy2339 when status is created2340 is expected to be falsy2341 when status is scheduled2342 is expected to be truthy2343 when status is manual2344 is expected to be truthy2345 when status is created2346 is expected to be falsy2347 when status is scheduled2348 is expected to be truthy2349 when status is manual2350 is expected to be truthy2351 when status is created2352 is expected to be falsy2353 when status is scheduled2354 is expected to be truthy2355 when status is manual2356 is expected to be truthy2357 when status is created2358 is expected to be falsy2359Ci::CreateDownstreamPipelineService#execute2360 when downstream project has not been found2361 does not create a pipeline2362 changes pipeline bridge job status to failed2363 when user can not access downstream project2364 does not create a new pipeline2365 changes status of the bridge build2366 when user does not have access to create pipeline2367 does not create a new pipeline2368 changes status of the bridge build2369 when user can create pipeline in a downstream project2370 creates only one new pipeline2371 creates a new pipeline in a downstream project2372 updates bridge status when downstream pipeline gets processed2373 behaves like logs downstream pipeline creation2374 logs details2375 when bridge job has already any downstream pipelines2376 logs an error and exits2377 when target ref is not specified2378 is using default branch name2379 when downstream pipeline has yaml configuration error2380 creates only one new pipeline2381 creates a new pipeline in a downstream project2382 updates the bridge status when downstream pipeline gets processed2383 when downstream project is the same as the upstream project2384 detects a circular dependency2385 does not create a new pipeline2386 changes status of the bridge build2387 when "include" is provided2388 updates the bridge job to success2389 behaves like creates a child pipeline2390 creates only one new pipeline2391 creates a child pipeline in the same project2392 updates bridge status when downstream pipeline gets processed2393 propagates parent pipeline settings to the child pipeline2394 behaves like logs downstream pipeline creation2395 logs details2396 when bridge uses "depend" strategy2397 does not update the bridge job status2398 when latest sha for the ref changed in the meantime2399 behaves like creates a child pipeline2400 creates only one new pipeline2401 creates a child pipeline in the same project2402 updates bridge status when downstream pipeline gets processed2403 propagates parent pipeline settings to the child pipeline2404 when the parent is a merge request pipeline2405 propagates the merge request to the child pipeline2406 behaves like creates a child pipeline2407 creates only one new pipeline2408 creates a child pipeline in the same project2409 updates bridge status when downstream pipeline gets processed2410 propagates parent pipeline settings to the child pipeline2411 when upstream pipeline has a parent pipeline2412 creates the pipeline2413 behaves like logs downstream pipeline creation2414 logs details2415 when upstream pipeline has a parent pipeline, which has a parent pipeline2416 does not create a second descendant pipeline2417 when upstream pipeline has two level upstream pipelines from different projects2418 create the pipeline2419 when downstream project does not allow user-defined variables for child pipelines2420 creates a new pipeline allowing variables to be passed downstream2421 passes variables downstream from the bridge2422 when multi-project pipeline runs from child pipelines bridge job2423 creates a new pipeline2424 cyclical dependency detection2425 when pipeline ancestry contains 2 cycles of dependencies2426 behaves like detects cyclical pipelines2427 does not create a new pipeline2428 changes status of the bridge build2429 when source in the ancestry differ2430 behaves like passes cyclical pipeline precondition2431 creates a new pipeline2432 expect bridge build not to be failed2433 when ref in the ancestry differ2434 behaves like passes cyclical pipeline precondition2435 creates a new pipeline2436 expect bridge build not to be failed2437 when only 1 cycle is detected2438 behaves like passes cyclical pipeline precondition2439 creates a new pipeline2440 expect bridge build not to be failed2441 when downstream pipeline creation errors out2442 creates only one new pipeline2443 creates a new pipeline in the downstream project2444 drops the bridge2445 when bridge job status update raises state machine errors2446 tracks the exception2447 when bridge job has YAML variables defined2448 passes bridge variables to downstream pipeline2449 when pipeline variables are defined2450 does not pass pipeline variables directly downstream2451 when using YAML variables interpolation2452 makes it possible to pass pipeline variable downstream2453 when downstream project does not allow user-defined variables for multi-project pipelines2454 does not create a new pipeline2455 ignores variables passed downstream from the bridge2456 sets errors2457 when configured with bridge job rules2458 that include the bridge job2459 creates the downstream pipeline2460 when user does not have access to push protected branch of downstream project2461 changes status of the bridge build (FAILED - 1)24631st Try error in ./spec/services/ci/create_downstream_pipeline_service_spec.rb:714:2464expected `#<Ci::Bridge status: "success", finished_at: "2022-08-24 17:30:49.677206000 +0000", trace: nil, creat...l, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 990, stage_id: 670>.failed?` to be truthy, got false2466RSpec::Retry: 2nd try ./spec/services/ci/create_downstream_pipeline_service_spec.rb:71424682nd Try error in ./spec/services/ci/create_downstream_pipeline_service_spec.rb:714:2469expected `#<Ci::Bridge status: "success", finished_at: "2022-08-24 17:30:51.783524000 +0000", trace: nil, creat...l, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 992, stage_id: 672>.failed?` to be truthy, got false2470 RSpec::Retry: 3rd try ./spec/services/ci/create_downstream_pipeline_service_spec.rb:71424723rd Try error in ./spec/services/ci/create_downstream_pipeline_service_spec.rb:714:2473expected `#<Ci::Bridge status: "success", finished_at: "2022-08-24 17:30:53.820465000 +0000", trace: nil, creat...l, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 994, stage_id: 674>.failed?` to be truthy, got false2474 RSpec::Retry: 4th try ./spec/services/ci/create_downstream_pipeline_service_spec.rb:7142475 when there is no such branch in downstream project2476 does not create a pipeline and drops the bridge2477 when downstream pipeline has a branch rule and does not satisfy2478 does not create a pipeline and drops the bridge2479 when downstream pipeline has invalid YAML2480 creates the pipeline but drops the bridge2481 when downstream pipeline has workflow rule2482 when passing the required variable2483 creates the pipeline2484 when not passing the required variable2485 does not create the pipeline2486TodoService2487 updates cached counts when a todo is created2488 Issues2489 #new_issue2490 creates a todo if assigned2491 does not create a todo if unassigned2492 creates a todo if assignee is the current user2493 creates a todo for each valid mentioned user2494 creates a directly addressed todo for each valid addressed user2495 creates correct todos for each valid user based on the type of mention2496 does not create todo if user can not see the issue when issue is confidential2497 does not create directly addressed todo if user cannot see the issue when issue is confidential2498 when a private group is mentioned2499 creates a todo for group members2500 issue is an incident2501 behaves like an incident management tracked event2502 .track_event2503 tracks the event using redis2504 #update_issue2505 creates a todo for each valid mentioned user not included in skip_users2506 creates a todo for each valid user not included in skip_users based on the type of mention2507 creates a directly addressed todo for each valid addressed user not included in skip_users2508 does not create a todo if user was already mentioned and todo is pending2509 does not create a todo if user was already mentioned and todo is done2510 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending2511 does not create a directly addressed todo if user was already mentioned or addressed and todo is done2512 does not create todo if user can not see the issue when issue is confidential2513 does not create a directly addressed todo if user can not see the issue when issue is confidential2514 issues with a task list2515 does not create todo when tasks are marked as completed2516 does not create directly addressed todo when tasks are marked as completed2517 does not raise an error when description not change2518 #close_issue2519 marks related pending todos to the target for the user as done2520 #destroy_target2521 refreshes the todos count cache for users with todos on the target2522 yields the target to the caller2523 #resolve_todos_for_target2524 marks related pending todos to the target for the user as done2525 cached counts2526 updates when todos change2527 #new_note2528 mark related pending todos to the noteable for the note author as done2529 does not mark related pending todos it is a system note2530 creates a todo for each valid mentioned user2531 creates a todo for each valid user based on the type of mention2532 creates a directly addressed todo for each valid addressed user2533 does not create todo if user can not see the issue when leaving a note on a confidential issue2534 does not create a directly addressed todo if user can not see the issue when leaving a note on a confidential issue2535 does not create todo if user can not read confidential note2536 does not create todo when leaving a note on snippet2537 commits2538 leaving a note on a commit in a public project2539 creates a todo for each valid mentioned user2540 creates a directly addressed todo for each valid mentioned user2541 leaving a note on a commit in a public project with private code2542 creates a todo for each valid mentioned user2543 creates a directly addressed todo for each valid mentioned user2544 leaving a note on a commit in a private project2545 creates a todo for each valid mentioned user2546 creates a directly addressed todo for each valid mentioned user2547 #mark_todo2548 creates a todo from a issue2549 #todo_exists?2550 returns false when no todo exist for the given issuable2551 returns true when a todo exist for the given issuable2552 when multiple_todos are enabled2553 creates a MENTIONED todo even if user already has a pending MENTIONED todo2554 creates a DIRECTLY_ADDRESSED todo even if user already has a pending DIRECTLY_ADDRESSED todo2555 creates an ASSIGNED todo even if user already has a pending MARKED todo2556 does not create an ASSIGNED todo if user already has an ASSIGNED todo2557 creates multiple todos if a user is assigned and mentioned in a new issue2558 #reassigned_assignable2559 assignable is a merge request2560 behaves like reassigned target2561 creates a pending todo for new assignee2562 does not create a todo if unassigned2563 creates a todo if new assignee is the current user2564 does not create a todo for guests2565 does not create a directly addressed todo for guests2566 does not create a todo if already assigned2567 assignable is an issue2568 behaves like reassigned target2569 creates a pending todo for new assignee2570 does not create a todo if unassigned2571 creates a todo if new assignee is the current user2572 does not create a todo for guests2573 does not create a directly addressed todo for guests2574 does not create a todo if already assigned2575 assignable is an alert2576 behaves like reassigned target2577 creates a pending todo for new assignee2578 does not create a todo if unassigned2579 creates a todo if new assignee is the current user2580 does not create a todo for guests2581 does not create a directly addressed todo for guests2582 does not create a todo if already assigned2583 #reassigned_reviewable2584 reviewable is a merge request2585 behaves like reassigned reviewable target2586 with no existing reviewers2587 creates a pending todo for new reviewer2588 with an existing reviewer2589 does not create a todo if unassigned2590 creates a todo if new reviewer is the current user2591 does not create a todo if already assigned2592 Merge Requests2593 #new_merge_request2594 creates a pending todo if assigned2595 does not create a todo if unassigned2596 creates a todo if assignee is the current user2597 creates a todo for each valid mentioned user2598 creates a todo for each valid user based on the type of mention2599 creates a directly addressed todo for each valid addressed user2600 #update_merge_request2601 creates a todo for each valid mentioned user not included in skip_users2602 creates a todo for each valid user not included in skip_users based on the type of mention2603 creates a directly addressed todo for each valid addressed user not included in skip_users2604 does not create a todo if user was already mentioned and todo is pending2605 does not create a todo if user was already mentioned and todo is done2606 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending2607 does not create a directly addressed todo if user was already mentioned or addressed and todo is done2608 with a task list2609 does not create todo when tasks are marked as completed2610 does not create directly addressed todo when tasks are marked as completed2611 does not raise an error when description not change2612 #close_merge_request2613 marks related pending todos to the target for the user as done2614 #merge_merge_request2615 marks related pending todos to the target for the user as done2616 does not create todo for guests2617 does not create directly addressed todo for guests2618 #new_award_emoji2619 marks related pending todos to the target for the user as done2620 #merge_request_build_failed2621 creates a pending todo for each merge_participant2622 #merge_request_push2623 marks related pending todos to the target for the user as done2624 #merge_request_became_unmergeable2625 creates a pending todo for each merge_participant2626 #mark_todo2627 creates a todo from a merge request2628 #new_note2629 creates a todo for mentioned user on new diff note2630 creates a directly addressed todo for addressed user on new diff note2631 creates a todo for mentioned user on legacy diff note2632 does not create todo for guests2633 Designs2634 creates a todo for mentioned user on new diff note2635 #update_note2636 creates a todo for each valid mentioned user not included in skip_users2637 creates a todo for each valid user not included in skip_users based on the type of mention2638 creates a directly addressed todo for each valid addressed user not included in skip_users2639 does not create a todo if user was already mentioned and todo is done2640 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending2641 does not create a directly addressed todo if user was already mentioned or addressed and todo is done2642 users already have pending todos and the multiple_todos feature is off2643 does not create a todo if user was already mentioned and todo is pending2644 does not create N+1 queries for pending todos2645 #resolve_todos2646 behaves like updating todos state2647 updates related todos for the user with the new_state2648 updates resolution mechanism2649 returns the updated ids2650 cached counts2651 updates when todos change2652 #restore_todos2653 behaves like updating todos state2654 updates related todos for the user with the new_state2655 returns the updated ids2656 cached counts2657 updates when todos change2658 #resolve_todo2659 marks pending todo as done2660 saves resolution mechanism2661 cached counts2662 updates when todos change2663 #restore_todo2664 marks resolved todo as pending2665 cached counts2666 updates when todos change2667 #create_request_review_todo2668 creates a todo for reviewer2669GroupPolicy2670 public group with no user2671 is expected not to be allowed :read_namespace2672 public group with user who is not a member2673 is expected not to be allowed :read_namespace2674 private group that has been invited to a public project and with no user2675 is expected not to be allowed :register_group_runners2676 private group that has been invited to a public project and with a foreign user2677 is expected not to be allowed :register_group_runners2678 has projects2679 is expected to be allowed :read_issue_board2680 in subgroups2681 is expected to be allowed :read_issue_board2682 guests2683 is expected not to be allowed :register_group_runners2684 behaves like deploy token does not get confused with user2685 is expected not to be allowed :register_group_runners2686 reporter2687 is expected not to be allowed :register_group_runners2688 behaves like deploy token does not get confused with user2689 is expected not to be allowed :register_group_runners2690 developer2691 is expected not to be allowed :register_group_runners2692 behaves like deploy token does not get confused with user2693 is expected not to be allowed :register_group_runners2694 maintainer2695 with subgroup_creation level set to maintainer2696 allows every maintainer permission plus creating subgroups2697 with subgroup_creation_level set to owner2698 allows every maintainer permission2699 behaves like deploy token does not get confused with user2700 is expected not to be allowed :register_group_runners2701 owner2702 is expected to be allowed :register_group_runners2703 behaves like deploy token does not get confused with user2704 is expected not to be allowed :register_group_runners2705 admin2706 is expected not to be allowed :register_group_runners2707 with admin mode2708 is expected to be allowed :read_confidential_issues2709 behaves like deploy token does not get confused with user2710 is expected not to be allowed :register_group_runners2711 with admin mode2712 is expected not to be allowed :read_confidential_issues2713 migration bot2714 aggregate_failures2715 behaves like deploy token does not get confused with user2716 is expected not to be allowed :register_group_runners2717 private nested group use the highest access level from the group and inherited permissions2718 with no user2719 is expected not to be allowed :register_group_runners2720 guests2721 is expected not to be allowed :register_group_runners2722 reporter2723 is expected not to be allowed :register_group_runners2724 developer2725 is expected not to be allowed :register_group_runners2726 maintainer2727 is expected not to be allowed :register_group_runners2728 owner2729 is expected to be allowed :register_group_runners2730 change_share_with_group_lock2731 when the current_user owns the group2732 when the group share_with_group_lock is enabled2733 when the parent group share_with_group_lock is enabled2734 when the group has a grandparent2735 when the grandparent share_with_group_lock is enabled2736 when the current_user owns the parent2737 when the current_user owns the grandparent2738 is expected to be allowed :change_share_with_group_lock2739 when the current_user does not own the grandparent2740 is expected not to be allowed :change_share_with_group_lock2741 when the current_user does not own the parent2742 is expected not to be allowed :change_share_with_group_lock2743 when the grandparent share_with_group_lock is disabled2744 when the current_user owns the parent2745 is expected to be allowed :change_share_with_group_lock2746 when the current_user does not own the parent2747 is expected not to be allowed :change_share_with_group_lock2748 when the group does not have a grandparent2749 when the current_user owns the parent2750 is expected to be allowed :change_share_with_group_lock2751 when the current_user does not own the parent2752 is expected not to be allowed :change_share_with_group_lock2753 when the parent group share_with_group_lock is disabled2754 is expected to be allowed :change_share_with_group_lock2755 when the group share_with_group_lock is disabled2756 is expected to be allowed :change_share_with_group_lock2757 when the current_user does not own the group2758 is expected not to be allowed :change_share_with_group_lock2759 transfer_projects2760 reporter2761 behaves like not allowed to transfer projects2762 is expected to be disallowed :transfer_projects2763 behaves like not allowed to transfer projects2764 is expected to be disallowed :transfer_projects2765 behaves like not allowed to transfer projects2766 is expected to be disallowed :transfer_projects2767 developer2768 behaves like not allowed to transfer projects2769 is expected to be disallowed :transfer_projects2770 behaves like not allowed to transfer projects2771 is expected to be disallowed :transfer_projects2772 behaves like not allowed to transfer projects2773 is expected to be disallowed :transfer_projects2774 maintainer2775 behaves like not allowed to transfer projects2776 is expected to be disallowed :transfer_projects2777 behaves like allowed to transfer projects2778 is expected to be allowed :transfer_projects2779 behaves like allowed to transfer projects2780 is expected to be allowed :transfer_projects2781 owner2782 behaves like not allowed to transfer projects2783 is expected to be disallowed :transfer_projects2784 behaves like allowed to transfer projects2785 is expected to be allowed :transfer_projects2786 behaves like allowed to transfer projects2787 is expected to be allowed :transfer_projects2788 create_projects2789 when group has no project creation level set2790 reporter2791 is expected to be disallowed :create_projects2792 developer2793 is expected to be allowed :create_projects2794 maintainer2795 is expected to be allowed :create_projects2796 owner2797 is expected to be allowed :create_projects2798 when group has project creation level set to no one2799 reporter2800 is expected to be disallowed :create_projects2801 developer2802 is expected to be disallowed :create_projects2803 maintainer2804 is expected to be disallowed :create_projects2805 owner2806 is expected to be disallowed :create_projects2807 when group has project creation level set to maintainer only2808 reporter2809 is expected to be disallowed :create_projects2810 developer2811 is expected to be disallowed :create_projects2812 maintainer2813 is expected to be allowed :create_projects2814 owner2815 is expected to be allowed :create_projects2816 when group has project creation level set to developers + maintainer2817 reporter2818 is expected to be disallowed :create_projects2819 developer2820 is expected to be allowed :create_projects2821 maintainer2822 is expected to be allowed :create_projects2823 owner2824 is expected to be allowed :create_projects2825 create_subgroup2826 when group has subgroup creation level set to owner2827 reporter2828 is expected to be disallowed :create_subgroup2829 developer2830 is expected to be disallowed :create_subgroup2831 maintainer2832 is expected to be disallowed :create_subgroup2833 owner2834 is expected to be allowed :create_subgroup2835 when group has subgroup creation level set to maintainer2836 reporter2837 is expected to be disallowed :create_subgroup2838 developer2839 is expected to be disallowed :create_subgroup2840 maintainer2841 is expected to be allowed :create_subgroup2842 owner2843 is expected to be allowed :create_subgroup2844 behaves like clusterable policies2845 #add_cluster?2846 with a reporter2847 is expected not to be allowed :read_cluster2848 is expected not to be allowed :add_cluster2849 is expected not to be allowed :create_cluster2850 is expected not to be allowed :update_cluster2851 is expected not to be allowed :admin_cluster2852 with a developer2853 is expected to be allowed :read_cluster2854 is expected not to be allowed :add_cluster2855 is expected not to be allowed :create_cluster2856 is expected not to be allowed :update_cluster2857 is expected not to be allowed :admin_cluster2858 with a maintainer2859 with no clusters2860 is expected to be allowed :read_cluster2861 is expected to be allowed :add_cluster2862 is expected to be allowed :create_cluster2863 is expected to be allowed :update_cluster2864 is expected to be allowed :admin_cluster2865 update_max_artifacts_size2866 when no user2867 is expected not to be allowed :update_max_artifacts_size2868 admin2869 when admin mode is enabled2870 is expected to be allowed :update_max_artifacts_size2871 when admin mode is enabled2872 is expected not to be allowed :update_max_artifacts_size2873 guest2874 is expected not to be allowed :update_max_artifacts_size2875 reporter2876 is expected not to be allowed :update_max_artifacts_size2877 developer2878 is expected not to be allowed :update_max_artifacts_size2879 maintainer2880 is expected not to be allowed :update_max_artifacts_size2881 owner2882 is expected not to be allowed :update_max_artifacts_size2883 design activity2884 when design management is not available2885 is expected not to be allowed :read_design_activity2886 even when there are projects in the group2887 is expected not to be allowed :read_design_activity2888 when design management is available globally2889 the group has no projects2890 is expected not to be allowed :read_design_activity2891 the group has a project2892 is expected to be allowed :read_design_activity2893 which does not have design management enabled2894 is expected not to be allowed :read_design_activity2895 but another project does2896 is expected to be allowed :read_design_activity2897 create_jira_connect_subscription2898 admin2899 when admin mode is enabled2900 is expected to be allowed :create_jira_connect_subscription2901 when admin mode is disabled2902 is expected to be disallowed :create_jira_connect_subscription2903 with owner2904 is expected to be allowed :create_jira_connect_subscription2905 with maintainer2906 is expected to be allowed :create_jira_connect_subscription2907 with reporter2908 is expected to be disallowed :create_jira_connect_subscription2909 with guest2910 is expected to be disallowed :create_jira_connect_subscription2911 with non member2912 is expected to be disallowed :create_jira_connect_subscription2913 with anonymous2914 is expected to be disallowed :create_jira_connect_subscription2915 read_package2916 admin2917 when admin mode is enabled2918 is expected to be allowed :read_package2919 when admin mode is disabled2920 is expected to be disallowed :read_package2921 with owner2922 is expected to be allowed :read_package2923 with maintainer2924 is expected to be allowed :read_package2925 with reporter2926 is expected to be allowed :read_package2927 with guest2928 is expected to be disallowed :read_package2929 with non member2930 is expected to be disallowed :read_package2931 with anonymous2932 is expected to be disallowed :read_package2933 dependency proxy2934 feature disabled2935 is expected to be disallowed :read_dependency_proxy2936 is expected to be disallowed :admin_dependency_proxy2937 feature enabled2938 reporter2939 is expected to be allowed :read_dependency_proxy2940 is expected to be disallowed :admin_dependency_proxy2941 developer2942 is expected to be allowed :read_dependency_proxy2943 is expected to be disallowed :admin_dependency_proxy2944 maintainer2945 is expected to be allowed :read_dependency_proxy2946 is expected to be allowed :admin_dependency_proxy2947 deploy token access2948 a deploy token with read_package_registry scope2949 is expected to be allowed :read_package2950 is expected to be allowed :read_group2951 is expected to be disallowed :create_package2952 a deploy token with write_package_registry scope2953 is expected to be allowed :create_package2954 is expected to be allowed :read_package2955 is expected to be allowed :read_group2956 is expected to be disallowed :destroy_package2957 a deploy token with dependency proxy scopes2958 is expected to be allowed :read_dependency_proxy2959 is expected to be disallowed :admin_dependency_proxy2960 behaves like Self-managed Core resource access tokens2961 with owner access2962 create resource access tokens2963 is expected to be allowed :create_resource_access_tokens2964 when resource access token creation is not allowed2965 is expected not to be allowed :create_resource_access_tokens2966 when parent group has project access token creation disabled2967 is expected not to be allowed :create_resource_access_tokens2968 with a personal namespace project2969 is expected to be allowed :create_resource_access_tokens2970 read resource access tokens2971 is expected to be allowed :read_resource_access_tokens2972 destroy resource access tokens2973 is expected to be allowed :destroy_resource_access_tokens2974 with developer access2975 create resource access tokens2976 is expected not to be allowed :create_resource_access_tokens2977 read resource access tokens2978 is expected not to be allowed :read_resource_access_tokens2979 destroy resource access tokens2980 is expected not to be allowed :destroy_resource_access_tokens2981 support bot2982 is expected not to be allowed :read_label2983 when group hierarchy has a project with service desk enabled2984 is expected to be allowed :read_label2985 is expected to be allowed :read_label2986 project bots2987 project_bot_access2988 when regular user and part of the group2989 is expected not to be allowed :project_bot_access2990 when project bot and not part of the project2991 is expected not to be allowed :project_bot_access2992 when project bot and part of the project2993 is expected to be allowed :project_bot_access2994 with resource access tokens2995 is expected not to be allowed :create_resource_access_tokens2996 update_runners_registration_token2997 admin2998 when admin mode is enabled2999 is expected to be allowed :update_runners_registration_token3000 when admin mode is disabled3001 is expected to be disallowed :update_runners_registration_token3002 with owner3003 is expected to be allowed :update_runners_registration_token3004 with maintainer3005 is expected to be disallowed :update_runners_registration_token3006 with reporter3007 is expected to be disallowed :update_runners_registration_token3008 with guest3009 is expected to be disallowed :update_runners_registration_token3010 with non member3011 is expected to be disallowed :update_runners_registration_token3012 with anonymous3013 is expected to be disallowed :update_runners_registration_token3014 register_group_runners3015 admin3016 when admin mode is enabled3017 with runner_registration_control FF disabled3018 is expected to be allowed :register_group_runners3019 with runner_registration_control FF enabled3020 is expected to be allowed :register_group_runners3021 with group runner registration disabled3022 is expected to be allowed :register_group_runners3023 when admin mode is disabled3024 is expected to be disallowed :register_group_runners3025 with owner3026 is expected to be allowed :register_group_runners3027 with runner_registration_control FF disabled3028 is expected to be allowed :register_group_runners3029 with runner_registration_control FF enabled3030 is expected to be allowed :register_group_runners3031 with group runner registration disabled3032 is expected to be disallowed :register_group_runners3033 with maintainer3034 is expected to be disallowed :register_group_runners3035 with reporter3036 is expected to be disallowed :register_group_runners3037 with guest3038 is expected to be disallowed :register_group_runners3039 with non member3040 is expected to be disallowed :register_group_runners3041 with anonymous3042 is expected to be disallowed :register_group_runners3043 change_prevent_sharing_groups_outside_hierarchy3044 with owner3045 is expected to be allowed :change_prevent_sharing_groups_outside_hierarchy3046 with non-owner roles3047 role: "admin"3048 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy3049 role: "maintainer"3050 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy3051 role: "reporter"3052 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy3053 role: "developer"3054 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy3055 role: "guest"3056 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy3057 when crm_enabled is false3058 is expected to be disallowed :read_crm_contact3059 is expected to be disallowed :read_crm_organization3060 is expected to be disallowed :admin_crm_contact3061 is expected to be disallowed :admin_crm_organization3062 behaves like checks timelog categories permissions3063 with no user3064 is expected to be disallowed :read_timelog_category3065 with a regular user3066 is expected to be disallowed :read_timelog_category3067 with a reporter user3068 when timelog_categories is enabled3069 is expected to be allowed :read_timelog_category3070 when timelog_categories is disabled3071 is expected to be disallowed :read_timelog_category3072Banzai::Filter::References::IssueReferenceFilter3073 requires project context3074 ignores valid references contained inside 'pre' element3075 ignores valid references contained inside 'code' element3076 ignores valid references contained inside 'a' element3077 ignores valid references contained inside 'style' element3078 performance3079 does not have a N+1 query problem3080 internal reference3081 links to a valid reference3082 links with adjacent text3083 ignores invalid issue IDs3084 includes a title attribute3085 escapes the title attribute3086 renders non-HTML tooltips3087 includes default classes3088 includes a data-project attribute3089 includes a data-issue attribute3090 includes data attributes for issuable popover3091 includes a data-original attribute3092 does not escape the data-original attribute3093 includes a data-reference-format attribute3094 includes a data-reference-format attribute for URL references3095 supports an :only_path context3096 does not process links containing issue numbers followed by text3097 behaves like a reference containing an element node3098 does not escape inner html3099 behaves like a reference with issue type information3100 contains issue-type as a data attribute3101 cross-project / cross-namespace complete reference3102 ignores valid references when cross-reference project uses external tracker3103 links to a valid reference3104 link has valid text3105 has valid text3106 includes default classes3107 ignores invalid issue IDs on the referenced project3108 behaves like a reference containing an element node3109 does not escape inner html3110 behaves like a reference with issue type information3111 contains issue-type as a data attribute3112 cross-project / same-namespace complete reference3113 ignores valid references when cross-reference project uses external tracker3114 links to a valid reference3115 link has valid text3116 has valid text3117 includes default classes3118 ignores invalid issue IDs on the referenced project3119 behaves like a reference containing an element node3120 does not escape inner html3121 behaves like a reference with issue type information3122 contains issue-type as a data attribute3123 cross-project shorthand reference3124 ignores valid references when cross-reference project uses external tracker3125 links to a valid reference3126 link has valid text3127 has valid text3128 includes default classes3129 ignores invalid issue IDs on the referenced project3130 behaves like a reference containing an element node3131 does not escape inner html3132 behaves like a reference with issue type information3133 contains issue-type as a data attribute3134 cross-project URL reference3135 links to a valid reference3136 link with trailing slash3137 links with adjacent text3138 includes default classes3139 behaves like a reference containing an element node3140 does not escape inner html3141 behaves like a reference with issue type information3142 contains issue-type as a data attribute3143 cross-project reference in link href3144 links to a valid reference3145 links with adjacent text3146 includes default classes3147 behaves like a reference containing an element node3148 does not escape inner html3149 behaves like a reference with issue type information3150 contains issue-type as a data attribute3151 cross-project URL in link href3152 links to a valid reference3153 links with adjacent text3154 includes default classes3155 behaves like a reference containing an element node3156 does not escape inner html3157 behaves like a reference with issue type information3158 contains issue-type as a data attribute3159 when processing a link to the designs tab3160 includes the word "designs" after the reference in the text content3161 design management is not available3162 links to the issue, but not to the designs tab3163 group context3164 ignores shorthanded issue reference3165 ignores valid references when cross-reference project uses external tracker3166 links to a valid reference for complete cross-reference3167 ignores reference for shorthand cross-reference3168 links to a valid reference for url cross-reference3169 links to a valid reference for cross-reference in link href3170 links to a valid reference for issue reference in the link href3171 .references_in3172 yields valid references3173 doesn't yield invalid references3174 doesn't yield unsupported references3175 #object_link_text_extras3176 the link does not go to the designs tab3177 does not include designs3178 the link goes to the designs tab3179 includes designs3180 design management is disabled3181 does not include designs in the extras3182CommitStatus3183 is expected to belong to pipeline required: false3184 is expected to belong to user required: false3185 is expected to belong to project required: false3186 is expected to belong to auto_canceled_by required: false3187 is expected to validate that :name cannot be empty/falsy3188 is expected to validate that :status is either ‹"pending"›, ‹"running"›, ‹"failed"›, ‹"success"›, or ‹"canceled"›3189 is expected to delegate #sha to the #pipeline object3190 is expected to delegate #short_sha to the #pipeline object3191 is expected to respond to #success?3192 is expected to respond to #failed?3193 is expected to respond to #running?3194 is expected to respond to #pending?3195 behaves like having unique enum values3196 has unique values in "scheduling_type"3197 has unique values in "failure_reason"3198 #author3199 is expected to eq #<User id: @>3200 status state machine3201 invalidates the cache after a transition3202 transitioning to running3203 records the started at time3204 transitioning to created from skipped or manual3205 does not update user without parameter3206 updates user with user parameter3207 .updated_at_before3208 finds the relevant records3209 .created_at_before3210 finds the relevant records3211 .scheduled_at_before3212 is expected to contain exactly #<CommitStatus status: "success", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, cre... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1014, stage_id: 694>3213 #processed3214 processed state is always persisted3215 status is latest3216 is expected to be falsey3217 status is retried3218 is expected to be truthy3219 .cancelable3220 when running commit status3221 is expected to contain exactly #<CommitStatus status: "running", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, cre... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1019, stage_id: 699>3222 when pending commit status3223 is expected to contain exactly #<CommitStatus status: "pending", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, cre... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1020, stage_id: 700>3224 when waiting_for_resource commit status3225 is expected to contain exactly #<CommitStatus status: "waiting_for_resource", finished_at: "2016-01-26 07:23:42.000000000 +0000", tr... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1021, stage_id: 701>3226 when preparing commit status3227 is expected to contain exactly #<CommitStatus status: "preparing", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, c... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1022, stage_id: 702>3228 when created commit status3229 is expected to contain exactly #<CommitStatus status: "created", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, cre... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1023, stage_id: 703>3230 when scheduled commit status3231 is expected to contain exactly #<CommitStatus status: "scheduled", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, c... nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 1024, stage_id: 704>3232 when failed commit status3233 is expected to be empty3234 when success commit status3235 is expected to be empty3236 when skipped commit status3237 is expected to be empty3238 when canceled commit status3239 is expected to be empty3240 when manual commit status3241 is expected to be empty3242 #started?3243 without started_at3244 is expected to equal false3245 with started_at3246 if commit status is running3247 is expected to eq true3248 if commit status is success3249 is expected to eq true3250 if commit status is failed3251 is expected to eq true3252 if commit status is created3253 is expected to equal false3254 if commit status is waiting_for_resource3255 is expected to equal false3256 if commit status is preparing3257 is expected to equal false3258 if commit status is pending3259 is expected to equal false3260 if commit status is canceled3261 is expected to equal false3262 if commit status is skipped3263 is expected to equal false3264 if commit status is manual3265 is expected to equal false3266 if commit status is scheduled3267 is expected to equal false3268 #active?3269 if commit_status.status is pending3270 is expected to be truthy3271 if commit_status.status is running3272 is expected to be truthy3273 if commit_status.status is success3274 is expected to be falsey3275 if commit_status.status is failed3276 is expected to be falsey3277 if commit_status.status is canceled3278 is expected to be falsey3279 #complete?3280 if commit_status.status is success3281 is expected to be truthy3282 if commit_status.status is failed3283 is expected to be truthy3284 if commit_status.status is canceled3285 is expected to be truthy3286 if commit_status.status is pending3287 is expected to be falsey3288 if commit_status.status is running3289 is expected to be falsey3290 #cancel3291 when status is scheduled3292 updates the status3293 #auto_canceled?3294 when it is canceled3295 when there is auto_canceled_by3296 is auto canceled3297 when there is no auto_canceled_by3298 is not auto canceled3299 #duration3300 is expected to eq 120.03301 if the building process has not started yet3302 is expected to be nil3303 if the building process has started3304 is expected to be a kind of Float3305 is expected to be > 0.03306 #queued_duration3307 when created, then enqueued, then started3308 is expected to eq 5.03309 when created but not yet enqueued3310 is expected to be nil3311 when enqueued, but not started3312 is expected to eq 1 minute3313 .latest3314 returns unique statuses3315 .retried3316 returns unique statuses3317 .retried_ordered3318 returns retried statuses in order3319 .running_or_pending3320 returns statuses that are running or pending3321 .after_stage3322 returns statuses from second and third stage3323 .exclude_ignored3324 returns statuses without what we want to ignore3325 .failed_but_allowed3326 returns statuses without what we want to ignore3327 .for_ref3328 returns statuses with the specified ref3329 .by_name3330 returns statuses with the specified name3331 .for_project_paths3332 with a single path3333 returns statuses for other_project3334 with array of paths3335 returns statuses for project3336 .status3337 when there are multiple statuses present3338 returns a correct compound status3339 when there are only allowed to fail commit statuses present3340 returns status that indicates success3341 when using a scope to select latest statuses3342 returns status according to the scope3343 .match_id_and_lock_version3344 returns statuses that match the given id and lock versions3345 #before_sha3346 when no before_sha is set for pipeline3347 returns blank sha3348 for before_sha set for pipeline3349 returns the set value3350 #commit3351 returns commit pipeline has been created for3352 #group_name3353 name: "rspec1", group_name: "rspec1"3354 rspec1 puts in rspec13355 name: "rspec1 0 1", group_name: "rspec1"3356 rspec1 0 1 puts in rspec13357 name: "rspec1 0/2", group_name: "rspec1"3358 rspec1 0/2 puts in rspec13359 name: "rspec:windows", group_name: "rspec:windows"3360 rspec:windows puts in rspec:windows3361 name: "rspec:windows 0", group_name: "rspec:windows 0"3362 rspec:windows 0 puts in rspec:windows 03363 name: "rspec:windows 0 2/2", group_name: "rspec:windows 0"3364 rspec:windows 0 2/2 puts in rspec:windows 03365 name: "rspec:windows 0 test", group_name: "rspec:windows 0 test"3366 rspec:windows 0 test puts in rspec:windows 0 test3367 name: "rspec:windows 0 test 2/2", group_name: "rspec:windows 0 test"3368 rspec:windows 0 test 2/2 puts in rspec:windows 0 test3369 name: "rspec:windows 0 1 2/2", group_name: "rspec:windows"3370 rspec:windows 0 1 2/2 puts in rspec:windows3371 name: "rspec:windows 0 1 [aws] 2/2", group_name: "rspec:windows"3372 rspec:windows 0 1 [aws] 2/2 puts in rspec:windows3373 name: "rspec:windows 0 1 name [aws] 2/2", group_name: "rspec:windows 0 1 name"3374 rspec:windows 0 1 name [aws] 2/2 puts in rspec:windows 0 1 name3375 name: "rspec:windows 0 1 name", group_name: "rspec:windows 0 1 name"3376 rspec:windows 0 1 name puts in rspec:windows 0 1 name3377 name: "rspec:windows 0 1 name 1/2", group_name: "rspec:windows 0 1 name"3378 rspec:windows 0 1 name 1/2 puts in rspec:windows 0 1 name3379 name: "rspec:windows 0/1", group_name: "rspec:windows"3380 rspec:windows 0/1 puts in rspec:windows3381 name: "rspec:windows 0/1 name", group_name: "rspec:windows 0/1 name"3382 rspec:windows 0/1 name puts in rspec:windows 0/1 name3383 name: "rspec:windows 0/1 name 1/2", group_name: "rspec:windows 0/1 name"3384 rspec:windows 0/1 name 1/2 puts in rspec:windows 0/1 name3385 name: "rspec:windows 0:1", group_name: "rspec:windows"3386 rspec:windows 0:1 puts in rspec:windows3387 name: "rspec:windows 0:1 name", group_name: "rspec:windows 0:1 name"3388 rspec:windows 0:1 name puts in rspec:windows 0:1 name3389 name: "rspec:windows 10000 20000", group_name: "rspec:windows"3390 rspec:windows 10000 20000 puts in rspec:windows3391 name: "rspec:windows 0 : / 1", group_name: "rspec:windows"3392 rspec:windows 0 : / 1 puts in rspec:windows3393 name: "rspec:windows 0 : / 1 name", group_name: "rspec:windows 0 : / 1 name"3394 rspec:windows 0 : / 1 name puts in rspec:windows 0 : / 1 name3395 name: "rspec [inception: [something, other thing], value]", group_name: "rspec"3396 rspec [inception: [something, other thing], value] puts in rspec3397 name: "0 1 name ruby", group_name: "0 1 name ruby"3398 0 1 name ruby puts in 0 1 name ruby3399 name: "0 :/ 1 name ruby", group_name: "0 :/ 1 name ruby"3400 0 :/ 1 name ruby puts in 0 :/ 1 name ruby3401 name: "rspec: [aws]", group_name: "rspec"3402 rspec: [aws] puts in rspec3403 name: "rspec: [aws] 0/1", group_name: "rspec"3404 rspec: [aws] 0/1 puts in rspec3405 name: "rspec: [aws, max memory]", group_name: "rspec"3406 rspec: [aws, max memory] puts in rspec3407 name: "rspec:linux: [aws, max memory, data]", group_name: "rspec:linux"3408 rspec:linux: [aws, max memory, data] puts in rspec:linux3409 name: "rspec: [inception: [something, other thing], value]", group_name: "rspec"3410 rspec: [inception: [something, other thing], value] puts in rspec3411 name: "rspec:windows 0/1: [name, other]", group_name: "rspec:windows"3412 rspec:windows 0/1: [name, other] puts in rspec:windows3413 name: "rspec:windows: [name, other] 0/1", group_name: "rspec:windows"3414 rspec:windows: [name, other] 0/1 puts in rspec:windows3415 name: "rspec:windows: [name, 0/1] 0/1", group_name: "rspec:windows"3416 rspec:windows: [name, 0/1] 0/1 puts in rspec:windows3417 name: "rspec:windows: [0/1, name]", group_name: "rspec:windows"3418 rspec:windows: [0/1, name] puts in rspec:windows3419 name: "rspec:windows: [, ]", group_name: "rspec:windows"3420 rspec:windows: [, ] puts in rspec:windows3421 name: "rspec:windows: [name]", group_name: "rspec:windows"3422 rspec:windows: [name] puts in rspec:windows3423 name: "rspec:windows: [name,other]", group_name: "rspec:windows"3424 rspec:windows: [name,other] puts in rspec:windows3425 #detailed_status3426 returns a detailed status3427 #sortable_name3428 'karma' sorts as '["karma"]'3429 'karma 0 20' sorts as '["karma ", 0, " ", 20]'3430 'karma 10 20' sorts as '["karma ", 10, " ", 20]'3431 'karma 50:100' sorts as '["karma ", 50, ":", 100]'3432 'karma 1.10' sorts as '["karma ", 1, ".", 10]'3433 'karma 1.5.1' sorts as '["karma ", 1, ".", 5, ".", 1]'3434 'karma 1 a' sorts as '["karma ", 1, " a"]'3435 #locking_enabled?3436 when changing status3437 lock3438 raise exception when trying to update3439 when changing description3440 do not lock3441 save correctly3442 #drop3443 when failure_reason is nil3444 is expected to be unknown failure3445 behaves like incrementing failure reason counter3446 increments the counter with the failure_reason3447 when failure_reason is script_failure3448 is expected to be script failure3449 behaves like incrementing failure reason counter3450 increments the counter with the failure_reason3451 when failure_reason is unmet_prerequisites3452 is expected to be unmet prerequisites3453 behaves like incrementing failure reason counter3454 increments the counter with the failure_reason3455 when status is manual3456 is able to be dropped3457 when a failure reason is provided3458 when a failure reason is a symbol3459 correctly sets a failure reason3460 when a failure reason is an object3461 correctly sets a failure reason3462 ensure stage assignment3463 when commit status has a stage_id assigned3464 does not create a new stage3465 when commit status does not have a stage_id assigned3466 creates a new stage3467 when commit status does not have stage but it exists3468 uses existing stage3469 when commit status is being imported3470 does not create a new stage3471 #all_met_to_become_pending?3472 is expected to eq true3473 #enqueue3474 when initial state is :created3475 behaves like commit status enqueued3476 sets queued_at value when enqueued3477 when initial state is :skipped3478 behaves like commit status enqueued3479 sets queued_at value when enqueued3480 when initial state is :manual3481 behaves like commit status enqueued3482 sets queued_at value when enqueued3483 when initial state is :scheduled3484 behaves like commit status enqueued3485 sets queued_at value when enqueued3486 #present3487 is expected to be a kind of CommitStatusPresenter3488 #recoverable?3489 when commit status is failed3490 failure_reason: :script_failure, recoverable: false3491 when failure reason is script_failure3492 is expected to eq false3493 failure_reason: :missing_dependency_failure, recoverable: false3494 when failure reason is missing_dependency_failure3495 is expected to eq false3496 failure_reason: :archived_failure, recoverable: false3497 when failure reason is archived_failure3498 is expected to eq false3499 failure_reason: :scheduler_failure, recoverable: false3500 when failure reason is scheduler_failure3501 is expected to eq false3502 failure_reason: :data_integrity_failure, recoverable: false3503 when failure reason is data_integrity_failure3504 is expected to eq false3505 failure_reason: :unknown_failure, recoverable: true3506 when failure reason is unknown_failure3507 is expected to eq true3508 failure_reason: :api_failure, recoverable: true3509 when failure reason is api_failure3510 is expected to eq true3511 failure_reason: :stuck_or_timeout_failure, recoverable: true3512 when failure reason is stuck_or_timeout_failure3513 is expected to eq true3514 failure_reason: :runner_system_failure, recoverable: true3515 when failure reason is runner_system_failure3516 is expected to eq true3517 when commit status is not failed3518 is expected to eq false3519 #update_older_statuses_retried!3520 updates 'retried' and 'status' columns of the latest status with the same name in the same pipeline3521 #expire_etag_cache!3522 expires the etag cache3523 loose foreign key on ci_builds.project_id3524 behaves like cleanup by a loose foreign key3525 cleans up (delete or nullify) the model3526 loose foreign key on ci_builds.runner_id3527 behaves like cleanup by a loose foreign key3528 cleans up (delete or nullify) the model3529Banzai::Filter::References::CommitReferenceFilter3530 requires project context3531 ignores valid references contained inside 'pre' element3532 ignores valid references contained inside 'code' element3533 ignores valid references contained inside 'a' element3534 ignores valid references contained inside 'style' element3535 internal reference3536 links to a valid reference of 7 characters3537 links to a valid reference of 8 characters3538 links to a valid reference of 12 characters3539 links to a valid reference of 18 characters3540 links to a valid reference of 20 characters3541 links to a valid reference of 32 characters3542 links to a valid reference of 40 characters3543 always uses the short ID as the link text3544 links with adjacent text3545 ignores invalid commit IDs3546 includes a title attribute3547 escapes the title attribute3548 includes default classes3549 includes a data-project attribute3550 includes a data-commit attribute3551 supports an :only_path context3552 in merge request context3553 handles merge request contextual commit references3554 a doc with many (29) strings that could be SHAs3555 makes only a single request to Gitaly3556 cross-project / cross-namespace complete reference3557 link has valid text3558 has valid text3559 ignores invalid commit IDs on the referenced project3560 cross-project / same-namespace complete reference3561 link has valid text3562 has valid text3563 ignores invalid commit IDs on the referenced project3564 cross-project shorthand reference3565 link has valid text3566 has valid text3567 ignores invalid commit IDs on the referenced project3568 cross-project URL reference3569 links to a valid reference3570 links with adjacent text3571 ignores invalid commit IDs on the referenced project3572 URL reference for a commit patch3573 links to a valid reference3574 has valid text3575 does not link to patch when extension match is after the path3576 group context3577 ignores internal references3578 links to a valid reference3579 checking N+13580 does not have N+1 per multiple references per project3581Gitlab::ImportExport::Project::RelationTreeRestorer3582 with legacy reader3583 behaves like import project successfully3584 imported project3585 has the project attributes and relations3586 with logging of relations creation3587 logs top-level relation creation3588 with ndjson reader3589 behaves like import project successfully3590 imported project3591 has the project attributes and relations3592 when inside a group3593 behaves like import project successfully3594 imported project3595 has the project attributes and relations3596 with invalid relations3597 logs the invalid relation and its errors3598Ci::Bridge3599 has many sourced pipelines3600 has one downstream pipeline3601 behaves like has ID tokens3602 delegations3603 is expected to delegate #id_tokens to the #metadata object, allowing #metadata to return nil3604 #id_tokens?3605 without metadata3606 is expected to be falsy3607 with metadata3608 when ID tokens exist3609 is expected to be truthy3610 when ID tokens do not exist3611 is expected to be falsy3612 #id_tokens=3613 assigns the ID tokens to the CI job3614 #retryable?3615 returns true3616 without ci_recreate_downstream_pipeline ff3617 returns false3618 when there is a pipeline loop detected3619 returns false3620 when the pipeline depth has reached the max descendents3621 returns false3622 #tags3623 only has a bridge tag3624 #detailed_status3625 returns detailed status object3626 #scoped_variables3627 returns a hash representing variables3628 when bridge has dependency which has dotenv variable3629 includes inherited variable3630 state machine transitions3631 when bridge points towards downstream3632 schedules downstream pipeline creation when the status is created3633 schedules downstream pipeline creation when the status is manual3634 schedules downstream pipeline creation when the status is waiting for resource3635 raises error when the status is failed3636 #inherit_status_from_downstream!3637 when status is not supported3638 when status is created3639 returns false3640 does not change the bridge status3641 when status is waiting_for_resource3642 returns false3643 does not change the bridge status3644 when status is preparing3645 returns false3646 does not change the bridge status3647 when status is pending3648 returns false3649 does not change the bridge status3650 when status is running3651 returns false3652 does not change the bridge status3653 when status is manual3654 returns false3655 does not change the bridge status3656 when status is scheduled3657 returns false3658 does not change the bridge status3659 when status is supported3660 downstream_status: "success", upstream_status: "success"3661 inherits the downstream status3662 downstream_status: "failed", upstream_status: "failed"3663 inherits the downstream status3664 downstream_status: "canceled", upstream_status: "failed"3665 inherits the downstream status3666 downstream_status: "skipped", upstream_status: "failed"3667 inherits the downstream status3668 #dependent?3669 when bridge has strategy depend3670 is expected to equal true3671 when bridge does not have strategy depend3672 is expected to equal false3673 #yaml_variables3674 returns YAML variables3675 #downstream_variables3676 returns variables that are going to be passed downstream3677 when using variables interpolation3678 correctly expands variables with interpolation3679 when recursive interpolation has been used3680 does not expand variable recursively3681 forward variables3682 yaml_variables: nil, pipeline_variables: nil, variables: ["BRIDGE"]3683 returns variables according to the forward value3684 yaml_variables: nil, pipeline_variables: false, variables: ["BRIDGE"]3685 returns variables according to the forward value3686 yaml_variables: nil, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]3687 returns variables according to the forward value3688 yaml_variables: false, pipeline_variables: nil, variables: []3689 returns variables according to the forward value3690 yaml_variables: false, pipeline_variables: false, variables: []3691 returns variables according to the forward value3692 yaml_variables: false, pipeline_variables: true, variables: ["PVAR1"]3693 returns variables according to the forward value3694 yaml_variables: true, pipeline_variables: nil, variables: ["BRIDGE"]3695 returns variables according to the forward value3696 yaml_variables: true, pipeline_variables: false, variables: ["BRIDGE"]3697 returns variables according to the forward value3698 yaml_variables: true, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]3699 returns variables according to the forward value3700 when sending a variable via both yaml and pipeline3701 uses the pipeline variable3702 when the pipeline runs from a pipeline schedule3703 adds the schedule variable3704 metadata support3705 reads YAML variables from metadata3706 reads options from metadata3707 #triggers_child_pipeline?3708 when bridge defines a downstream YAML3709 is expected to be truthy3710 when bridge does not define a downstream YAML3711 is expected to be falsey3712 #yaml_for_downstream3713 when bridge defines a downstream YAML3714 is expected to eq "---\ninclude: path/to/child.yml\n"3715 when bridge does not define a downstream YAML3716 is expected to be nil3717 #downstream_project_path3718 when trigger is defined3719 when using variable expansion3720 correctly expands variables3721 #target_ref3722 when trigger is defined3723 returns a ref name3724 when using variable expansion3725 correctly expands variables3726 when trigger does not have project defined3727 returns nil3728 #play3729 enqueues the bridge3730 #playable?3731 when bridge is a manual action3732 is expected to be truthy3733 when build is not a manual action3734 is expected to be falsey3735 #action?3736 when bridge is a manual action3737 is expected to be truthy3738 when build is not a manual action3739 is expected to be falsey3740 #dependency_variables3741 when downloading from previous stages3742 inherits only dependent variables3743 when using needs3744 inherits only needs with artifacts variables3745TodosFinder3746 #execute3747 #execute3748 returns no todos if user is nil3749 filtering3750 returns correct todos when filtered by a project3751 returns correct todos when filtered by a group3752 when filtering by type3753 returns todos by type when filtered by a single type3754 returns todos by type when filtered by multiple types3755 returns all todos when type is nil3756 returns all todos when type is an empty collection3757 returns all todos when type is blank3758 returns todos by type when blank type is in type collection3759 returns todos of all types when only blanks are in a collection3760 returns all todos when no type param3761 raises an argument error when invalid type is passed3762 when filtering for actions3763 by action ids3764 returns the expected todos3765 returns the expected todos when filtering for multiple action ids3766 by action names3767 returns the expected todos3768 returns the expected todos when filtering for multiple action names3769 when filtering by author3770 returns correct todos when filtering by an author3771 querying for multiple authors3772 returns the correct todo items3773 by groups3774 with subgroups3775 returns todos from subgroups when filtered by a group3776 filtering for multiple groups3777 returns the expected groups3778 by state3779 returns the expected items when no state is provided3780 returns the expected items when a state is provided3781 returns the expected items when multiple states are provided3782 by project3783 returns the expected todos for one project3784 returns the expected todos for many projects3785 when filtering by target id3786 returns the expected todos for the target3787 returns the expected todos for multiple target ids3788 returns the expected todos for empty target id collection3789 external authorization3790 behaves like a finder with external authorization service3791 finds the subject3792 with an external authorization service3793 does not include the subject when no project was given3794 includes the subject when a project id was given3795 #sort3796 sorts by priority3797 by date3798 sorts with oldest created first3799 sorts with newest created first3800 .todo_types3801 returns the expected types3802 #any_for_target?3803 returns true if there are any todos for the given target3804 returns false if there are no todos for the given target3805Gitlab::BitbucketServerImport::Importer3806 #import_repository3807 adds a remote3808 raises a Gitlab::Git::CommandError in the fetch3809 raises an unhandled exception in the fetch3810 #import_pull_requests3811 imports merge event3812 falls back to comments if diff comments fail to validate3813 reports an error if an exception is raised3814 pull request author user mapping3815 when bitbucket_server_user_mapping_by_username feature flag is disabled3816 when email is not present3817 maps user3818 when email is present3819 maps user3820 when bitbucket_server_user_mapping_by_username feature flag is enabled3821 when username is not present3822 maps user3823 when username is present3824 maps user3825 when user is not found3826 maps importer user3827 comments3828 when bitbucket_server_user_mapping_by_username feature flag is disabled3829 imports comments3830 when bitbucket_server_user_mapping_by_username feature flag is enabled3831 imports comments3832 when username is not present3833 defaults to import user3834 when username is present3835 maps by username3836 metrics3837 counts and measures duration of imported projects3838 counts imported pull requests3839 threaded discussions3840 when bitbucket_server_user_mapping_by_username feature flag is disabled3841 imports threaded discussions3842 when bitbucket_server_user_mapping_by_username feature flag is enabled3843 imports threaded discussions3844 when username is not present3845 defaults to import user3846 when user is not found3847 maps importer user3848 import pull requests with caching3849 only imports one Merge Request, as the other on is in the cache3850 inaccessible branches3851 #restore_branches3852 #delete_temp_branches3853 lfs files3854 downloads lfs objects if lfs_enabled is enabled for project3855 adds the error message when the lfs download fails3856IncidentManagement::TimelineEvents::UpdateService3857 #execute3858 when user has permissions3859 updates attributes3860 creates a system note3861 behaves like successful response3862 responds with success3863 behaves like an incident management tracked event3864 .track_event3865 tracks the event using redis3866 behaves like passing the correct was_changed value3867 passes the correct was_changed value into SysteNoteService.edit_timeline_event3868 when incident_timeline feature flag is disabled3869 does not add a system note3870 when note is nil3871 does not update the note3872 updates occurred_at3873 behaves like successful response3874 responds with success3875 behaves like an incident management tracked event3876 .track_event3877 tracks the event using redis3878 behaves like passing the correct was_changed value3879 passes the correct was_changed value into SysteNoteService.edit_timeline_event3880 when note is blank3881 behaves like error response3882 has an informative message3883 does not update the note3884 behaves like does not track incident management event3885 does not track the event3886 when occurred_at is nil3887 updates the note3888 does not update occurred_at3889 behaves like successful response3890 responds with success3891 behaves like an incident management tracked event3892 .track_event3893 tracks the event using redis3894 behaves like passing the correct was_changed value3895 passes the correct was_changed value into SysteNoteService.edit_timeline_event3896 when occurred_at is blank3897 behaves like error response3898 has an informative message3899 does not update the note3900 behaves like does not track incident management event3901 does not track the event3902 when both occurred_at and note is nil3903 does not update the note3904 does not update occurred_at3905 does not call SysteNoteService.edit_timeline_event3906 behaves like successful response3907 responds with success3908 behaves like an incident management tracked event3909 .track_event3910 tracks the event using redis3911 when timeline event is non-editable3912 behaves like error response3913 has an informative message3914 does not update the note3915 behaves like does not track incident management event3916 does not track the event3917 when user does not have permissions3918 behaves like error response3919 has an informative message3920 does not update the note3921 behaves like does not track incident management event3922 does not track the event3923Mutations::MergeRequests::Update3924 is expected to require graphql authorizations :update_merge_request3925 #resolve3926 behaves like permission level for merge request mutation is correctly verified3927 when the user is not a project member3928 behaves like when the user does not have access to the resource3929 raises an error3930 even if assigned to the merge request3931 does not modify merge request3932 even if reviewer of the merge request3933 raises an error3934 even if author of the merge request3935 raises an error3936 when the user is a project member3937 with guest role3938 behaves like when the user does not have access to the resource3939 raises an error3940 even if assigned to the merge request3941 does not modify merge request3942 even if reviewer of the merge request3943 raises an error3944 even if author of the merge request3945 raises an error3946 with reporter role3947 behaves like when the user does not have access to the resource3948 raises an error3949 even if assigned to the merge request3950 does not modify merge request3951 even if reviewer of the merge request3952 raises an error3953 even if author of the merge request3954 raises an error3955 when the user can update the merge request3956 applies all attributes3957 the merge request is invalid3958 returns error information, and changes were not applied3959 our change is invalid3960 returns error information, and changes were not applied3961 when passing subset of attributes3962 only changes the mentioned attributes3963 when closing the MR3964 closes the MR3965 when re-opening the MR3966 closes the MR3967Gitlab::DataBuilder::Push3968 .build3969 with changed files3970 returns commit hook data3971 without changed files3972 returns commit hook data without include deltas3973 .build_sample3974 is expected to be a kind of Hash3975 is expected to eq "1b12f15a11fc6e62177bef08f47bc7b5ce50b141"3976 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3977 is expected to eq "refs/heads/master"3978 is expected to eq 33979 is expected to eq 33980 is expected to eq ["bar/branch-test.txt"]3981 is expected to eq []3982 is expected to eq []3983 contains project data3984 contains deprecated repository data3985 .sample_data3986 is expected to be a kind of Hash3987 is expected to eq "95790bf891e76fee5e1747ab589903a6a1f80f22"3988 is expected to eq "da1560886d4f094c3e6c9ef40349f7d38b5d27d7"3989 is expected to eq "refs/heads/master"3990 is expected to eq 153991 is expected to eq 13992 is expected to eq 13993 contains project data3994 .build3995 is expected to be a kind of Hash3996 is expected to eq "0000000000000000000000000000000000000000"3997 is expected to eq "5937ac0a7beb003549fc5fd26fc247adbce4a52e"3998 is expected to eq "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"3999 is expected to eq "refs/tags/v1.1.0"4000 is expected to eq nil4001 is expected to eq "Sidney Jones1362"4002 is expected to eq "user289"4003 is expected to eq "public-email@example.com"4004 is expected to eq "https://www.gravatar.com/avatar/8bd5e4bc0e96414649f7fe0dc913bf43?s=80&d=identicon"4005 is expected to eq 10144006 is expected to be a kind of Hash4007 is expected to be empty4008 is expected to be zero4009 contains project data4010 contains deprecated repository data4011 does not raise an error when given nil commits4012 .build_bulk4013 is expected to eq {:action=>:created, :ref_count=>2, :ref_type=>:branch}4014Gitlab::ContributionsCalendar4015 #activity_dates4016 returns a hash of date => count4017 counts the diff notes on merge request4018 counts the discussions on merge requests and issues4019 when the user has opted-in for private contributions4020 shows private and public events to all users4021 still counts correct with feature access levels set to private4022 does not fail if there are no contributed projects4023 when events fall under different dates depending on the system time zone4024 renders correct event counts within the UTC timezone4025 renders correct event counts within the Sydney timezone4026 renders correct event counts within the US Central timezone4027 when events fall under different dates depending on the contributor's time zone4028 renders correct event counts within the UTC timezone4029 renders correct event counts within the Sydney timezone4030 renders correct event counts within the US Central timezone4031 #events_by_date4032 returns all events for a given date4033 only shows private events to authorized users4034 includes diff notes on merge request4035 when the user cannot read cross project4036 does not return any events4037 #starting_year4038 when the contributor's timezone is not set4039 is the start of last year in the system timezone4040 when the contributor's timezone is set to Sydney4041 is the start of last year in Sydney4042 #starting_month4043 when the contributor's timezone is not set4044 is the start of this month in the system timezone4045 when the contributor's timezone is set to Sydney4046 is the start of this month in Sydney4047Gitlab::TreeSummary4048 #initialize4049 defaults offset to 04050 defaults limit to 254051 #summarize4052 returns an array of entries4053 with caching4054 Commits list cache4055 creates a cache for commits list4056 when commit has a very long message4057 truncates commit message to 1 kilobyte4058 #fetch_logs4059 summarizes the entries within the window4060 references the commit and commit path in entries4061 in a good subdirectory4062 summarizes the entries in the subdirectory4063 in a subdirectory with a pathspec character4064 summarizes the entries in the subdirectory4065 in a non-existent subdirectory4066 is expected to be empty4067 custom offset and limit4068 returns entries from the offset4069 next offset4070 when there are more entries to fetch4071 returns next offset4072 when there are no more entries to fetch4073 returns next offset4074 #summarize (commits)4075 returns an Array of ::Commit objects4076 deduplicates commits when multiple entries reference the same commit4077 in a subdirectory4078 returns commits for entries in the subdirectory4079 in a subdirectory with non-ASCII filenames4080 returns commits for entries in the subdirectory4081 rendering commits4082 does not perform N + 1 request4083 References in commit messages4084 project_visibility: "private", user_role: :guest, issue_confidential: false, expected_result: true4085 is expected to eq true4086 project_visibility: "private", user_role: :guest, issue_confidential: true, expected_result: false4087 is expected to eq false4088 project_visibility: "private", user_role: :reporter, issue_confidential: false, expected_result: true4089 is expected to eq true4090 project_visibility: "private", user_role: :reporter, issue_confidential: true, expected_result: true4091 is expected to eq true4092 project_visibility: "internal", user_role: :guest, issue_confidential: false, expected_result: true4093 is expected to eq true4094 project_visibility: "internal", user_role: :guest, issue_confidential: true, expected_result: false4095 is expected to eq false4096 project_visibility: "internal", user_role: :reporter, issue_confidential: false, expected_result: true4097 is expected to eq true4098 project_visibility: "internal", user_role: :reporter, issue_confidential: true, expected_result: true4099 is expected to eq true4100 project_visibility: "public", user_role: :guest, issue_confidential: false, expected_result: true4101 is expected to eq true4102 project_visibility: "public", user_role: :guest, issue_confidential: true, expected_result: false4103 is expected to eq false4104 project_visibility: "public", user_role: :reporter, issue_confidential: false, expected_result: true4105 is expected to eq true4106 project_visibility: "public", user_role: :reporter, issue_confidential: true, expected_result: true4107 is expected to eq true4108PagesDomain4109 associations4110 is expected to belong to project required: false4111 is expected to have many serverless_domain_clusters4112 .for_project4113 returns domains assigned to project4114 validate domain4115 is unique4116 is expected to validate that :domain is case-insensitively unique4117 hostname4118 domain "my.domain.com" validity4119 is expected to eq true4120 domain "123.456.789" validity4121 is expected to eq true4122 domain "0x12345.com" validity4123 is expected to eq true4124 domain "0123123" validity4125 is expected to eq true4126 domain "a-reserved.com" validity4127 is expected to eq true4128 domain "a.b-reserved.com" validity4129 is expected to eq true4130 domain "reserved.com" validity4131 is expected to eq true4132 domain "_foo.com" validity4133 is expected to eq false4134 domain "a.reserved.com" validity4135 is expected to eq false4136 domain "a.b.reserved.com" validity4137 is expected to eq false4138 domain nil validity4139 is expected to eq false4140 HTTPS-only4141 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: [:certificate, :key]4142 is adds the expected errors4143 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []4144 is adds the expected errors4145 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: false, errors_on: [:key]4146 is adds the expected errors4147 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: true, errors_on: [:key]4148 is adds the expected errors4149 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: [:certificate, :key]4150 is adds the expected errors4151 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: [:key]4152 is adds the expected errors4153 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: []4154 is adds the expected errors4155 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: []4156 is adds the expected errors4157 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: []4158 is adds the expected errors4159 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []4160 is adds the expected errors4161 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: false, errors_on: [:key]4162 is adds the expected errors4163 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: true, errors_on: [:key]4164 is adds the expected errors4165 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: [:key]4166 is adds the expected errors4167 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: [:key]4168 is adds the expected errors4169 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: []4170 is adds the expected errors4171 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: []4172 is adds the expected errors4173 when certificate is specified4174 saves validity time4175 validate certificate4176 serverless domain4177 requires certificate and key to be present4178 with matching key4179 is expected to be valid4180 when no certificate is specified4181 is expected not to be valid4182 when no key is specified4183 is expected not to be valid4184 for not matching key4185 is expected not to be valid4186 when certificate is expired4187 when certificate is being changed4188 adds error to certificate4189 when certificate is already saved4190 doesn't add error to certificate4191 with ecdsa certificate4192 is valid4193 when curve is set explicitly by parameters4194 adds errors to private key4195 validations4196 is expected to validate that :verification_code cannot be empty/falsy4197 default values4198 defaults wildcard to false4199 defaults scope to project4200 defaults usage to pages4201 #verification_code4202 is set automatically with 128 bits of SecureRandom data4203 #keyed_verification_code4204 is expected to eq "gitlab-pages-verification-code=6ce5cf738516c5d8ce54a0afade1d18f"4205 #verification_domain4206 is expected to be nil4207 is a well-known subdomain if the domain is present4208 #url4209 is expected to eq "https://my32.domain.com"4210 without the certificate4211 is expected to eq "http://my33.domain.com"4212 #has_matching_key?4213 is expected to be truthy4214 for invalid key4215 is expected to be falsey4216 #has_intermediates?4217 for self signed4218 is expected to be truthy4219 for missing certificate chain4220 is expected to be falsey4221 for trusted certificate chain4222 is expected to be truthy4223 #expired?4224 for valid4225 is expected to be falsey4226 for expired4227 is expected to be truthy4228 #subject4229 is expected to eq "/CN=test-certificate"4230 #certificate_text4231 is expected not to be empty4232 #https?4233 when a certificate is present4234 is expected to be https4235 when no certificate is present4236 is expected not to be https4237 #user_provided_key4238 when certificate is provided by user4239 returns key4240 when certificate is provided by gitlab4241 returns nil4242 #user_provided_certificate4243 when certificate is provided by user4244 returns key4245 when certificate is provided by gitlab4246 returns nil4247 #user_provided_key=4248 when value has been changed4249 assignes new value to key4250 changes certificate source4251 when value has not been not changed4252 does not change certificate source4253 #gitlab_provided_key=4254 when value has been changed4255 assignes new value to key4256 changes certificate source4257 when value has not been not changed4258 does not change certificate source4259 #user_provided_certificate=4260 when value has been changed4261 assignes new value to certificate4262 changes certificate source4263 when value has not been not changed4264 does not change certificate source4265 #gitlab_provided_certificate=4266 when value has been changed4267 assignes new value to certificate4268 changes certificate source4269 when value has not been not changed4270 does not change certificate source4271 #save4272 when we failed to obtain ssl certificate4273 clears failure if auto ssl is disabled4274 does not clear failure on unrelated updates4275 .for_removal4276 when domain is not schedule for removal4277 does not return domain4278 when domain is scheduled for removal yesterday4279 returns domain4280 when domain is scheduled for removal tomorrow4281 does not return domain4282 .instance_serverless4283 returns domains that are wildcard, instance-level, and serverless4284 .need_auto_ssl_renewal4285 contains only domains needing ssl renewal4286 #pages_virtual_domain4287 when there are no pages deployed for the project4288 returns nil4289 when there are pages deployed for the project4290 returns the virual domain when there are pages deployed for the project4291 when :cache_pages_domain_api is disabled4292 returns the virual domain when there are pages deployed for the project4293 .find_by_domain_case_insensitive4294 lookup is case-insensitive4295NotificationRecipient4296 #notifiable?4297 when emails are disabled4298 returns false if group disabled4299 returns false if project disabled4300 when emails are enabled4301 returns true if group enabled4302 returns true if project enabled4303 #has_access?4304 user cannot read cross project4305 returns false4306 user cannot read build4307 returns false4308 user cannot read commit4309 returns false4310 target has no policy4311 returns true4312 #notification_setting4313 for child groups4314 when notification setting is global4315 considers notification setting from the first parent without global setting4316 when notification setting is not global4317 considers notification setting from lowest group member in hierarchy4318 #suitable_notification_level?4319 when notification level is mention4320 when type is mention4321 returns true4322 when type is not mention4323 returns false4324 when notification level is participating4325 when type is participating4326 returns true4327 when type is mention4328 returns true4329 with custom action4330 when action is failed_pipeline4331 returns true4332 when action is fixed_pipeline4333 returns true4334 when action is not fixed_pipeline or failed_pipeline4335 returns false4336 when notification level is custom4337 when type is participating4338 with custom event enabled4339 returns true4340 without custom event enabled4341 returns true4342 when type is mention4343 with custom event enabled4344 returns true4345 without custom event enabled4346 returns true4347 when type is watch4348 with custom event enabled4349 returns true4350 without custom event enabled4351 returns false4352 when custom_action is fixed_pipeline and success_pipeline event is enabled4353 returns true4354 with merge_when_pipeline_succeeds4355 custom event enabled4356 returns true4357 custom event disabled4358 returns false4359 when notification level is watch4360 when type is watch4361 without excluded watcher events4362 returns true4363 with excluded watcher events4364 returns false4365 when type is not watch4366 without excluded watcher events4367 returns true4368 with excluded watcher events4369 returns true4370SearchService4371 #project4372 when the project is accessible4373 returns the project4374 returns the project for guests4375 when the project is not accessible4376 returns nil4377 when there is no project_id4378 returns nil4379 #group4380 when the group is accessible4381 returns the group4382 when the group is not accessible4383 returns nil4384 when there is no group_id4385 returns nil4386 #show_snippets?4387 when :snippets is 'true'4388 returns true4389 when :snippets is not 'true'4390 returns false4391 when :snippets is missing4392 returns false4393 #scope4394 with accessible project_id4395 and allowed scope4396 returns the specified scope4397 and disallowed scope4398 returns the default scope4399 and no scope4400 returns the default scope4401 with 'true' snippets4402 and allowed scope4403 returns the specified scope4404 and disallowed scope4405 returns the default scope4406 and no scope4407 returns the default scope4408 with no project_id, no snippets4409 and allowed scope4410 returns the specified scope4411 and disallowed scope4412 returns the default scope4413 and no scope4414 returns the default scope4415 #search_results4416 with accessible project_id4417 returns an instance of Gitlab::ProjectSearchResults4418 with accessible project_id and 'true' snippets4419 returns an instance of Gitlab::ProjectSearchResults4420 with 'true' snippets4421 returns an instance of Gitlab::SnippetSearchResults4422 with no project_id and no snippets4423 returns an instance of Gitlab::SearchResults4424 #search_objects4425 per_page: parameter4426 when nil4427 defaults to 204428 when empty string4429 defaults to 204430 when negative4431 defaults to 204432 when present4433 converts to integer and passes to search results4434 when greater than 2004435 passes 2004436 page: parameter4437 when < 14438 defaults to 14439 when nil4440 defaults to 14441 with accessible project_id4442 returns objects in the project4443 with accessible project_id and 'true' snippets4444 returns objects in the project4445 with 'true' snippets4446 returns objects in snippets4447 with accessible group_id4448 returns objects in the group4449 with no project_id, group_id or snippets4450 returns objects in global4451 redacting search results4452 issues4453 redacts the inaccessible issue4454 notes4455 redacts the inaccessible note4456 merge_requests4457 redacts the inaccessible merge request4458 with :with_api_entity_associations4459 behaves like redaction limits N+1 queries4460 does not exceed the query limit4461 project repository blobs4462 redacts the inaccessible blob4463 project wiki blobs4464 redacts the inaccessible blob4465 project snippets4466 redacts the inaccessible snippet4467 with :with_api_entity_associations4468 behaves like redaction limits N+1 queries4469 does not exceed the query limit4470 personal snippets4471 redacts the inaccessible snippet4472 with :with_api_entity_associations4473 behaves like redaction limits N+1 queries4474 does not exceed the query limit4475 commits4476 redacts the inaccessible commit4477 users4478 passes the users through4479 #valid_request?4480 is the return value of params.valid?4481 #abuse_messages4482 returns an empty array when not abusive4483 calls on abuse_detection.errors.full_messages when abusive4484 abusive search handling4485 a search is abusive4486 does NOT execute search service4487 a search is NOT abusive4488 executes search service4489Integrations::HasDataFields4490 when data are stored in data_fields4491 behaves like data fields4492 #arg4493 returns the expected values4494 {arg}_changed?4495 returns false when the property has not been assigned a new value4496 returns true when the property has been assigned a different value4497 returns true when the property has been assigned a different value twice4498 returns false when the property has been re-assigned the same value4499 {arg}_touched?4500 returns false when the property has not been assigned a new value4501 returns true when the property has been assigned a different value4502 returns true when the property has been assigned a different value twice4503 returns true when the property has been re-assigned the same value4504 returns false when the property has been re-assigned the same value4505 data_fields_present?4506 returns true from the issue tracker integration4507 {arg}_was?4508 returns nil4509 when integration and data_fields are not persisted4510 data_fields_present?4511 returns true4512 when data are stored in properties4513 behaves like data fields4514 #arg4515 returns the expected values4516 {arg}_changed?4517 returns false when the property has not been assigned a new value4518 returns true when the property has been assigned a different value4519 returns true when the property has been assigned a different value twice4520 returns false when the property has been re-assigned the same value4521 {arg}_touched?4522 returns false when the property has not been assigned a new value4523 returns true when the property has been assigned a different value4524 returns true when the property has been assigned a different value twice4525 returns true when the property has been re-assigned the same value4526 returns false when the property has been re-assigned the same value4527 data_fields_present?4528 returns true from the issue tracker integration4529 {arg}_was?4530 returns nil when the property has not been assigned a new value4531 returns initial value when the property has been assigned a different value4532 returns initial value when the property has been re-assigned the same value4533 when data are stored in both properties and data_fields4534 behaves like data fields4535 #arg4536 returns the expected values4537 {arg}_changed?4538 returns false when the property has not been assigned a new value4539 returns true when the property has been assigned a different value4540 returns true when the property has been assigned a different value twice4541 returns false when the property has been re-assigned the same value4542 {arg}_touched?4543 returns false when the property has not been assigned a new value4544 returns true when the property has been assigned a different value4545 returns true when the property has been assigned a different value twice4546 returns true when the property has been re-assigned the same value4547 returns false when the property has been re-assigned the same value4548 data_fields_present?4549 returns true from the issue tracker integration4550 {arg}_was?4551 returns nil4552Projects::BuildArtifactsSizeRefresh4553 associations4554 is expected to belong to project required: false4555 validations4556 is expected to validate that :project cannot be empty/falsy4557 scopes4558 stale4559 returns records in running state and has not been updated for more than 2 hours4560 remaining4561 returns stale, created, and pending records4562 processing_queue4563 prioritizes pending -> stale -> created4564 state machine4565 initial state4566 defaults to created4567 #process!4568 when refresh state is created4569 transitions the state to running4570 sets the refresh_started_at4571 sets last_job_artifact_id_on_refresh_start4572 bumps the updated_at4573 resets the build artifacts size stats4574 resets the counter attribute to zero4575 when refresh state is pending4576 transitions the state to running4577 bumps the updated_at4578 when refresh state is running4579 keeps the state at running4580 bumps the updated_at4581 #requeue!4582 transitions refresh state from running to pending4583 bumps updated_at4584 updates last_job_artifact_id4585 .process_next_refresh!4586 picks the first record from the remaining work4587 .enqueue_refresh4588 creates refresh records for each given project, skipping duplicates4589 #next_batch4590 returns the job artifact records that were created not later than the refresh_started_at and IDs greater than the last_job_artifact_id4591 when created_at is set before artifact id is persisted4592 returns ordered job artifacts4593 #started?4594 refresh_state: :created, result: false4595 is expected to eq false4596 refresh_state: :pending, result: true4597 is expected to eq true4598 refresh_state: :running, result: true4599 is expected to eq true4600List4601 behaves like having unique enum values4602 has unique values in "list_type"4603 behaves like boards listable model4604 associations4605 is expected to validate that :position cannot be empty/falsy4606 is expected to validate that :position looks like an integer greater than or equal to 04607 when list_type is set to closed4608 is expected not to validate that :label cannot be empty/falsy4609 is expected not to validate that :position cannot be empty/falsy4610 scopes4611 .ordered4612 returns lists ordered by type and position4613 .without_types4614 excludes lists of given types4615 #destroyable?4616 returns true when list_type is set to label4617 returns false when list_type is set to closed4618 #movable?4619 returns true when list_type is set to label4620 returns false when list_type is set to closed4621 #title4622 returns label name when list_type is set to label4623 returns Open when list_type is set to backlog4624 returns Closed when list_type is set to closed4625 #destroy4626 can be destroyed when list_type is set to label4627 can not be destroyed when list_type is set to closed4628 behaves like list_preferences_for user4629 #preferences_for4630 when user is nil4631 returns not persisted preferences4632 when a user preference already exists4633 loads preference for user4634 when preferences for user does not exist4635 returns not persisted preferences4636 #update_preferences_for4637 when user is present4638 when there are no preferences for user4639 creates new user preferences4640 when there are preferences for user4641 updates user preferences4642 when user is nil4643 does not create user preferences4644 relationships4645 is expected to belong to board required: false4646 is expected to belong to label required: false4647 validations4648 is expected to validate that :board cannot be empty/falsy4649 is expected to validate that :label cannot be empty/falsy4650 is expected to validate that :list_type cannot be empty/falsy4651PipelineDetailsEntity4652 inherits from PipelineEntity4653 #as_json4654 when pipeline is empty4655 contains details4656 contains flags4657 when pipeline is retryable4658 user has ability to retry pipeline4659 retryable flag is true4660 user does not have ability to retry pipeline4661 retryable flag is false4662 when pipeline is cancelable4663 user has ability to cancel pipeline4664 cancelable flag is true4665 user does not have ability to cancel pipeline4666 cancelable flag is false4667 when pipeline has commit statuses4668 contains stages4669 when pipeline has YAML errors4670 contains information about error4671 contains flag that indicates there are errors4672 when pipeline does not have YAML errors4673 does not contain field that normally holds an error4674 contains flag that indicates there are no errors4675 when pipeline is triggered by other pipeline4676 contains an information about depedent pipeline4677 when pipeline triggered other pipeline4678 contains an information about dependent pipeline4679Packages::Debian::ProcessChangesWorker4680 #perform4681 with FIPS mode enabled4682 raises an error4683 with mocked service4684 calls ProcessChangesService4685 with non existing package file4686 returns early without error4687 with nil package file id4688 returns early without error4689 with non existing user4690 returns early without error4691 with nil user id4692 returns early without error4693 when the service raises an error4694 removes package file4695 behaves like an idempotent worker4696 is labeled as idempotent4697 performs multiple times sequentially without raising an exception4698 sets the Debian file type as changes4699Ci::JobArtifacts::UpdateUnknownLockedStatusService4700 .execute4701 when artifacts are expired4702 sets artifact_locked when the pipeline is locked4703 destroys the artifact when the pipeline is unlocked4704 does not update ci_job_artifact rows with known locked values4705 logs the counts of affected artifacts4706 in a single iteration4707 due to the LOOP_TIMEOUT4708 affects the earliest expired artifact first4709 reports the number of destroyed artifacts4710 due to @loop_limit4711 affects the most recently expired artifact first4712 reports the number of destroyed artifacts4713 when artifact is not expired4714 does not change the locked status4715 when exclusive lease has already been taken by the other instance4716 raises an error and4717 when there are no unknown status artifacts4718 does not raise error4719 reports the number of destroyed artifacts4720Gitlab::DataBuilder::Issuable4721 #build4722 behaves like issuable hook data4723 contains project data4724 contains deprecated repository data4725 with a issue4726 contains issuable data4727 does not contain certain keys4728 changes are given4729 populates the :changes hash4730 does not contain certain keys4731 behaves like issuable hook data4732 contains project data4733 contains deprecated repository data4734 with a merge_request4735 contains issuable data4736 does not contain certain keys4737 changes are given4738 populates the :changes hash4739 does not contain certain keys4740 issue is assigned4741 returns correct hook data4742 merge_request is assigned4743 returns correct hook data4744 merge_request is assigned reviewers4745 returns correct hook data4746 when merge_request does not have reviewers and assignees4747 returns correct hook data4748IncidentManagement::IssuableEscalationStatus4749 is expected to be valid4750 associations4751 is expected to belong to issue required: false4752 is expected to have one project through issue inverse_of => incident_management_issuable_escalation_statuses4753 validatons4754 is expected to validate that :issue cannot be empty/falsy4755 is expected to validate that :issue is case-sensitively unique4756 behaves like a model including Escalatable4757 validations4758 is expected to validate that :status cannot be empty/falsy4759 when status is triggered4760 when resolved_at is blank4761 is expected to be valid4762 when resolved_at is present4763 is expected to be invalid4764 when status is acknowledged4765 when resolved_at is blank4766 is expected to be valid4767 when resolved_at is present4768 is expected to be invalid4769 when status is resolved4770 when resolved_at is blank4771 is expected to be invalid4772 when resolved_at is present4773 is expected to be valid4774 when status is ignored4775 when resolved_at is blank4776 is expected to be valid4777 when resolved_at is present4778 is expected to be invalid4779 scopes4780 .order_status4781 descending4782 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 2, created_at: "2022-08-24 17:45:39.483426000 +00...00 +0000", issue_id: 394, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 3>]4783 ascending4784 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 5, created_at: "2022-08-24 17:45:40.937912000 +00...00 +0000", issue_id: 391, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>]4785 .open4786 is expected to contain exactly #<IncidentManagement::IssuableEscalationStatus id: 3, created_at: "2022-08-24 17:45:39.972660000 +000...000 +0000", issue_id: 392, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 1> and #<IncidentManagement::IssuableEscalationStatus id: 2, created_at: "2022-08-24 17:45:39.483426000 +000...000 +0000", issue_id: 391, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>4787 .status_value4788 status: :triggered, status_value: 04789 returns status value by its name4790 status: :acknowledged, status_value: 14791 returns status value by its name4792 status: :resolved, status_value: 24793 returns status value by its name4794 status: :ignored, status_value: 34795 returns status value by its name4796 status: :unknown, status_value: nil4797 returns status value by its name4798 .status_name4799 raw_status: 0, status: :triggered4800 returns status name by its values4801 raw_status: 1, status: :acknowledged4802 returns status name by its values4803 raw_status: 2, status: :resolved4804 returns status name by its values4805 raw_status: 3, status: :ignored4806 returns status name by its values4807 raw_status: -1, status: nil4808 returns status name by its values4809 .open_status?4810 status: :triggered, is_open_status: true4811 returns true when the status is open status4812 status: :acknowledged, is_open_status: true4813 returns true when the status is open status4814 status: :resolved, is_open_status: false4815 returns true when the status is open status4816 status: :ignored, is_open_status: false4817 returns true when the status is open status4818 status: nil, is_open_status: false4819 returns true when the status is open status4820 #trigger4821 when escalatable is in triggered state4822 does not change the escalatable status4823 when escalatable is not in triggered state4824 changes the escalatable status to triggered4825 resets resolved at4826 #acknowledge4827 changes the escalatable status to acknowledged4828 resets ended at4829 #resolve4830 when escalatable is already resolved4831 does not change the escalatable status4832 when escalatable is not resolved4833 changes escalatable status to "resolved"4834 #ignore4835 changes the escalatable status to ignored4836 resets ended at4837 #status_event_for4838 for_status: :triggered, event: :trigger4839 returns event by status name4840 for_status: "triggered", event: :trigger4841 returns event by status name4842 for_status: :acknowledged, event: :acknowledge4843 returns event by status name4844 for_status: "acknowledged", event: :acknowledge4845 returns event by status name4846 for_status: :resolved, event: :resolve4847 returns event by status name4848 for_status: "resolved", event: :resolve4849 returns event by status name4850 for_status: :ignored, event: :ignore4851 returns event by status name4852 for_status: "ignored", event: :ignore4853 returns event by status name4854 for_status: :unknown, event: nil4855 returns event by status name4856 for_status: nil, event: nil4857 returns event by status name4858 for_status: "", event: nil4859 returns event by status name4860 for_status: 1, event: nil4861 returns event by status name4862 #open?4863 returns true when the status is open status4864IssuablePolicy4865 #rules4866 when user is author of issuable4867 allows resolving notes4868 when user is able to read project4869 enables user to read and update issuables4870 Timeline events4871 allows non-members to read time line events4872 disallows reporters from managing timeline events4873 allows developers to manage timeline events4874 when project is private4875 disallows user from reading and updating issuables from that project4876 when user belongs to the projects team4877 enables user to read and update issuables4878 Timeline events4879 disallows non-members from reading timeline events4880 allows guests to read time line events4881 disallows reporters from managing timeline events4882 allows developers to manage timeline events4883 when discussion is locked for the issuable4884 when the user is not a project member4885 can not create a note nor award emojis4886 does not allow resolving note4887 when the user is a project member4888 can create a note and award emojis4889 allows resolving notes4890 when user is anonymous4891 does not allow timelogs creation4892 when user is not a member of the project4893 does not allow timelogs creation4894 when user is not a member of the project but the author of the issuable4895 does not allow timelogs creation4896 when user is a guest member of the project4897 does not allow timelogs creation4898 when user is a guest member of the project and the author of the issuable4899 does not allow timelogs creation4900 when user is at least reporter of the project4901 allows timelogs creation4902Gitlab::FakeApplicationSettings4903 defines methods for default attributes4904 defines predicate methods for boolean properties4905 does not define a predicate method for non-boolean properties4906 returns nil for undefined attributes4907 does not override an existing predicate method4908 behaves like application settings examples4909 predicate method changes when value is updated4910 restricted signup domains4911 behaves like string of domains4912 sets single domain4913 sets multiple domains with spaces4914 sets multiple domains with newlines and a space4915 sets multiple domains with commas4916 sets multiple domains with semicolon4917 sets multiple domains with mixture of everything4918 removes duplicates4919 does not fail with garbage values4920 does not raise error with nil4921 denied signup domains4922 sets multiple domain with file4923 behaves like string of domains4924 sets single domain4925 sets multiple domains with spaces4926 sets multiple domains with newlines and a space4927 sets multiple domains with commas4928 sets multiple domains with semicolon4929 sets multiple domains with mixture of everything4930 removes duplicates4931 does not fail with garbage values4932 does not raise error with nil4933 outbound_local_requests_whitelist4934 clears outbound_local_requests_allowlist_arrays memoization4935 behaves like string of domains4936 sets single domain4937 sets multiple domains with spaces4938 sets multiple domains with newlines and a space4939 sets multiple domains with commas4940 sets multiple domains with semicolon4941 sets multiple domains with mixture of everything4942 removes duplicates4943 does not fail with garbage values4944 does not raise error with nil4945 outbound_local_requests_allowlist_arrays4946 separates the IPs and domains4947 add_to_outbound_local_requests_whitelist4948 adds entry to outbound_local_requests_whitelist4949 clears outbound_local_requests_allowlist_arrays memoization4950 does not raise error with nil4951 does not raise error with nil4952 usage ping settings4953 when the usage ping is disabled in gitlab.yml4954 does not allow the usage ping to be configured4955 when the usage ping is disabled in the DB4956 returns false for usage_ping_enabled4957 when the usage ping is enabled in the DB4958 returns false for usage_ping_enabled4959 when the usage ping is enabled in gitlab.yml4960 allows the usage ping to be configured4961 when the usage ping is disabled in the DB4962 returns false for usage_ping_enabled4963 when the usage ping is enabled in the DB4964 returns true for usage_ping_enabled4965 #allowed_key_types4966 excludes disabled key types4967 in non-FIPS mode4968 includes all key types by default4969 in FIPS mode4970 excludes DSA from supported key types4971 #key_restriction_for4972 returns the restriction value for recognised types4973 allows types to be passed as a string4974 returns forbidden for unrecognised type4975 #allow_signup?4976 returns true4977 returns false if signup is disabled4978 returns false if password authentication is disabled for the web interface4979 #pick_repository_storage4980 chooses repository based on weight4981 #normalized_repository_storage_weights4982 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}4983 normalizes storage weights4984 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}4985 normalizes storage weights4986 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}4987 normalizes storage weights4988 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}4989 normalizes storage weights4990 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}4991 normalizes storage weights4992 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}4993 normalizes storage weights4994 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}4995 normalizes storage weights4996 #user_default_internal_regex_enabled?4997 user_default_external: false, user_default_internal_regex: nil, result: false4998 is expected to eq false4999 user_default_external: false, user_default_internal_regex: "", result: false5000 is expected to eq false5001 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false5002 is expected to eq false5003 user_default_external: true, user_default_internal_regex: "", result: false5004 is expected to eq false5005 user_default_external: true, user_default_internal_regex: nil, result: false5006 is expected to eq false5007 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true5008 is expected to eq true5009 #archive_builds_older_than5010 when the archive_builds_in_seconds is set5011 is expected to be within 60 of 2022-08-24 16:46:03.842036765 +00005012 when the archive_builds_in_seconds is set5013 is expected to be nil5014 #commit_email_hostname5015 when the value is provided5016 returns the provided value5017 when the value is not provided5018 returns the default from the class5019ProjectSnippetPolicy5020 public snippet5021 no user5022 is expected not to be allowed :admin_snippet5023 regular user5024 is expected not to be allowed :admin_snippet5025 behaves like regular user access rights5026 not snippet author5027 project team member (non guest)5028 is expected not to be allowed :admin_snippet5029 project team member (guest)5030 is expected not to be allowed :admin_snippet5031 project team member (maintainer)5032 is expected to be allowed :admin_snippet5033 snippet author5034 project member (non guest)5035 is expected to be allowed :admin_snippet5036 project member (guest)5037 is expected not to be allowed :admin_snippet5038 project team member (maintainer)5039 is expected to be allowed :admin_snippet5040 not a project member5041 is expected not to be allowed :admin_snippet5042 external user5043 is expected not to be allowed :admin_snippet5044 project team member5045 is expected not to be allowed :admin_snippet5046 internal snippet5047 no user5048 is expected not to be allowed :admin_snippet5049 regular user5050 is expected not to be allowed :admin_snippet5051 behaves like regular user access rights5052 not snippet author5053 project team member (non guest)5054 is expected not to be allowed :admin_snippet5055 project team member (guest)5056 is expected not to be allowed :admin_snippet5057 project team member (maintainer)5058 is expected to be allowed :admin_snippet5059 snippet author5060 project member (non guest)5061 is expected to be allowed :admin_snippet5062 project member (guest)5063 is expected not to be allowed :admin_snippet5064 project team member (maintainer)5065 is expected to be allowed :admin_snippet5066 not a project member5067 is expected not to be allowed :admin_snippet5068 external user5069 is expected not to be allowed :admin_snippet5070 project team member5071 is expected not to be allowed :admin_snippet5072 private snippet5073 no user5074 is expected not to be allowed :admin_snippet5075 regular user5076 is expected not to be allowed :admin_snippet5077 behaves like regular user access rights5078 not snippet author5079 project team member (non guest)5080 is expected not to be allowed :admin_snippet5081 project team member (guest)5082 is expected not to be allowed :admin_snippet5083 project team member (maintainer)5084 is expected to be allowed :admin_snippet5085 snippet author5086 project member (non guest)5087 is expected to be allowed :admin_snippet5088 project member (guest)5089 is expected not to be allowed :admin_snippet5090 project team member (maintainer)5091 is expected to be allowed :admin_snippet5092 not a project member5093 is expected not to be allowed :admin_snippet5094 external user5095 is expected not to be allowed :admin_snippet5096 project team member5097 is expected not to be allowed :admin_snippet5098 admin user5099 when admin mode is enabled5100 is expected to be allowed :admin_snippet5101 when admin mode is disabled5102 is expected not to be allowed :admin_snippet5103Gitlab::Ci::Pipeline::Chain::Validate::External5104 #perform!5105 respects the defined payload schema5106 with configuration values in ApplicationSetting5107 uses those values rather than env vars or defaults5108 with EXTERNAL_VALIDATION_SERVICE_TIMEOUT defined5109 with valid value5110 uses defined timeout5111 with invalid value5112 uses default timeout5113 when EXTERNAL_VALIDATION_SERVICE_TOKEN is set5114 passes token in X-Gitlab-Token header5115 when validation returns 200 OK5116 behaves like successful external authorization5117 does not drop the pipeline5118 does not break the chain5119 logs the authorization5120 returns expected payload5121 with existing jobs from other project's alive pipelines5122 returns the expected total_builds_count5123 when validation returns 404 Not Found5124 behaves like successful external authorization5125 does not drop the pipeline5126 does not break the chain5127 logs the authorization5128 returns expected payload5129 with existing jobs from other project's alive pipelines5130 returns the expected total_builds_count5131 when validation returns 500 Internal Server Error5132 behaves like successful external authorization5133 does not drop the pipeline5134 does not break the chain5135 logs the authorization5136 returns expected payload5137 with existing jobs from other project's alive pipelines5138 returns the expected total_builds_count5139 when validation raises exceptions5140 logs exceptions5141 behaves like successful external authorization5142 does not drop the pipeline5143 does not break the chain5144 logs the authorization5145 returns expected payload5146 with existing jobs from other project's alive pipelines5147 returns the expected total_builds_count5148 when validation returns 406 Not Acceptable5149 drops the pipeline5150 breaks the chain5151 logs the authorization5152 when save_incompleted is false5153 adds errors to the pipeline without dropping it5154 breaks the chain5155 logs the authorization5156MergeRequests::Conflicts::ResolveService5157 #execute5158 with section params5159 when the source and target project are the same5160 creates a commit with the message5161 creates a commit with the correct parents5162 when some files have trailing newlines5163 preserves trailing newlines from our side of the conflicts5164 when the source project is a fork and does not contain the HEAD of the target branch5165 creates a commit with the message5166 creates a commit with the correct parents5167 with content and sections params5168 creates a commit with the message5169 creates a commit with the correct parents5170 sets the content to the content given5171 when a resolution section is missing5172 raises a ResolutionError error5173 when the content of a file is unchanged5174 raises a ResolutionError error5175 when a file is missing5176 raises a ResolutionError error5177projects/_home_panel5178 admin area link5179 renders admin area link for admin5180 does not render admin area link for non-admin5181 does not render admin area link for anonymous5182 notifications5183 when user is signed in5184 renders Vue app root5185 when user is signed out5186 does not render Vue app root5187 badges5188 has no badges5189 does not render any badge5190 only has group badges5191 behaves like show badges5192 renders the all badges5193 only has project badges5194 behaves like show badges5195 renders the all badges5196 has both group and project badges5197 behaves like show badges5198 renders the all badges5199 project id5200 user can read project5201 is shown5202 user cannot read project5203 is not shown5204 forks5205 user can read fork source5206 shows the forked-from project5207 user cannot read fork source5208 does not show the forked-from project5209Projects::GitDeduplicationService5210 #execute5211 when there is not already a lease5212 when the project does not have a pool repository5213 calls disconnect_git_alternates5214 when the project has a pool repository5215 links the repository to the object pool5216 does not link the repository to the object pool if they are not on the same storage5217 when the project is a source project5218 calls fetch5219 does not call fetch if git objects are not poolable5220 does not call fetch if pool and project are not on the same storage5221 when visibility level of the project5222 is private5223 does not call fetch5224 is public5225 calls fetch5226 is internal5227 calls fetch5228 when the repository access level5229 is private5230 does not call fetch5231 is greater than private5232 calls fetch5233 when a lease is already out5234 fails when a lease is already out5235Projects::ContainerRepository::CleanupTagsService5236 #execute5237 when no params are specified5238 does not remove anything5239 when regex matching everything is specified5240 behaves like removes all matches5241 does remove all tags except latest5242 with deprecated name_regex param5243 behaves like removes all matches5244 does remove all tags except latest5245 with invalid regular expressions5246 when name_regex_delete is invalid5247 behaves like handling an invalid regex5248 keeps all tags5249 is expected to eq {:message=>"invalid regex", :status=>:error}5250 calls error tracking service5251 when name_regex is invalid5252 behaves like handling an invalid regex5253 keeps all tags5254 is expected to eq {:message=>"invalid regex", :status=>:error}5255 calls error tracking service5256 when name_regex_keep is invalid5257 behaves like handling an invalid regex5258 keeps all tags5259 is expected to eq {:message=>"invalid regex", :status=>:error}5260 calls error tracking service5261 when delete regex matching specific tags is used5262 does remove C and D5263 with overriding allow regex5264 does not remove C5265 with name_regex_delete overriding deprecated name_regex5266 does not remove C5267 with allow regex value5268 does not remove B*5269 when keeping only N tags5270 sorts tags by date5271 when not keeping N tags5272 does not sort tags by date5273 when removing keeping only 35274 does remove B* and C as they are the oldest5275 when removing older than 1 day5276 does remove B* and C as they are older than 1 day5277 when combining all parameters5278 does remove B* and C5279 when running a container_expiration_policy5280 with valid container_expiration_policy param5281 is expected to eq {:after_truncate_size=>6, :before_delete_size=>3, :before_truncate_size=>6, :cached_tags_count=>0, :deleted=>["Bb", "Ba", "C"], :deleted_size=>3, :original_size=>7, :status=>:success}5282 caching5283 expects caching to be used5284 when setting set to false5285 does not use caching5286 without container_expiration_policy param5287 fails5288 truncating the tags list5289 max_list_size: 10, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false5290 behaves like returning the response5291 returns the response5292 max_list_size: 10, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false5293 behaves like returning the response5294 returns the response5295 max_list_size: 3, delete_tags_service_status: :success, expected_status: :error, expected_truncated: true5296 behaves like returning the response5297 returns the response5298 max_list_size: 3, delete_tags_service_status: :error, expected_status: :error, expected_truncated: true5299 behaves like returning the response5300 returns the response5301 max_list_size: 0, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false5302 behaves like returning the response5303 returns the response5304 max_list_size: 0, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false5305 behaves like returning the response5306 returns the response5307 caching5308 caches the created_at values5309 with cached values5310 uses them5311Gitlab::ImportExport::MergeRequestParser5312 has a source branch5313 has a target branch5314 fork merge request5315 parses a MR that has no source branch5316 parses a MR that is closed5317 parses a MR that is merged5318 when the merge request has diffs5319 when the diff is invalid5320 sets the diff to empty diff5321Ci::DeleteUnitTestsService5322 #execute5323 does not delete unit test failures not older than 14 days5324 deletes unit test failures older than 14 days5325 deletes unit tests that have no more associated unit test failures5326MergeRequests::GetUrlsService5327 #execute5328 when project is nil5329 behaves like no_merge_request_url5330 returns no URL5331 pushing to default branch5332 behaves like no_merge_request_url5333 returns no URL5334 pushing to project with MRs disabled5335 behaves like no_merge_request_url5336 returns no URL5337 pushing one completely new branch5338 behaves like new_merge_request_link5339 returns url to create new merge request5340 pushing to existing branch but no merge request5341 behaves like new_merge_request_link5342 returns url to create new merge request5343 pushing to deleted branch5344 behaves like no_merge_request_url5345 returns no URL5346 pushing to existing branch and merge request opened5347 behaves like show_merge_request_url5348 returns url to view merge request5349 pushing to existing branch and merge request is reopened5350 behaves like show_merge_request_url5351 returns url to view merge request5352 pushing to existing branch from forked project5353 behaves like show_merge_request_url5354 returns url to view merge request5355 pushing to existing branch and merge request is closed5356 behaves like new_merge_request_link5357 returns url to create new merge request5358 pushing to existing branch and merge request is merged5359 behaves like new_merge_request_link5360 returns url to create new merge request5361 pushing new branch and existing branch (with merge request created) at once5362 returns 2 urls for both creating new and showing merge request5363 when printing_merge_request_link_enabled is false5364 returns empty array5365AlertManagement::HttpIntegration5366 associations5367 is expected to belong to project required: false5368 validations5369 is expected to validate that :project cannot be empty/falsy5370 is expected to validate that :name cannot be empty/falsy5371 is expected to validate that the length of :name is at most 2555372 when active5373 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5374 when inactive5375 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5376 payload_attribute_mapping5377 with valid JSON schema5378 is expected to be valid5379 with invalid JSON schema5380 when property is not an object5381 behaves like is invalid record5382 is expected to eq ["must be a valid json schema"]5383 when property missing required attributes5384 behaves like is invalid record5385 is expected to eq ["must be a valid json schema"]5386 when property has extra attributes5387 behaves like is invalid record5388 is expected to eq ["must be a valid json schema"]5389 before validation5390 #ensure_payload_example_not_nil5391 when the payload_example is nil5392 sets the payload_example to empty JSON5393 when the payload_example is not nil5394 sets the payload_example to specified value5395 #token5396 when unsaved5397 when unassigned5398 behaves like valid token5399 is expected to match /\A\h{32}\z/5400 when assigned5401 is expected not to eq "random_token"5402 behaves like valid token5403 is expected to match /\A\h{32}\z/5404 when persisted5405 behaves like valid token5406 is expected to match /\A\h{32}\z/5407 when resetting5408 is expected not to eq "6aa526acff275859899e7ef4c98cec1b"5409 behaves like valid token5410 is expected to match /\A\h{32}\z/5411 when reassigning5412 is expected to eq "34c689b68bc9769882baabc35d72dc92"5413 behaves like valid token5414 is expected to match /\A\h{32}\z/5415 #endpoint_identifier5416 when defined on initialize5417 is expected to match /\A\h{16}\z/5418 when included in initialization args5419 is expected to eq "legacy"5420 when reassigning5421 does not allow reassignment5422 #url5423 is expected to eq "http://localhost/namespace1341/project1413/alerts/notify/datadog/145f7daa.json"5424 when name is not defined5425 is expected to eq "http://localhost/namespace1319/project1391/alerts/notify/http-endpoint/f692e5d780406b0e.json"5426 for a legacy integration5427 is expected to eq "http://localhost/namespace1342/project1414/alerts/notify.json"5428Mutations::DesignManagement::Upload5429 #resolve5430 when the feature is not available5431 behaves like resource not available5432 raises an error5433 when the feature is available5434 contention in the design repo5435 running requests in parallel5436 does not cause errors5437 running requests in parallel on different issues5438 does not cause errors5439 running requests in serial5440 does not cause errors5441 when the user is not allowed to upload designs5442 behaves like resource not available5443 raises an error5444 with a valid design5445 returns the updated designs5446 when passing an invalid project5447 behaves like resource not available5448 raises an error5449 when passing an invalid issue5450 behaves like resource not available5451 raises an error5452 when creating designs causes errors5453 wraps the errors5454Packages::BuildInfosFinder5455 #execute5456 with nil packages5457 is expected to be empty5458 with [] packages5459 is expected to be empty5460 with empy scope packages5461 is expected to be empty5462 with a single package5463 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]5464 behaves like returning the expected build infos5465 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package..., package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5466 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]5467 behaves like returning the expected build infos5468 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package..., package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5469 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [4, 3]5470 behaves like returning the expected build infos5471 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>]5472 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3]5473 behaves like returning the expected build infos5474 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>]5475 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]5476 behaves like returning the expected build infos5477 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5478 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]5479 behaves like returning the expected build infos5480 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5481 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]5482 behaves like returning the expected build infos5483 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5484 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]5485 behaves like returning the expected build infos5486 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5487 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]5488 behaves like returning the expected build infos5489 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5490 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [1, 0]5491 behaves like returning the expected build infos5492 is expected to eq [#<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5493 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]5494 behaves like returning the expected build infos5495 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5496 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [3, 2]5497 behaves like returning the expected build infos5498 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5499 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]5500 behaves like returning the expected build infos5501 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5502 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [2, 1]5503 behaves like returning the expected build infos5504 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5505 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]5506 behaves like returning the expected build infos5507 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5508 with many packages5509 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]5510 behaves like returning the expected build infos5511 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 11, pipeline_id: 668>, #<Packages::BuildInfo id: 10, packa..., package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5512 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]5513 behaves like returning the expected build infos5514 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 11, pipeline_id: 668>, #<Packages::BuildInfo id: 10, packa..., package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5515 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [9, 8, 4, 3]5516 behaves like returning the expected build infos5517 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 11, pipeline_id: 668>, #<Packages::BuildInfo id: 10, packa..., package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>]5518 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [9, 8, 4, 3]5519 behaves like returning the expected build infos5520 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 11, pipeline_id: 668>, #<Packages::BuildInfo id: 10, packa..., package_id: 10, pipeline_id: 663>, #<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>]5521 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [9, 8, 7, 4, 3, 2]5522 behaves like returning the expected build infos5523 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 11, pipeline_id: 668>, #<Packages::BuildInfo id: 10, packa..., package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5524 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]5525 behaves like returning the expected build infos5526 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5527 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]5528 behaves like returning the expected build infos5529 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5530 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]5531 behaves like returning the expected build infos5532 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5533 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]5534 behaves like returning the expected build infos5535 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5536 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [6, 5, 1, 0]5537 behaves like returning the expected build infos5538 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 11, pipeline_id: 665>, #<Packages::BuildInfo id: 7, package..., package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5539 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 2, 1, 0]5540 behaves like returning the expected build infos5541 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 11, pipeline_id: 666>, #<Packages::BuildInfo id: 8, package..., package_id: 10, pipeline_id: 660>, #<Packages::BuildInfo id: 1, package_id: 10, pipeline_id: 659>]5542 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [6, 5, 3, 2]5543 behaves like returning the expected build infos5544 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 11, pipeline_id: 665>, #<Packages::BuildInfo id: 7, package..., package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5545 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 4, 3, 2]5546 behaves like returning the expected build infos5547 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 11, pipeline_id: 666>, #<Packages::BuildInfo id: 8, package..., package_id: 10, pipeline_id: 662>, #<Packages::BuildInfo id: 3, package_id: 10, pipeline_id: 661>]5548 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [6, 5, 2, 1]5549 behaves like returning the expected build infos5550 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 11, pipeline_id: 665>, #<Packages::BuildInfo id: 7, package..., package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5551 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 3, 2, 1]5552 behaves like returning the expected build infos5553 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 11, pipeline_id: 666>, #<Packages::BuildInfo id: 8, package..., package_id: 10, pipeline_id: 661>, #<Packages::BuildInfo id: 2, package_id: 10, pipeline_id: 660>]5554Ci::ResourceGroups::AssignResourceFromResourceGroupService5555 #execute5556 when there is an available resource5557 requests resource5558 when failed to request resource5559 has a build waiting for resource5560 when the build has already retained a resource5561 has a pending build5562 when process mode is oldest_first5563 requests resource5564 when the other job exists in the newer pipeline5565 requests resource for the job in the oldest pipeline5566 when build is not `waiting_for_resource` state5567 attempts to request a resource5568 does not change the job status5569 when process mode is newest_first5570 requests resource5571 when the other job exists in the newer pipeline5572 requests resource for the job in the newest pipeline5573 when build is not `waiting_for_resource` state5574 attempts to request a resource5575 does not change the job status5576 when there are no available resources5577 does not request resource5578 when there is a stale build assigned to a resource5579 releases the resource from the stale build and assignes to the waiting build5580PerformanceMonitoring::PrometheusDashboard5581 .from_json5582 creates a PrometheusDashboard object5583 validations5584 dashboard content is missing5585 behaves like validation failed5586 raises error with corresponding messages5587 dashboard content is NOT a hash5588 behaves like validation failed5589 raises error with corresponding messages5590 content is an array5591 behaves like validation failed5592 raises error with corresponding messages5593 dashboard definition is missing panels_groups and dashboard keys5594 behaves like validation failed5595 raises error with corresponding messages5596 group definition is missing panels and group keys5597 behaves like validation failed5598 raises error with corresponding messages5599 panel definition is missing metrics and title keys5600 behaves like validation failed5601 raises error with corresponding messages5602 metrics definition is missing unit, query and query_range keys5603 behaves like validation failed5604 raises error with corresponding messages5605 multiple offences on different levels5606 behaves like validation failed5607 raises error with corresponding messages5608 .find_for5609 dashboard has been found5610 uses dashboard finder to find and load dashboard data and returns dashboard instance5611 dashboard has NOT been found5612 returns nil5613 dashboard has invalid schema5614 still returns dashboard object5615 #schema_validation_warnings5616 metrics_dashboard_exhaustive_validations is on5617 when schema is valid5618 returns empty array5619 when schema is invalid5620 returns array with errors messages5621 when YAML has wrong syntax5622 returns array with errors messages5623 metrics_dashboard_exhaustive_validations is off5624 when schema is valid5625 returns empty array5626 when schema is invalid5627DEPRECATION WARNING: Enumerating ActiveModel::Errors as a hash has been deprecated.5628In Rails 6.1, `errors` is an array of Error objects,5629therefore it should be accessed by a block with a single block5630parameter like this:5631person.errors.each do |error|5632 attribute = error.attribute5633 message = error.message5634end5635You are passing a block expecting two parameters,5636so the old hash behavior is simulated. As this is deprecated,5637this will result in an ArgumentError in Rails 7.0.5638 (called from map at /builds/gitlab-org/gitlab/app/models/performance_monitoring/prometheus_dashboard.rb:63)5639 returns array with errors messages5640 when YAML has wrong syntax5641 returns array with errors messages5642 #to_yaml5643 is expected to eq "---\npanel_groups:\n- panels:\n - metrics:\n - id: metric_of_ages\n unit: count\n labe... y_label: Y-Axis\n weight: \n group: Group Title\n priority: \ndashboard: Dashboard Title\n"5644Mutations::Releases::Create5645 #resolve5646 when the current user has access to create releases5647 returns no errors5648 creates the release with the correct tag5649 creates the release with the correct name5650 creates the release with the correct description5651 creates the release with the correct released_at5652 creates the release with the correct created_at5653 creates the release with the correct milestone associations5654 asset links5655 creates a single asset link5656 creates the link with the correct name5657 creates the link with the correct url5658 creates the link with the correct link type5659 creates the link with the correct direct filepath5660 with protected tag5661 when user has access to the protected tag5662 does not have errors5663 when user does not have access to the protected tag5664 has an access error5665 when the current user doesn't have access to create releases5666 raises an error5667Gitlab::GithubImport::Representation::DiffNote5668 .from_api_response5669 behaves like a DiffNote representation5670 returns an instance of DiffNote5671 the returned DiffNote5672 includes the number of the merge request5673 includes the file path of the diff5674 includes the commit ID5675 includes the created timestamp5676 includes the updated timestamp5677 includes the GitHub ID5678 returns the noteable type5679 #diff_hash5680 returns a Hash containing the diff details5681 #diff_position5682 when the diff is an addition5683 returns a Gitlab::Diff::Position5684 when the diff is an deletion5685 returns a Gitlab::Diff::Position5686 #discussion_id5687 when the note is a reply to a discussion5688 uses the cached value as the discussion_id only when responding an existing discussion5689 when cached value does not exist5690 falls back to generating a new discussion_id5691 #github_identifiers5692 returns a hash with needed identifiers5693 #line_code5694 generates the proper line code5695 #note and #contains_suggestion?5696 includes the note body5697 when the note have a suggestion5698 returns the suggestion formatted in the note5699 when the note have a multiline suggestion5700 returns the multi-line suggestion formatted in the note5701 #author5702 includes the user details5703 when the author is empty5704 does not set the user if the response did not include a user5705 .from_json_hash5706 behaves like a DiffNote representation5707 returns an instance of DiffNote5708 the returned DiffNote5709 includes the number of the merge request5710 includes the file path of the diff5711 includes the commit ID5712 includes the created timestamp5713 includes the updated timestamp5714 includes the GitHub ID5715 returns the noteable type5716 #diff_hash5717 returns a Hash containing the diff details5718 #diff_position5719 when the diff is an addition5720 returns a Gitlab::Diff::Position5721 when the diff is an deletion5722 returns a Gitlab::Diff::Position5723 #discussion_id5724 when the note is a reply to a discussion5725 uses the cached value as the discussion_id only when responding an existing discussion5726 when cached value does not exist5727 falls back to generating a new discussion_id5728 #github_identifiers5729 returns a hash with needed identifiers5730 #line_code5731 generates the proper line code5732 #note and #contains_suggestion?5733 includes the note body5734 when the note have a suggestion5735 returns the suggestion formatted in the note5736 when the note have a multiline suggestion5737 returns the multi-line suggestion formatted in the note5738 #author5739 includes the user details5740 when the author is empty5741 does not set the user if the response did not include a user5742Gitlab::QuickActions::Extractor5743 #extract_commands5744 extracts command with multiple arguments and various prefixes5745 extracts command case insensitive5746 does not extract noop commands5747 extracts and performs substitution commands5748 extracts and performs substitution commands5749 extracts and performs multiple substitution commands5750 does not extract substitution command in inline code5751 extracts and performs substitution commands case insensitive5752 extracts and performs substitution commands with comments5753 extracts multiple commands5754 does not alter original content if no command is found5755 does not get confused if command comes before an inline code5756 does not get confused if command comes before a blockcode5757 does not extract commands inside a blockcode5758 does not extract commands inside a blockquote5759 does not extract commands inside a HTML tag5760 does not extract commands in multiline inline code on seperated rows5761 does not extract commands in multiline inline code starting from text5762 does not extract commands in inline code5763 limits to passed commands when they are passed5764 fails fast for strings with many newlines5765 command with no argument5766 at the start of content5767 behaves like command with no argument5768 extracts command5769 in the middle of content5770 behaves like command with no argument5771 extracts command5772 in the middle of a line5773 does not extract command5774 at the end of content5775 behaves like command with no argument5776 extracts command5777 command with a single argument5778 at the start of content5779 allows slash in command arguments5780 behaves like command with a single argument5781 extracts command5782 in the middle of content5783 behaves like command with a single argument5784 extracts command5785 in the middle of a line5786 does not extract command5787 at the end of content5788 behaves like command with a single argument5789 extracts command5790 when argument is not separated with a space5791 does not extract command5792 command with multiple arguments5793 at the start of content5794 behaves like command with multiple arguments5795 extracts command5796 in the middle of content5797 behaves like command with multiple arguments5798 extracts command5799 in the middle of a line5800 does not extract command5801 at the end of content5802 behaves like command with multiple arguments5803 extracts command5804 when argument is not separated with a space5805 does not extract command5806 #redact_commands5807 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"5808 encloses quick actions with code span markdown5809 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"5810 encloses quick actions with code span markdown5811 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"5812 encloses quick actions with code span markdown5813 text: "/reopen\nworld", expected: "`/reopen`\nworld"5814 encloses quick actions with code span markdown5815 text: "hello\n/open", expected: "hello\n`/open`"5816 encloses quick actions with code span markdown5817UserRecentEventsFinder5818 #execute5819 does not include the events if the user cannot read cross project5820 when profile is public5821 returns all the events5822 when profile is private5823 returns no event5824 events from multiple users5825 includes events from all users5826 does not include events from users with private profile5827 selected events5828 event_filter: #<EventFilter:0x00007fc7d497ca18 @filter="push">, ordered_expected_events: lazy { [push_event1, push_event2] }5829 only returns selected events from all users (id DESC)5830 event_filter: #<EventFilter:0x00007fc7d497c720 @filter="merged">, ordered_expected_events: lazy { [merge_event1, merge_event2] }5831 only returns selected events from all users (id DESC)5832 event_filter: #<EventFilter:0x00007fc7d497c540 @filter="comments">, ordered_expected_events: lazy { [comment_event1, comment_event2, comment_event3] }5833 only returns selected events from all users (id DESC)5834 event_filter: #<EventFilter:0x00007fc7d497c360 @filter="team">, ordered_expected_events: lazy { [private_event, internal_event, public_event, private_event_second_user, internal_event_second_user, public_event_second_user] }5835 only returns selected events from all users (id DESC)5836 event_filter: #<EventFilter:0x00007fc7d497c180 @filter="issue">, ordered_expected_events: lazy { [issue_event1, issue_event2, issue_event3] }5837 only returns selected events from all users (id DESC)5838 event_filter: #<EventFilter:0x00007fc7eb217f40 @filter="wiki">, ordered_expected_events: lazy { [wiki_event1, wiki_event2] }5839 only returns selected events from all users (id DESC)5840 event_filter: #<EventFilter:0x00007fc7eb217cc0 @filter="designs">, ordered_expected_events: lazy { [design_event1, design_event2] }5841 only returns selected events from all users (id DESC)5842 with pagination params5843 limit: nil, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user, private_event_second_user, public_event, internal_event, private_event] }5844 returns paginated events sorted by id (DESC)5845 limit: 2, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user] }5846 returns paginated events sorted by id (DESC)5847 limit: nil, offset: 4, ordered_expected_events: lazy { [internal_event, private_event] }5848 returns paginated events sorted by id (DESC)5849 limit: 2, offset: 2, ordered_expected_events: lazy { [private_event_second_user, public_event] }5850 returns paginated events sorted by id (DESC)5851 filter activity events5852 includes all events5853 only includes push events5854 only includes merge events5855 only includes issue events5856 only includes comments events5857 only includes wiki events5858 only includes design events5859 only includes team events5860 when unknown filter is given5861 includes returns all events5862 issue activity events5863 includes all issue related events5864 limits5865 when limit is not set5866 returns events limited to DEFAULT_LIMIT5867 when limit is set5868 returns events limited to specified limit5869 when limit is set to a number that exceeds maximum limit5870 returns events limited to MAX_LIMIT5871Gitlab::EncodingHelper5872 #encode!5873 nil5874 empty string5875 invalid utf-8 encoded string5876 frozen non-ascii string5877 leaves ascii only string as is5878 leaves valid utf8 string as is5879 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.5880 string with detected encoding that is not supported in Ruby5881 leaves binary string as is5882 with corrupted diff5883 does not corrupt data but remove invalid characters5884 #encode_utf8_no_detect5885 input: "abcd", expected: "abcd"5886 drops invalid UTF-85887 input: "DzDzDz", expected: "DzDzDz"5888 drops invalid UTF-85889 input: "Dz\xC7DzDzDz", expected: "Dz�DzDzDz"5890 drops invalid UTF-85891 input: "🐤🐤🐤🐤\xF0\x9F\x90", expected: "🐤🐤🐤🐤�"5892 drops invalid UTF-85893 #encode_utf85894 nil5895 empty string5896 invalid utf-8 encoded string5897 encodes valid utf8 encoded string to utf85898 encodes valid ASCII-8BIT encoded string to utf85899 encodes valid ISO-8859-1 encoded string to utf85900 Equifax branch name5901 returns empty string on conversion errors5902 replaces invalid and undefined chars with the replace argument5903 with strings that can be forcefully encoded into utf85904 doesn't use CharlockHolmes if the encoding can be forced into utf_85905 #clean5906 leaves ascii only string as is5907 leaves valid utf8 string as is5908 removes invalid bytes from ASCII-8bit encoded multibyte string.5909 handles UTF-16BE encoded strings5910 encode_binary5911 encodes nil to ""5912 encodes "" to ""5913 encodes " " to " "5914 encodes "a1" to "a1"5915 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"5916 #binary_io5917 does not mutate the original string encoding5918 returns a copy of the IO with the correct encoding5919 #detect_encoding5920 detects encoding5921 is expected to be a kind of Hash5922 correctly detects the binary5923 data is nil5924 is expected to be nil5925 limit is provided5926 correctly detects the binary5927 #unquote_path5928 is expected to eq "\a\b\e\f\n\r\t\v\""5929Gitlab::Redis::Cache5930 .config_file_name5931 when there is no config file anywhere5932 is expected to be nil5933 but resque.yml exists5934 is expected to eq "/tmp/redis_shared_examples20220824-469-7077bf/config/resque.yml"5935 returns a path that exists5936 and there is a global env override5937 is expected to eq "global override"5938 and there is an instance specific config file5939 is expected to eq "/tmp/redis_shared_examples20220824-469-pj78vi/config/redis.cache.yml"5940 returns a path that exists5941 and there is a specific env override5942 is expected to eq "instance specific override"5943 .store5944 with old format5945 behaves like redis store5946 instantiates Redis::Store5947 with the namespace5948 uses specified namespace5949 with new format5950 behaves like redis store5951 instantiates Redis::Store5952 with the namespace5953 uses specified namespace5954 .params5955 withstands mutation5956 when url contains unix socket reference5957 with old format5958 returns path key instead5959 with new format5960 returns path key instead5961 when url is host based5962 with old format5963 returns hash with host, port, db, and password5964 with new format5965 rails_env: "development", host: "development-host"5966 returns hash with host, port, db, and password5967 rails_env: "test", host: "test-host"5968 returns hash with host, port, db, and password5969 rails_env: "production", host: "production-host"5970 returns hash with host, port, db, and password5971 .url5972 withstands mutation5973 when yml file with env variable5974 reads redis url from env variable5975 .version5976 returns a version5977 ._raw_config5978 is frozen5979 returns false when the file does not exist5980 returns false when the filename can't be determined5981 .with5982 when running on single-threaded runtime5983 instantiates a connection pool with size 55984 when running on multi-threaded runtime5985 instantiates a connection pool with a size based on the concurrency of the worker5986 when there is no config at all5987 can run an empty block5988 #db5989 with old format5990 returns the correct db5991 with new format5992 returns the correct db5993 #sentinels5994 when sentinels are defined5995 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5996 returns an array of hashes with host and port keys5997 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5998 returns an array of hashes with host and port keys5999 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6000 returns an array of hashes with host and port keys6001 when sentinels are not defined6002 returns nil6003 #sentinels?6004 when sentinels are defined6005 returns true6006 when sentinels are not defined6007 returns false6008 #raw_config_hash6009 returns old-style single url config in a hash6010 #fetch_config6011 returns false when no config file is present6012 returns false when config file is present but has invalid YAML6013 has a value for the legacy default URL6014 #raw_config_hash6015 has a legacy default URL6016 .active_support_config6017 has a default ttl of 2 weeks6018 allows configuring the TTL through an env variable6019Autocomplete::MoveToProjectFinder6020 #execute6021 filter6022 does not return projects under Gitlab::Access::REPORTER6023 returns projects equal or above Gitlab::Access::REPORTER6024 does not include the source project6025 does not return archived projects6026 does not return projects for which issues are disabled6027 returns a page of projects ordered by star count6028 search6029 returns projects matching a search query6030 allows searching by parent namespace6031AwardEmojiPolicy6032 when the awardable is an issue6034 is expected to be allowed :read_emoji6036 is expected not to be allowed :read_emoji6037 when the awardable is a merge request6039 is expected to be allowed :read_emoji6041 is expected not to be allowed :read_emoji6042 when the awardable is a note6044 is expected to be allowed :read_emoji6046 is expected not to be allowed :read_emoji6047 when the awardable is a snippet6049 is expected to be allowed :read_emoji6051 is expected not to be allowed :read_emoji6052Gitlab::Logger6053 .build6054 builds logger using Gitlab::Logger.log_level6055 raises ArgumentError if invalid log level6056 env_value: 0, resulting_level: 06057 builds logger if valid log level6058 env_value: :debug, resulting_level: 06059 builds logger if valid log level6060 env_value: "debug", resulting_level: 06061 builds logger if valid log level6062 env_value: "DEBUG", resulting_level: 06063 builds logger if valid log level6064 env_value: "DeBuG", resulting_level: 06065 builds logger if valid log level6066 env_value: 1, resulting_level: 16067 builds logger if valid log level6068 env_value: :info, resulting_level: 16069 builds logger if valid log level6070 env_value: "info", resulting_level: 16071 builds logger if valid log level6072 env_value: "INFO", resulting_level: 16073 builds logger if valid log level6074 env_value: "InFo", resulting_level: 16075 builds logger if valid log level6076 env_value: 2, resulting_level: 26077 builds logger if valid log level6078 env_value: :warn, resulting_level: 26079 builds logger if valid log level6080 env_value: "warn", resulting_level: 26081 builds logger if valid log level6082 env_value: "WARN", resulting_level: 26083 builds logger if valid log level6084 env_value: "WaRn", resulting_level: 26085 builds logger if valid log level6086 env_value: 3, resulting_level: 36087 builds logger if valid log level6088 env_value: :error, resulting_level: 36089 builds logger if valid log level6090 env_value: "error", resulting_level: 36091 builds logger if valid log level6092 env_value: "ERROR", resulting_level: 36093 builds logger if valid log level6094 env_value: "ErRoR", resulting_level: 36095 builds logger if valid log level6096 env_value: 4, resulting_level: 46097 builds logger if valid log level6098 env_value: :fatal, resulting_level: 46099 builds logger if valid log level6100 env_value: "fatal", resulting_level: 46101 builds logger if valid log level6102 env_value: "FATAL", resulting_level: 46103 builds logger if valid log level6104 env_value: "FaTaL", resulting_level: 46105 builds logger if valid log level6106 env_value: 5, resulting_level: 56107 builds logger if valid log level6108 env_value: :unknown, resulting_level: 56109 builds logger if valid log level6110 env_value: "unknown", resulting_level: 56111 builds logger if valid log level6112 env_value: "UNKNOWN", resulting_level: 56113 builds logger if valid log level6114 env_value: "UnKnOwN", resulting_level: 56115 builds logger if valid log level6116 .log_level6117 if GITLAB_LOG_LEVEL is set6118 returns value of GITLAB_LOG_LEVEL6119 ignores fallback6120 if GITLAB_LOG_LEVEL is not set6121 returns default fallback DEBUG6122 returns passed fallback6123MergeRequest::Metrics6124 associations6125 is expected to belong to merge_request required: false6126 is expected to belong to target_project class_name => Project required: false6127 is expected to belong to latest_closed_by class_name => User required: false6128 is expected to belong to merged_by class_name => User required: false6129 scopes6130 .merged_after6131 finds the record6132 doesn't include record outside of the filter6133 .merged_before6134 finds the record6135 doesn't include record outside of the filter6136 .by_target_project6137 finds metrics record with the associated target project6138 behaves like cleanup by a loose foreign key6139 cleans up (delete or nullify) the model6140 update6141 when pipeline_id is nullified6142 nullifies build related columns via DB trigger6143 when updated but pipeline_id is not nullified6144 does not nullify build related columns6145ProtectedTag6146 Associations6147 is expected to belong to project required: false6148 Validation6149 is expected to validate that :project cannot be empty/falsy6150 is expected to validate that :name cannot be empty/falsy6151 #protected?6152 returns true when the tag matches a protected tag via direct match6153 returns true when the tag matches a protected tag via wildcard match6154 returns false when the tag does not match a protected tag via direct match6155 returns false when the tag does not match a protected tag via wildcard match6156 returns false when tag name is nil6157 with caching6158 correctly invalidates a cache6159 correctly uses the cached version6160Projects::OpenIssuesCountService6161 behaves like a counter caching service6162 #count6163 caches the count6164 #refresh_cache6165 refreshes the cache6166 #delete_cache6167 removes the cache6168 #uncached_count6169 does not cache the count6170 #count6171 when user is nil6172 does not include confidential issues in the issue count6173 when user is provided6174 when user can read confidential issues6175 returns the right count with confidential issues6176 uses total_open_issues_count cache key6177 when user cannot read confidential issues6178 does not include confidential issues6179 uses public_open_issues_count cache key6180 #refresh_cache6181 when cache is empty6182 refreshes cache keys correctly6183 when cache is outdated6184 refreshes cache keys correctly6185Gitlab::Ci::Pipeline::Chain::Seed6186 #perform!6187 allocates next IID6188 ensures ci_ref6189 sets the seeds in the command object6190 when no ref policy is specified6191 correctly fabricates stages and builds6192 when refs policy is specified6193 returns pipeline seed with jobs only assigned to master6194 when source policy is specified6195 returns pipeline seed with jobs only assigned to schedules6196 when kubernetes policy is specified6197 when kubernetes is active6198 when user configured kubernetes from CI/CD > Clusters6199 returns seeds for kubernetes dependent job6200 when kubernetes is not active6201 does not return seeds for kubernetes dependent job6202 when variables policy is specified6203 returns stage seeds only when variables expression is truthy6204 when there is seeds_block6205 does not execute the block6206 #root_variables6207 sends root variable with overridden by rules6208 #rule_variables6209 correctly parses rule variables6210 N+1 queries6211 avoids N+1 queries when calculating variables of jobs6212Todos::Destroy::ConfidentialIssueService6213 #execute6214 when issue_id parameter is present6215 when provided issue is confidential6216 removes issue todos for users who can not access the confidential issue6217 when provided issue is not confidential6218 does not remove any todos6219 when project_id parameter is present6220 removes issues todos for users that cannot access confidential issues6221Gitlab::Email::Receiver6222 requires all handlers to have a unique metric_event6223 requires all handlers to respond to #project6224 when the email contains a valid email address in a header6225 when in a Delivered-To header6226 behaves like successful receive6227 correctly finds the mail key6228 adds metric event6229 returns valid metadata6230 when in an Envelope-To header6231 behaves like successful receive6232 correctly finds the mail key6233 adds metric event6234 returns valid metadata6235 when in an X-Envelope-To header6236 behaves like successful receive6237 correctly finds the mail key6238 adds metric event6239 returns valid metadata6240 when enclosed with angle brackets in an Envelope-To header6241 behaves like successful receive6242 correctly finds the mail key6243 adds metric event6244 returns valid metadata6245 when all other headers are missing6246 it uses receive headers to find the key6247 behaves like successful receive6248 correctly finds the mail key6249 adds metric event6250 returns valid metadata6251 when we cannot find a capable handler6252 behaves like failed receive6253 adds metric event6254 when the email is blank6255 behaves like failed receive6256 adds metric event6257 when the email was auto generated with Auto-Submitted header6258 behaves like failed receive6259 adds metric event6260 when the email's To field is blank6261 behaves like successful receive6262 correctly finds the mail key6263 adds metric event6264 returns valid metadata6265 when the email's From field is blank6266 behaves like successful receive6267 correctly finds the mail key6268 adds metric event6269 returns valid metadata6270 when the email was auto generated with X-Autoreply header6271 behaves like failed receive6272 adds metric event6273WikiPages::DestroyService6274 behaves like WikiPages::DestroyService#execute6275 executes webhooks6276DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)6277 increments the delete count6278DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)6279 creates a new wiki page deletion event6280 when the deletion fails6281 returns an error response6282 does not increment the delete count if the deletion failed6283Issues::ReorderService6284 #execute6285 when ordering issues in a project6286 behaves like issues reorder service6287 when reordering issues6288 returns false with no params6289 returns false with both invalid params6290 sorts issues6291 sorts issues if only given one neighbour, on the left6292 sorts issues if only given one neighbour, on the right6293 when ordering issues in a group6294 behaves like issues reorder service6295 when reordering issues6296 returns false with no params6297 returns false with both invalid params6298 sorts issues6299 sorts issues if only given one neighbour, on the left6300 sorts issues if only given one neighbour, on the right6301 when ordering in a group issue list6302 sorts issues6303Gitlab::Regex6304 .debian_architecture_regex6305 is expected to match "amd64"6306 is expected to match "kfreebsd-i386"6307 is expected not to match ""6308 is expected not to match "-a"6309 is expected not to match "+a"6310 is expected not to match ".a"6311 is expected not to match "_a"6312 is expected not to match "a+b"6313 is expected not to match "a.b"6314 is expected not to match "a_b"6315 is expected not to match "a~"6316 is expected not to match "aé"6317 is expected not to match "AMD64"6318 is expected not to match "Amd64"6319 is expected not to match "aMD64"6320 .npm_package_name_regex6321 is expected to match "@scope/package"6322 is expected to match "unscoped-package"6323 is expected not to match "@first-scope@second-scope/package"6324 is expected not to match "scope-without-at-symbol/package"6325 is expected not to match "@not-a-scoped-package"6326 is expected not to match "@scope/sub/package"6327 is expected not to match "@scope/../../package"6328 is expected not to match "@scope%2e%2e%2fpackage"6329 is expected not to match "@%2e%2e%2f/package"6330 capturing group6331 extracts the scope name for @scope/package6332 extracts the scope name for unscoped-package6333 extracts the scope name for @not-a-scoped-package6334 extracts the scope name for @scope/sub/package6335 extracts the scope name for @inv@lid-scope/package6336 .debian_distribution_regex6337 is expected to match "buster"6338 is expected to match "buster-updates"6339 is expected to match "Debian10.5"6340 is expected not to match "jessie/updates"6341 is expected not to match "hé"6342 .debian_component_regex6343 is expected to match "main"6344 is expected to match "non-free"6345 is expected not to match "non/free"6346 is expected not to match "hé"6347Mutations::IncidentManagement::TimelineEvent::Update6348 #resolve6349 when user has permissions to update the timeline event6350 when timeline event exists6351 updates the timeline event6352 returns updated timeline event6353 when there is a validation error6354 when note is blank6355 does not update the timeline event6356 responds with error6357 when occurred_at is blank6358 does not update the timeline event6359 responds with error6360 when occurred_at is invalid6361 does not update the timeline event6362 responds with error6363 when timeline event cannot be found6364 behaves like failed update with a top-level access error6365 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6366 when user does not have permissions to update the timeline event6367 behaves like failed update with a top-level access error6368 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6369Gitlab::Middleware::SameSiteCookies6370 #call6371 without SSL enabled6372 with cookie6373 does not add headers to cookies6374 with SSL enabled6375 with no cookies6376 does not add headers6377 with different browsers6378 description: "iOS 12", user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1", expected: false6379 returns expected SameSite status6380 description: "macOS 10.14 + Safari", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15", expected: false6381 returns expected SameSite status6382 description: "macOS 10.14 + Opera", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.55", expected: false6383 returns expected SameSite status6384 description: "macOS 10.14 + Chrome v80", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36", expected: true6385 returns expected SameSite status6386 description: "Chrome v41", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", expected: true6387 returns expected SameSite status6388 description: "Chrome v50", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2348.1 Safari/537.36", expected: true6389 returns expected SameSite status6390 description: "Chrome v51", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2718.15 Safari/537.36", expected: false6391 returns expected SameSite status6392 description: "Chrome v62", user_agent: "Mozilla/5.0 (Macintosh; Intel NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36", expected: false6393 returns expected SameSite status6394 description: "Chrome v66", user_agent: "Mozilla/5.0 (Linux; Android 4.4.2; Avvio_793 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36", expected: false6395 returns expected SameSite status6396 description: "Chrome v67", user_agent: "Mozilla/5.0 (Linux; Android 7.1.1; SM-J510F Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3371.0 Mobile Safari/537.36", expected: true6397 returns expected SameSite status6398 description: "Chrome v85", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", expected: true6399 returns expected SameSite status6400 description: "Chromium v66", user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 HeadlessChrome/66.0.3359.181 Safari/537.36", expected: false6401 returns expected SameSite status6402 description: "Chromium v85", user_agent: "Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/85.0.4183.59 Chrome/85.0.4183.59 Safari/537.36", expected: true6403 returns expected SameSite status6404 description: "UC Browser 12.0.4", user_agent: "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-CN; A31 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.0.4.986 Mobile Safari/537.36", expected: false6405 returns expected SameSite status6406 description: "UC Browser 12.13.0", user_agent: "Mozilla/5.0 (Linux; U; Android 7.1.1; en-US; SM-C9000 Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.0.1207 Mobile Safari/537.36", expected: false6407 returns expected SameSite status6408 description: "UC Browser 12.13.2", user_agent: "Mozilla/5.0 (Linux; U; Android 9; en-US; Redmi Note 7 Build/PQ3B.190801.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.2.1208 Mobile Safari/537.36", expected: true6409 returns expected SameSite status6410 description: "UC Browser 12.13.5", user_agent: "Mozilla/5.0 (Linux; U; Android 5.1.1; en-US; PHICOMM C630 (CLUE L) Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.5.1209 Mobile Safari/537.36", expected: true6411 returns expected SameSite status6412 description: "Playstation", user_agent: "Mozilla/5.0 (PlayStation 4 2.51) AppleWebKit/537.73 (KHTML, like Gecko)", expected: true6413 returns expected SameSite status6414 with single cookie6415 adds required headers6416 multiple cookies6417 adds required headers6418 multiple cookies with some missing headers6419 adds missing headers6420 multiple cookies with all headers present6421 does not add new headers6422Gitlab::Ci::Trace::Archive6423 with transactional fixtures6424 #execute6425 computes and assigns checksum6426 validating artifact checksum6427 when the object store is disabled6428 behaves like skips validations6429 behaves like valid6430 does not count as invalid6431 behaves like local checksum only6432 generates only local checksum6433 with FIPS enabled6434 does not generate md5 checksums6435 behaves like valid6436 does not count as invalid6437 with background_upload enabled6438 behaves like skips validations6439 behaves like valid6440 does not count as invalid6441 behaves like local checksum only6442 generates only local checksum6443 with FIPS enabled6444 does not generate md5 checksums6445 behaves like valid6446 does not count as invalid6447 with direct_upload enabled6448 checksums match6449 behaves like valid6450 does not count as invalid6451 when the checksum does not match6452 counts as invalid6453 with FIPS enabled6454 does not generate md5 checksums6455 behaves like valid6456 does not count as invalid6457 with FIPS enabled6458 does not generate md5 checksums6459 behaves like valid6460 does not count as invalid6461 without transactional fixtures6462 #execute!6463 does not upload the trace inside a database transaction6464PrometheusAlertEvent6465 associations6466 is expected to belong to prometheus_alert required: true6467 validations6468 is expected to be valid6469 is expected to validate that :prometheus_alert cannot be empty/falsy, producing a custom validation error on failure6470 is expected to validate that :payload_key is case-sensitively unique within the scope of :prometheus_alert_id6471 is expected to validate that :started_at cannot be empty/falsy6472 payload_key & ended_at6473 absent if firing?6474 is expected to validate that :payload_key cannot be empty/falsy6475 is expected not to validate that :ended_at cannot be empty/falsy6476 present if resolved?6477 is expected not to validate that :payload_key cannot be empty/falsy6478 is expected to validate that :ended_at cannot be empty/falsy6479 #title6480 delegates to alert6481 prometheus_metric_id6482 delegates to alert6483 transaction6484 fire6485 when status is none6486 fires an event6487 when firing6488 cannot fire again6489 resolve6490 when firing6491 resolves an event6492 when resolved6493 cannot resolve again6494Gitlab::Ci::Reports::CodequalityReportsComparer6495 #status6496 when head report has an error6497 returns status failed6498 when head report does not have errors6499 returns status success6500 when head report does not exist6501 returns status not found6502 when base report does not exist6503 returns status success6504 #errors_count6505 when head report has an error6506 returns the number of new errors6507 when head report does not have an error6508 returns zero6509 #resolved_count6510 when base report has an error and head has a different error6511 counts the base report error as resolved6512 when base report has errors head has no errors6513 counts the base report errors as resolved6514 when base report has errors and head has the same error6515 returns zero6516 when base report does not have errors and head has errors6517 returns zero6518 when base report is nil6519 returns zero6520 #total_count6521 when base report has an error6522 returns zero6523 when head report has an error6524 includes the head report error in the count6525 when base report has errors and head report has errors6526 includes errors in the count6527 when base report has errors and head report has the same error6528 includes errors in the count6529 when base report is nil6530 returns zero6531 #existing_errors6532 when base report has errors and head has the same error6533 includes the base report errors sorted by severity6534 when base report has errors and head has a different error6535 returns an empty array6536 when base report does not have errors and head has errors6537 returns an empty array6538 when base report is nil6539 returns an empty array6540 #new_errors6541 when base report has errors and head has more errors6542 includes errors not found in the base report sorted by severity6543 when base report has an error and head has no errors6544 returns an empty array6545 when base report does not have errors and head has errors6546 returns the head report error6547 when base report is nil6548 returns an empty array6549 #resolved_errors6550 when base report errors are still found in the head report6551 returns an empty array6552 when base report has errors and head has a different error6553 returns the base report errors not found in the head report, sorted by severity6554 when base report does not have errors and head has errors6555 returns an empty array6556 when base report is nil6557 returns an empty array6558MergeRequestReviewer6559 behaves like having unique enum values6560 has unique values in "state"6561 associations6562 is expected to belong to merge_request class_name => MergeRequest required: false6563 is expected to belong to reviewer class_name => User required: false inverse_of => merge_request_reviewers6564 #attention_requested_by6565 attention requested6566 is expected to eq #<User id:1940 @user472>6567 attention requested6568 is expected to eq nil6569Gitlab::SlashCommands::Run6570 .match6571 returns true for a run command6572 returns true for a run command with arguments6573 returns true for a command containing newlines6574 returns false for an unrelated command6575 .available?6576 returns true when builds are enabled for the project6577 returns false when builds are disabled for the project6578 returns false when chatops is not available6579 .allowed?6580 returns true when the user can create a pipeline6581 returns false when the user can not create a pipeline6582 #execute6583 when a pipeline could not be scheduled6584 returns an error6585 when a pipeline could be created but the chat service was not supported6586 returns an error6587 using a valid pipeline6588 schedules the pipeline6589projects/commits/_commit.html.haml6590 with different committer6591 renders committed by user6592 with a signed commit6593 does not display a loading spinner for GPG status6594 with ci status6595 when pipelines are disabled6596 does not display a ci status icon6597 when pipelines are enabled6598 does display a ci status icon when pipelines are enabled6599DesignManagement::Action6600 relations6601 is expected to belong to design required: false6602 is expected to belong to version required: false6603 scopes6604 with 3 designs6605 .most_recent6606 finds the correct version for each design6607 .by_design6608 returns the actions by design_id6609 .with_version6610 preloads the version6611 .by_event6612 returns the actions by event type6613 .up_to_version6614 the version is nil6615 returns all design_versions6616 when given a Version instance6617 the version is the most current6618 is expected to have attributes {:size => 6}6619 the version is the oldest6620 is expected to have attributes {:size => 2}6621 the version is the middle one6622 is expected to have attributes {:size => 4}6623 when given a commit SHA6624 the version is the most current6625 is expected to have attributes {:size => 6}6626 the version is the oldest6627 is expected to have attributes {:size => 2}6628 the version is the middle one6629 is expected to have attributes {:size => 4}6630 when given a String that is not a commit SHA6631 is expected to raise ArgumentError6632Gitlab::Ci::Pipeline::Expression::Lexeme::And6633 .build6634 creates a new instance of the token6635 with non-evaluable operands6636 raises an operator error6637 .type6638 is an operator6639 .precedence6640 has a precedence6641 #evaluate6642 when left and right are truthy6643 left_value: true, right_value: 16644 is expected to be truthy6645 is expected to eq 16646 left_value: true, right_value: "a"6647 is expected to be truthy6648 is expected to eq "a"6649 left_value: 1, right_value: true6650 is expected to be truthy6651 is expected to eq true6652 left_value: 1, right_value: "a"6653 is expected to be truthy6654 is expected to eq "a"6655 left_value: "a", right_value: true6656 is expected to be truthy6657 is expected to eq true6658 left_value: "a", right_value: 16659 is expected to be truthy6660 is expected to eq 16661 when left or right is falsey6662 left_value: true, right_value: false6663 is expected to be falsey6664 left_value: true, right_value: nil6665 is expected to be falsey6666 left_value: false, right_value: true6667 is expected to be falsey6668 left_value: false, right_value: nil6669 is expected to be falsey6670 left_value: nil, right_value: true6671 is expected to be falsey6672 left_value: nil, right_value: false6673 is expected to be falsey6674 when left and right are falsey6675 left_value: false, right_value: nil6676 is expected to be falsey6677 is expected to eq false6678 left_value: nil, right_value: false6679 is expected to be falsey6680 is expected to eq nil6681Gitlab::Ci::Build::Rules6682 .new6683 with no rules6684 sets @rule_list to an empty array6685 sets @default_when to "on_success"6686 with one rule6687 sets @rule_list to an array of a single rule6688 sets @default_when to "on_success"6689 with multiple rules6690 sets @rule_list to an array of a single rule6691 sets @default_when to "on_success"6692 with a specified default when:6693 sets @rule_list to an array of a single rule6694 sets @default_when to "manual"6695 #evaluate6696 with nil rules6697 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6698 and when:manual set as the default6699 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6700 with no rules6701 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6702 and when:manual set as the default6703 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6704 with one rule without any clauses6705 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=true, variables=nil, errors=nil>6706 with one matching rule6707 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6708 with two matching rules6709 returns the value of the first matched rule in the list6710 with a non-matching and matching rule6711 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6712 with a matching and non-matching rule6713 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="delayed", start_in="1 day", allow_failure=nil, variables=nil, errors=nil>6714 with non-matching rules6715 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6716 and when:manual set as the default6717 does not return the default when:6718 with only allow_failure6719 with matching rule6720 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=true, variables=nil, errors=nil>6721 with non-matching rule6722 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6723 with variables6724 with matching rule6725 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables={:MY_VAR=>"my var"}, errors=nil>6726 with a regexp variable matching rule6727 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil, errors=nil>6728 Gitlab::Ci::Build::Rules::Result6729 #build_attributes6730 compacts nil values6731 #pass?6732 'when' is 'never'6733 returns false6734 'when' is 'on_success'6735 returns true6736Packages::Policies::ProjectPolicy6737 deploy token access6738 when a deploy token with read_package_registry scope6739 is expected to be allowed :read_package6740 behaves like package access with repository disabled6741 is expected to be allowed :read_package6742 when a deploy token with write_package_registry scope6743 is expected to be allowed :read_package6744 behaves like package access with repository disabled6745 is expected to be allowed :read_package6746 read_package6747 with admin6748 is expected to be allowed :read_package6749 behaves like package access with repository disabled6750 is expected to be allowed :read_package6751 with owner6752 is expected to be allowed :read_package6753 with maintainer6754 is expected to be allowed :read_package6755 with developer6756 is expected to be allowed :read_package6757 with reporter6758 is expected to be allowed :read_package6759 with guest6760 is expected to be allowed :read_package6761 with non member6762 is expected to be allowed :read_package6763 with anonymous6764 is expected to be allowed :read_package6765Mutations::MergeRequests::SetSubscription6766 is expected to require graphql authorizations :update_subscription6767 when user does not have access to the project6768 behaves like a subscribeable not accessible graphql resource6769 raises an error if the resource is not accessible to the user6770 when user is developer member of the project6771 behaves like a subscribeable graphql resource6772 subscribes to the resource6773 when passing subscribe as false6774 unsubscribes from the discussion6775 when the project is public6776 behaves like a subscribeable graphql resource6777 subscribes to the resource6778 when passing subscribe as false6779 unsubscribes from the discussion6780Gitlab::Ci::Config::Entry::Image6781 when configuration is a string6782 #value6783 returns image hash6784 #errors6785 does not append errors6786 #valid?6787 is valid6788 #image6789 returns image's name6790 #entrypoint6791 returns image's entrypoint6792 #ports6793 returns image's ports6794 #pull_policy6795 returns nil6796 when configuration is a hash6797 #value6798 returns image hash6799 #errors6800 does not append errors6801 #valid?6802 is valid6803 #image6804 returns image's name6805 #entrypoint6806 returns image's entrypoint6807 when configuration has ports6808 when with_image_ports metadata is not enabled6809 #valid?6810 is not valid6811 when with_image_ports metadata is enabled6812 #valid?6813 is valid6814 #ports6815 returns image's ports6816 when configuration has pull_policy6817 #valid?6818 is valid6819 when the feature flag ci_docker_image_pull_policy is disabled6820 is not valid6821 #value6822 returns value6823 when the feature flag ci_docker_image_pull_policy is disabled6824 is not valid6825 when entry value is not correct6826 #errors6827 saves errors6828 #valid?6829 is not valid6830 when unexpected key is specified6831 #errors6832 saves errors6833 #valid?6834 is not valid6835Integrations::CustomIssueTracker6836 Validations6837 when integration is active6838 is expected to validate that :project_url cannot be empty/falsy6839 is expected to validate that :issues_url cannot be empty/falsy6840 is expected to validate that :new_issue_url cannot be empty/falsy6841 behaves like issue tracker integration URL attribute6842 is expected to allow :project_url to be ‹"https://example.com"›6843 is expected not to allow :project_url to be ‹"example.com"›6844 is expected not to allow :project_url to be ‹"ftp://example.com"›6845 is expected not to allow :project_url to be ‹"herp-and-derp"›6846 behaves like issue tracker integration URL attribute6847 is expected to allow :issues_url to be ‹"https://example.com"›6848 is expected not to allow :issues_url to be ‹"example.com"›6849 is expected not to allow :issues_url to be ‹"ftp://example.com"›6850 is expected not to allow :issues_url to be ‹"herp-and-derp"›6851 behaves like issue tracker integration URL attribute6852 is expected to allow :new_issue_url to be ‹"https://example.com"›6853 is expected not to allow :new_issue_url to be ‹"example.com"›6854 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›6855 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›6856 when integration is inactive6857 is expected not to validate that :project_url cannot be empty/falsy6858 is expected not to validate that :issues_url cannot be empty/falsy6859 is expected not to validate that :new_issue_url cannot be empty/falsy6860GroupChildSerializer6861 #represent6862 for groups6863 can render a single group6864 can render a collection of groups6865 with a hierarchy6866 expands the subgroups6867 can render a nested tree6868 without a specified parent6869 can render a tree6870 for projects6871 can render a single project6872 can render a collection of projects6873 with a hierarchy6874 can render a nested tree6875 returns an array when an array of a single instance was given6876Packages::Composer::CacheUploader6877 behaves like builds correct paths6878 #store_dir6879 behaves like matches the method pattern6880 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/composer_cache\/\d+$/6881 #cache_dir6882 behaves like matches the method pattern6883 is expected to match /\/packages\/tmp\/cache/6884 #work_dir6885 behaves like matches the method pattern6886 is expected to match /\/packages\/tmp\/work/6887 #upload_path6888 behaves like matches the method pattern6889 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6890 #relative_path6891 is relative (PENDING: Path not set, skipping.)6892 .absolute_path6893 behaves like matches the method pattern6894 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6895 .base_dir6896 behaves like matches the method pattern6897 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6898 path traversal exploits6899 throws an exception6900 object store is remote6901 behaves like builds correct paths6902 #store_dir6903 behaves like matches the method pattern6904 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/composer_cache\/\d+$/6905 #cache_dir6906 behaves like matches the method pattern6907 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6908 #work_dir6909 behaves like matches the method pattern6910 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6911 #upload_path6912 behaves like matches the method pattern6913 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6914 #relative_path6915 is relative (PENDING: Path not set, skipping.)6916 .absolute_path6917 behaves like matches the method pattern6918 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6919 .base_dir6920 behaves like matches the method pattern6921 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6922 path traversal exploits6923 throws an exception6924 remote file6925 with object storage enabled6926 can store file remotely6927Metrics::Dashboard::SelfMonitoringDashboardService6928 #raw_dashboard6929 behaves like #raw_dashboard raises error if dashboard loading fails6930 when yaml is too large6931 raises error6932 when yaml loader returns error6933 raises error6934 when yaml is not a hash6935 returns nil6936 #get_dashboard6937 behaves like valid dashboard service response6938 behaves like valid dashboard service response for schema6939 returns a json representation of the dashboard6940 behaves like raises error for users with insufficient permissions6941 when the user does not have sufficient access6942 behaves like misconfigured dashboard service response6943 returns an appropriate message and status code6944 when the user is anonymous6945 behaves like misconfigured dashboard service response6946 returns an appropriate message and status code6947 behaves like caches the unprocessed dashboard for subsequent calls6948 is expected to receive load_raw!(*(any args)) 1 time6949 behaves like refreshes cache when dashboard_version is changed6950 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/self_monitoring_default.yml>) 2 times6951 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric6952 prometheus6953 behaves like dashboard_version contains SHA256 hash of dashboard file content6954 is expected to eq "0f7ade2022e09f1a1da8e883cc95d84b9557e1e0e9b015c51eb964296aa73098"6955 .all_dashboard_paths6956 returns the dashboard attributes6957 .valid_params?6958 with environment6959 is expected to be truthy6960 with dashboard_path6961 is expected to be truthy6962 with a different dashboard selected6963 is expected to be falsey6964 missing environment and dashboard_path6965 is expected to be falsey6966Gitlab::Analytics::CycleAnalytics::StageEvents::CodeStageStart6967 needs connection with an issue via merge_requests_closing_issues table6968 behaves like value stream analytics event6969 is expected to be a kind of String6970 is expected to be a kind of Symbol6971 is expected to include ApplicationRecord(abstract)6972 is expected to respond to #timestamp_projection6973 is expected to respond to #html_description6974 is expected to be a kind of Array6975 #apply_query_customization6976 expects an ActiveRecord::Relation object as argument and returns a modified version of it6977 #hash_code6978 returns a hash that uniquely identifies an event6979 does not differ when the same object is built with the same params6980 behaves like LEFT JOIN-able value stream analytics event6981 can use the event as LEFT JOIN6982 when looking at the record with data6983 contains the timestamp expression6984 when looking at the record without data6985 returns nil for the timestamp expression6986Todos::Destroy::DesignService6987 #execute6988 when the design has been archived6989 removes todos for that design6990 when no design has been archived6991 does not remove any todos6992Ci::BuildsHelper6993 #build_summary6994 when build has no trace6995 when skip is false6996 returns no job log6997 when skip is true6998 returns no job log6999 when build has trace7000 when skip is true7001 returns link to logs7002 when skip is false7003 returns log lines7004 #sidebar_build_class7005 build_id: 1, current_build_id: 1, retried: true, expected_result: "active retried"7006 builds sidebar html class7007 build_id: 1, current_build_id: 1, retried: false, expected_result: "active"7008 builds sidebar html class7009 build_id: 1, current_build_id: 2, retried: false, expected_result: ""7010 builds sidebar html class7011 build_id: 1, current_build_id: 2, retried: true, expected_result: "retried"7012 builds sidebar html class7013 #javascript_build_options7014 returns build options7015 #build_failed_issue_options7016 returns failed title and description7017 #prepare_failed_jobs_summary_data7018 returns array of failed jobs with id, failure and failure summary70195-Minute-Production-App.gitlab-ci.yml7020 the created pipeline7021 creates only build job7022 when AWS variables are set7023 creates all jobs7024 pipeline branch is protected7025 does not create a destroy job (FAILED - 2)70271st Try error in ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:43:7028expected collection contained: ["build", "deploy", "terraform_apply"]7029actual collection contained: ["build", "deploy", "terraform_apply", "terraform_destroy"]7030the extra elements were: ["terraform_destroy"]7032RSpec::Retry: 2nd try ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:4370342nd Try error in ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:43:7035expected collection contained: ["build", "deploy", "terraform_apply"]7036actual collection contained: ["build", "deploy", "terraform_apply", "terraform_destroy"]7037the extra elements were: ["terraform_destroy"]7038 RSpec::Retry: 3rd try ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:4370403rd Try error in ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:43:7041expected collection contained: ["build", "deploy", "terraform_apply"]7042actual collection contained: ["build", "deploy", "terraform_apply", "terraform_destroy"]7043the extra elements were: ["terraform_destroy"]7044 RSpec::Retry: 4th try ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:437045Tooling::FindCodeowners7046 #execute7047 prints CODEOWNERS as configured7048 #load_definitions7049 expands the allow and deny list with keywords and patterns7050 expands the patterns for the auth group7051 retains the array and expands the patterns for the compliance group7052 #load_config7053 loads the config with symbolized keys7054 when YAML has safe_load_file7055 calls safe_load_file7056 when YAML does not have safe_load_file7057 calls load_file7058 #path_matches?7059 passes flags we are expecting to File.fnmatch?7060 #normalize_pattern7061 returns /**/* if the input is *7062 prepends /** if the input does not start with /7063 returns the pattern if the input starts with /7064 appends **/* if the input ends with /7065 #consolidate_paths7066 when the directory has the same number of entries7067 consolidates into the directory7068 when the directory has different number of entries7069 returns the original paths7070Ci::CancelPipelineWorker7071 #perform7072 calls cancel_running7073 if pipeline is deleted7074 does not error7075 with builds and state transition side effects7076 behaves like an idempotent worker7077 is labeled as idempotent7078 performs multiple times sequentially without raising an exception7079 cancels the pipeline7080Gitlab::Usage::Metrics::Instrumentations::GenericMetric7081 with default fallback7082 #value7083 gives the correct value7084 when raising an exception7085 with should_raise_for_dev? false7086 return the default fallback7087 with should_raise_for_dev? true7088 raises an error7089 with custom fallback -27090 behaves like custom fallback7091 #value7092 gives the correct value7093 when raising an exception7094 with should_raise_for_dev? false7095 return the custom fallback7096 with should_raise_for_dev? true7097 raises an error7098 with custom fallback nil7099 behaves like custom fallback7100 #value7101 gives the correct value7102 when raising an exception7103 with should_raise_for_dev? false7104 return the custom fallback7105 with should_raise_for_dev? true7106 raises an error7107 with custom fallback false7108 behaves like custom fallback7109 #value7110 gives the correct value7111 when raising an exception7112 with should_raise_for_dev? false7113 return the custom fallback7114 with should_raise_for_dev? true7115 raises an error7116 with custom fallback true7117 behaves like custom fallback7118 #value7119 gives the correct value7120 when raising an exception7121 with should_raise_for_dev? false7122 return the custom fallback7123 with should_raise_for_dev? true7124 raises an error7125 with custom fallback []7126 behaves like custom fallback7127 #value7128 gives the correct value7129 when raising an exception7130 with should_raise_for_dev? false7131 return the custom fallback7132 with should_raise_for_dev? true7133 raises an error7134 with custom fallback { major: -1 }7135 behaves like custom fallback7136 #value7137 gives the correct value7138 when raising an exception7139 with should_raise_for_dev? false7140 return the custom fallback7141 with should_raise_for_dev? true7142 raises an error7143Gitlab::Diff::Parser7144 #parse7145 is expected to eq 307146 lines7147 first line7148 is expected to eq "match"7149 is expected to eq 67150 is expected to eq 67151 is expected to eq "@@ -6,12 +6,18 @@ module Popen"7152 removal line7153 is expected to eq "old"7154 is expected to eq 147155 is expected to eq 137156 is expected to eq "- options = { chdir: path }"7157 addition line7158 is expected to eq "new"7159 is expected to eq 157160 is expected to eq 187161 is expected to eq "+ options = {"7162 unchanged line7163 is expected to eq nil7164 is expected to eq 247165 is expected to eq 317166 is expected to eq " @cmd_output << stderr.read"7167 \ No newline at end of file7168 parses nonewline in one file correctly7169 parses nonewline in two files correctly7170 when lines is empty7171 is expected to eq []7172 is expected to eq []7173 when it is a binary notice7174 is expected to eq []7175 tolerates special diff markers in a content7176 counts lines correctly7177Gitlab::ImportExport::SnippetsRepoRestorer7178 bundle a snippet Git repo7179 when export has no snippet repository bundle7180 behaves like imports snippet repositories7181 is expected not to be empty7182 when export has snippet repository bundles and snippets without them7183 behaves like imports snippet repositories7184 is expected not to be empty7185 when export has only snippet bundles7186 behaves like imports snippet repositories7187 is expected not to be empty7188 when any of the snippet repositories cannot be created7189 continues processing other snippets and returns false7190Gitlab::Database::Partitioning::TimePartition7191 .from_sql7192 uses specified table name7193 uses specified partition name7194 parses start date7195 parses end date7196 with MINVALUE as a start date7197 sets from to nil7198 with MAXVALUE as an end date7199 raises a NotImplementedError7200 #partition_name7201 uses table as prefix7202 uses Year-Month (from) as suffix7203 without from date7204 uses 000000 as suffix for first partition7205 with partition name explicitly given7206 uses given partition name7207 #to_sql7208 transforms to a CREATE TABLE statement7209 without from date7210 uses MINVALUE instead7211 object equality - #eql7212 treats objects identical with identical attributes7213 different table leads to in-equality7214 different from leads to in-equality7215 different to leads to in-equality7216 different partition_name leads to in-equality7217 nil partition_name is ignored if auto-generated matches7218 Comparable, #<=>7219 sorts by partition name, i.e. by month - MINVALUE partition first7220 returns nil for partitions of different tables7221Mutations::Boards::Lists::Update7222 on group issue boards7223 behaves like update board list mutation7224 #resolve7225 with permission to admin board lists7226 updates the list position and collapsed state as expected7227 with permission to read board lists7228 updates the list collapsed state but not the list position7229 without permission to read board lists7230 raises Resource Not Found error7231BlobViewer::Base7232 .can_render?7233 when the extension is supported7234 when the binaryness matches7235 returns true7236 when the binaryness does not match7237 returns false7238 when the file type is supported7239 when the binaryness matches7240 returns true7241 when the binaryness does not match7242 returns false7243 when the extension and file type are not supported7244 returns false7245 #collapsed?7246 when the blob size is larger than the collapse limit7247 returns true7248 when the blob size is smaller than the collapse limit7249 returns false7250 #too_large?7251 when the blob size is larger than the size limit7252 returns true7253 when the blob size is smaller than the size limit7254 returns false7255 #render_error7256 when the blob is expanded7257 when the blob size is larger than the size limit7258 returns :too_large7259 when the blob size is smaller than the size limit7260 returns nil7261 when not expanded7262 when the blob size is larger than the collapse limit7263 returns :collapsed7264 when the blob size is smaller than the collapse limit7265 returns nil7266Projects::CreateFromTemplateService7267 calls the importer service7268 returns the project that is created7269 when template is not present7270 does not set import set import type7271 does not set import set import source7272 is not scheduled7273 repository is empty7274 the result project7275 overrides template description7276 overrides template visibility_level7277ProtectedBranch::PushAccessLevel7278 is expected to validate that :access_level is either ‹40›, ‹30›, or ‹0›7279 associations7280 is expected to belong to deploy_key required: false7281 validations7282 is not valid when a record exists with the same access level7283 is not valid when a record exists with the same access level7284 checks that a deploy key is enabled for the same project as the protected branch's7285 #check_access7286 when this push_access_level is tied to a deploy key7287 when the deploy key is among the active keys for this project7288 is expected to be truthy7289 when the deploy key is not among the active keys of this project7290 is false7291 #type7292 returns :deploy_key when a deploy key is tied to the protected branch7293 returns :role by default7294Namespaces::UserNamespacePolicy7295 with no user7296 is expected to be banned7297 regular user7298 is expected to be disallowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_statistics, :transfer_projects, and :admin_package7299 owner7300 is expected to be allowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_statistics, :transfer_projects, and :admin_package7301 user who has exceeded project limit7302 is expected to be disallowed :create_projects7303 is expected to be disallowed :transfer_projects7304 admin7305 when admin mode is enabled7306 is expected to be allowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_statistics, :transfer_projects, and :admin_package7307 when admin mode is disabled7308 is expected to be disallowed :owner_access, :create_projects, :admin_namespace, :read_namespace, :read_statistics, :transfer_projects, and :admin_package7309 create_jira_connect_subscription7310 admin7311 when admin mode enabled7312 is expected to be allowed :create_jira_connect_subscription7313 when admin mode disabled7314 is expected to be disallowed :create_jira_connect_subscription7315 owner7316 is expected to be allowed :create_jira_connect_subscription7317 other user7318 is expected to be disallowed :create_jira_connect_subscription7319 create projects7320 when user can create projects7321 is expected to be allowed :create_projects7322 when user cannot create projects7323 is expected to be disallowed :create_projects7324Gitlab::ImportExport::SnippetsRepoSaver7325 bundle a project Git repo7326 creates the snippet bundles dir if not exists7327 when project does not have any snippet7328 does not perform any action7329 when project has snippets7330 calls the SnippetRepoSaver for each snippet7331 when one snippet cannot be saved7332 returns false and do not process other snippets7333WorkItems::Type7334 modules7335 is expected to includes the CacheMarkdownField module7336 associations7337 is expected to have many work_items7338 is expected to belong to namespace required: false7339 scopes7340 order_by_name_asc7341 is expected to match ["atype", "gtype", "Ztype"]7342 #destroy7343 does not delete type when there are related issues7344 when there are no work items of that type7345 deletes type but not unrelated issues7346 validation7347 is expected not to allow :icon_name to be ‹"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"›7348 name uniqueness7349 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id7350 .available_widgets7351 returns list of all possible widgets7352 #default?7353 when namespace is nil7354 is expected to be truthy7355 when namespace is present7356 is expected to be falsey7357 #name7358 strips name7359Security::CiConfiguration::SastIacCreateService7360 #execute7361 user does not belong to project7362 returns an error status7363 does not track a snowplow event7364 user belongs to project7365 does track the snowplow event7366 raises exception if the user does not have permission to create a new branch7367 when exception is raised7368 when branch was created7369 tries to rm branch7370 when branch was not created7371 does not try to rm branch7372 with no parameters7373 returns the path to create a new merge request7374 when the project has a non-default ci config file7375 does track the snowplow event7376Gitlab::HealthChecks::Redis::SessionsCheck7377 #metrics7378 Check is passing7379 is expected to include (have attributes {:name => "redis_sessions_ping_success", :value => 1})7380 is expected to include (have attributes {:name => "redis_sessions_ping_timeout", :value => 0})7381 is expected to include (have attributes {:name => "redis_sessions_ping_latency_seconds", :value => (be >= 0)})7382 Check is misbehaving7383 is expected to include (have attributes {:name => "redis_sessions_ping_success", :value => 0})7384 is expected to include (have attributes {:name => "redis_sessions_ping_timeout", :value => 0})7385 is expected to include (have attributes {:name => "redis_sessions_ping_latency_seconds", :value => (be >= 0)})7386 Check is timeouting7387 is expected to include (have attributes {:name => "redis_sessions_ping_success", :value => 0})7388 is expected to include (have attributes {:name => "redis_sessions_ping_timeout", :value => 1})7389 is expected to include (have attributes {:name => "redis_sessions_ping_latency_seconds", :value => (be >= 0)})7390 #readiness7391 Check returns ok7392 is expected to have attributes {:success => true}7393 Check is misbehaving7394 is expected to have attributes {:message => "unexpected Sessions check result: error!", :success => false}7395 Check is timeouting7396 is expected to have attributes {:message => "Sessions check timed out", :success => false}7397 Check is raising an unhandled exception7398 is expected to have attributes {:message => "unexpected Sessions check result: unexpected error", :success => false}7399RuboCop::Cop::Graphql::Descriptions7400 with fields7401 adds an offense when there is no description7402 adds an offense when description does not end in a period7403 adds an offense when description begins with "A"7404 adds an offense when description begins with "The"7405 does not add an offense when description is correct7406 does not add an offense when there is a resolver7407 with enum values7408 adds an offense when there is no description7409 adds an offense when description does not end in a period7410 adds an offense when description begins with "The"7411 adds an offense when description begins with "A"7412 does not add an offense when description is correct (defined using `description:`)7413 does not add an offense when description is correct (defined as a second argument)7414 with arguments7415 adds an offense when there is no description7416 adds an offense when description does not end in a period7417 adds an offense when description begins with "A"7418 adds an offense when description begins with "The"7419 does not add an offense when description is correct7420 autocorrecting descriptions without periods7421 can autocorrect7422 can autocorrect a heredoc7423RemoveUnacceptedMemberInvitesWorker7424 #perform7425 unaccepted members7426 removes unaccepted members7427 invited members still within expiration threshold7428 leaves invited members7429 accepted members7430 leaves accepted members7431Integrations::ChatMessage::PushMessage7432 behaves like Integrations::ChatMessage7433 when input contains link markup7434 strips all link markup characters7435 push7436 without markdown7437 returns a message regarding pushes7438 with markdown7439 returns a message regarding pushes7440 tag push7441 without markdown7442 returns a message regarding pushes7443 with markdown7444 returns a message regarding pushes7445 removed tag7446 without markdown7447 returns a message regarding removal of tags7448 with markdown7449 returns a message regarding removal of tags7450 new branch7451 without markdown7452 returns a message regarding a new branch7453 with markdown7454 returns a message regarding a new branch7455 removed branch7456 without markdown7457 returns a message regarding a removed branch7458 with markdown7459 returns a message regarding a removed branch7460Gitlab::RackAttack7461 .configure7462 extends the request class7463 configures the throttle response7464 configures the safelist7465 configures throttles if no dry-run was configured7466 configures tracks if dry-run was configured for all throttles7467 configures tracks and throttles with a selected set of dry-runs7468 enables dry-runs for `throttle_unauthenticated_api` and `throttle_unauthenticated_web` when selecting `throttle_unauthenticated`7469 user allowlist7470 is empty7471 reflects GITLAB_THROTTLE_USER_ALLOWLIST7472 .throttled_response_headers7473 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609842570}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1830"}7474 generates accurate throttled headers7475 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609844399}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1"}7476 generates accurate throttled headers7477 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609840800}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"3600"}7478 generates accurate throttled headers7479 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3600, :epoch_time=>1609889400}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"60", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609891200", "RateLimit-ResetTime"=>"Wed, 06 Jan 2021 00:00:00 GMT", "Retry-After"=>"1800"}7480 generates accurate throttled headers7481 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3400, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"57", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7482 generates accurate throttled headers7483 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>3700, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"62", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7484 generates accurate throttled headers7485 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>59, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"1", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7486 generates accurate throttled headers7487 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>1 hour, :limit=>61, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"2", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609844400", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 11:00:00 GMT", "Retry-After"=>"1800"}7488 generates accurate throttled headers7489 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>15 seconds, :limit=>10, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"40", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609842615", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 10:30:15 GMT", "Retry-After"=>"15"}7490 generates accurate throttled headers7491 matched: "throttle_unauthenticated", match_data: {:discriminator=>"127.0.0.1", :count=>3700, :period=>27 seconds, :limit=>10, :epoch_time=>1609842600}, headers: {"RateLimit-Name"=>"throttle_unauthenticated", "RateLimit-Limit"=>"23", "RateLimit-Observed"=>"3700", "RateLimit-Remaining"=>"0", "RateLimit-Reset"=>"1609842627", "RateLimit-ResetTime"=>"Tue, 05 Jan 2021 10:30:27 GMT", "Retry-After"=>"27"}7492 generates accurate throttled headers7493RuboCop::Cop::Migration::UpdateColumnInBatches7494 outside of a migration7495 does not register any offenses7496 when in migration7497 behaves like a migration file with no spec file7498 registers an offense when using update_column_in_batches7499 behaves like a migration file with a spec file7500 does not register any offenses7501 when in a post migration7502 behaves like a migration file with no spec file7503 registers an offense when using update_column_in_batches7504 behaves like a migration file with a spec file7505 does not register any offenses7506 EE migrations7507 when in a migration7508 behaves like a migration file with no spec file7509 registers an offense when using update_column_in_batches7510 behaves like a migration file with a spec file7511 does not register any offenses7512 when in a post migration7513 behaves like a migration file with no spec file7514 registers an offense when using update_column_in_batches7515 behaves like a migration file with a spec file7516 does not register any offenses7517Jobs/SAST-IaC.latest.gitlab-ci.yml7518 the created pipeline7519 on feature branch7520 creates the kics-iac-sast job7521 on merge request7522 creates a pipeline with the expected jobs7523 SAST_DISABLED is set7524 on default branch7525 has no jobs7526 on feature branch7527 has no jobs7528Mutations::Labels::Create7529 is expected to require graphql authorizations :admin_label7530 when creating a project label7531 behaves like create labels mutation7532 #resolve7533 when the user does not have permission to create a label7534 raises an error7535 when the user can create a label7536 creates label with correct values7537 when creating a group label7538 behaves like create labels mutation7539 #resolve7540 when the user does not have permission to create a label7541 raises an error7542 when the user can create a label7543 creates label with correct values7544 #ready?7545 when passing both project_path and group_path7546 raises an argument error7547 when passing only project_path or group_path7548 does not raise an error7549Clusters::InstancePolicy7550 rules7551 when user7552 is expected to be disallowed :read_cluster7553 is expected to be disallowed :add_cluster7554 is expected to be disallowed :create_cluster7555 is expected to be disallowed :update_cluster7556 is expected to be disallowed :admin_cluster7557 when admin7558 when admin mode is enabled7559 is expected to be allowed :read_cluster7560 is expected to be allowed :add_cluster7561 is expected to be allowed :create_cluster7562 is expected to be allowed :update_cluster7563 is expected to be allowed :admin_cluster7564 when admin mode is disabled7565 is expected to be disallowed :read_cluster7566 is expected to be disallowed :add_cluster7567 is expected to be disallowed :create_cluster7568 is expected to be disallowed :update_cluster7569 is expected to be disallowed :admin_cluster7570RuboCop::Cop::UsageData::HistogramWithLargeTable7571 with non related class7572 does not register an offense7573 with large tables7574 with one-level constants7575 when calling histogram(Issue)7576 registers an offense7577 when calling histogram(::Issue)7578 registers an offense7579 when calling histogram(Issue.closed)7580 registers an offense7581 when calling histogram(::Issue.closed)7582 registers an offense7583 with two-level constants7584 when calling histogram(::Ci::Build)7585 registers an offense7586 when calling histogram(::Ci::Build.active)7587 registers an offense7588 when calling histogram(Ci::Build)7589 registers an offense7590 when calling histogram(Ci::Build.active)7591 registers an offense7592 with non related method7593 does not register an offense7594Preloaders::UsersMaxAccessLevelInProjectsPreloader7595 preload maximum access level to avoid querying project_authorizations7596Skipping ./spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb[1:1:1] 'Preloaders::UsersMaxAccessLevelInProjectsPreloader preload maximum access level to avoid querying project_authorizations avoids N+1 queries' because it's flaky.7597 avoids N+1 queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)7598 runs N queries without preloading7599Bitbucket::Representation::Repo7600 #has_wiki?7601 is expected to be falsey7602 is expected to be truthy7603 #name7604 is expected to eq "test"7605 #valid?7606 is expected to be falsey7607 is expected to be truthy7608 #full_name7609 is expected to eq "test_full"7610 #description7611 is expected to eq "desc"7612 #issues_enabled?7613 is expected to be falsey7614 is expected to be truthy7615 #owner_and_slug7616 is expected to eq ["ben", "test"]7617 #owner7618 is expected to eq "ben"7619 #slug7620 is expected to eq "test"7621 #clone_url7622 builds url7623Gitlab::Usage::ServicePing::InstrumentedPayload7624 when building service ping with values7625 builds the service ping payload for the metrics key_paths7626 when building service ping with instrumentations7627 builds the service ping payload for the metrics key_paths7628 when missing instrumentation class7629 returns empty hash7630 with broken metric definition file7631 when instrumentation class name is incorrect7632 tracks error and return fallback7633 when instrumentation class raises TypeError7634 tracks error and return fallback7635 when instrumentation class raises ArgumentError7636 tracks error and return fallback7637 when instrumentation class raises StandardError7638 tracks error and return fallback7639DesignManagement::MoveDesignsService7640 #execute7641 the user cannot move designs7642 raises cannot_move7643 the designs are not distinct7644 raises not_distinct7645 the designs are not on the same issue7646 raises not_same_issue7647 no focus is passed7648 raises no_focus7649 no neighbours are passed7650 raises no_neighbors7651 moving a design with neighbours7652 repositions existing designs and correctly places the given design7653Gitlab::Ci::RunnerInstructions7654 OS7655 linux7656 has the required fields7657 has a valid script7658 osx7659 has the required fields7660 has a valid script7661 windows7662 has the required fields7663 has a valid script7664 OTHER_ENVIRONMENTS7665 docker7666 has the required fields7667 kubernetes7668 has the required fields7669 #install_script7670 invalid params7671 current_params: {:os=>nil, :arch=>nil}, expected_error_message: "Missing OS"7672 raises argument error7673 current_params: {:os=>"linux", :arch=>nil}, expected_error_message: "Missing arch"7674 raises argument error7675 current_params: {:os=>nil, :arch=>"amd64"}, expected_error_message: "Missing OS"7676 raises argument error7677 current_params: {:os=>"non_existing_os", :arch=>"amd64"}, expected_error_message: "Invalid OS"7678 raises argument error7679 current_params: {:os=>"linux", :arch=>"non_existing_arch"}, expected_error_message: "Architecture not found for OS"7680 raises argument error7681 current_params: {:os=>"windows", :arch=>"non_existing_arch"}, expected_error_message: "Architecture not found for OS"7682 raises argument error7683 with valid params7684 os: "linux", arch: "amd64"7685 returns string containing correct params7686 os: "linux", arch: "386"7687 returns string containing correct params7688 os: "linux", arch: "arm"7689 returns string containing correct params7690 os: "linux", arch: "arm64"7691 returns string containing correct params7692 os: "windows", arch: "amd64"7693 returns string containing correct params7694 os: "windows", arch: "386"7695 returns string containing correct params7696 os: "osx", arch: "amd64"7697 returns string containing correct params7698ContainerExpirationPolicyWorker7699 #perform7700 process cleanups7701 calls the limited capacity worker7702 with exclusive lease taken7703 does not do anything7704 process stale ongoing cleanups7705 set them as unfinished7706 policies without container repositories7707 disables them7708 counts logging7709 logs all the counts7710 with load balancing enabled7711 reads the counts from the replica7712ThemeKit.gitlab-ci.yml7713 the created pipeline7714 on the default branch7715 only creates staging deploy7716 on a tag7717 only creates a production deploy7718 outside of the default branch7719 has no jobs7720Gitlab::Ci::Config::Entry::Rules7721 .new7722 with a list of rule rule7723 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules7724 is expected to be valid7725 with a list of two rules7726 is expected to be valid7727 with a single rule object7728 is expected not to be valid7729 with nested rules7730 is expected to be valid7731 with rules nested more than one level7732 is expected to be valid7733 #value7734 with a list of rule rule7735 is expected to eq [{:if=>"$THIS == \"that\"", :when=>"never"}]7736 with a list of two rules7737 is expected to eq [{:if=>"$THIS == \"that\"", :when=>"always"}, {:if=>"$SKIP", :when=>"never"}]7738 with a single rule object7739 is expected to eq []7740 with nested rules7741 is expected to contain exactly {:if=>"$THIS == \"that\"", :when=>"always"} and {:if=>"$SKIP", :when=>"never"}7742 with rules nested more than one level7743 is expected to contain exactly {:if=>"$THIS == \"that\"", :when=>"always"}, {:if=>"$SKIP", :when=>"never"}, and {:if=>"$THIS == \"other\"", :when=>"always"}7744 .default7745 does not have default policy7746Gitlab::Ci::Pipeline::Logger7747 #log_when7748 stores blocks for later evaluation7749 #instrument7750 returns the block's value7751 records durations of instrumented operations7752 raises an error when block is not provided7753 #instrument_with_sql7754 with a single query7755 is expected to eq 07756 includes SQL metrics7757 with multiple queries7758 is expected to eq 07759 includes SQL metrics7760 with multiple observations7761 includes SQL metrics7762 when there are not SQL operations7763 is expected to eq 1237764 does not include SQL metrics7765 #observe7766 records durations of observed operations7767 #commit7768 when the feature flag is enabled7769 logs to application.json7770 with log conditions7771 does not log when the conditions are false7772 logs when a condition is true7773 when project is not passed and pipeline is not persisted7774 logs to application.json7775 when the feature flag is disabled7776 does not log7777Gitlab::DatabaseImporters::SelfMonitoring::Project::DeleteService7778 #execute7779 when project does not exist7780 returns error7781 when self monitoring project exists7782 destroys project7783 deletes project ID from application settings7784 does not delete group7785Gitlab::Ci::Build::Releaser7786 #script7787 all nodes7788 generates the script7789 individual nodes7790 node_name: :name, node_value: "Release $CI_COMMIT_SHA", result: "release-cli create --name \"Release $CI_COMMIT_SHA\""7791 generates the script7792 node_name: :description, node_value: "Release-cli $EXTRA_DESCRIPTION", result: "release-cli create --description \"Release-cli $EXTRA_DESCRIPTION\""7793 generates the script7794 node_name: :tag_name, node_value: "release-$CI_COMMIT_SHA", result: "release-cli create --tag-name \"release-$CI_COMMIT_SHA\""7795 generates the script7796 node_name: :tag_message, node_value: "Annotated tag message", result: "release-cli create --tag-message \"Annotated tag message\""7797 generates the script7798 node_name: :ref, node_value: "$CI_COMMIT_SHA", result: "release-cli create --ref \"$CI_COMMIT_SHA\""7799 generates the script7800 node_name: :milestones, node_value: ["m1", "m2", "m3"], result: "release-cli create --milestone \"m1\" --milestone \"m2\" --milestone \"m3\""7801 generates the script7802 node_name: :released_at, node_value: "2020-07-15T08:00:00Z", result: "release-cli create --released-at \"2020-07-15T08:00:00Z\""7803 generates the script7804 node_name: :assets, node_value: {:links=>[{:name=>"asset1", :url=>"https://example.com/assets/1", :link_type=>"other", :filepath=>"/pretty/asset/1"}]}, result: "release-cli create --assets-link \"{\\\"name\\\":\\\"asset1\\\",\\\"url\\\":\\\"https://example.com/assets/1\\\",\\\"link_type\\\":\\\"other\\\",\\\"filepath\\\":\\\"/pretty/asset/1\\\"}\""7805 generates the script7806PropagateIntegrationInheritWorker7807 #perform7808 behaves like an idempotent worker7809 is labeled as idempotent7810 performs multiple times sequentially without raising an exception7811 calls to BulkUpdateIntegrationService7812 with an invalid integration id7813 returns without failure7814Banzai::Filter::InlineAlertMetricsFilter7815 behaves like a metrics embed filter7816 when the document has an external link7817 leaves regular non-metrics links unchanged7818 when the document contains an embeddable link7819 leaves the original link unchanged7820 appends a metrics charts placeholder7821 in a paragraph7822 appends a metrics charts placeholder after the enclosing paragraph7823 with query params specified7824 behaves like a metrics embed filter7825 when the document has an external link7826 leaves regular non-metrics links unchanged7827 when the document contains an embeddable link7828 leaves the original link unchanged7829 appends a metrics charts placeholder7830 in a paragraph7831 appends a metrics charts placeholder after the enclosing paragraph7832LazyImageTagHelper7833 #image_tag7834 when only source passed7835 returns a lazy image tag by default7836 when lazy mode is disabled7837 returns a normal image tag7838 when Dark Mode is enabled7839 when auto dark enabled7840 adds an auto dark mode class from gitlab-ui7841 when auto dark disabled7842 does nothing7843 when dark variant is present7844 uses dark variant as a source7845 when Dark Mode is disabled7846 when auto dark enabled7847 does not add a dark mode class from gitlab-ui7848 when auto dark disabled7849 does nothing7850 when dark variant is present7851 uses original image as a source7852 when auto_dark and dark_variant are both passed7853 does not add a dark mode class from gitlab-ui7854Gitlab::CycleAnalytics::Summary::Value7855 Gitlab::CycleAnalytics::Summary::Value::None7856 returns `-`7857 Gitlab::CycleAnalytics::Summary::Value::Numeric7858 returns the string representation of the number7859 Gitlab::CycleAnalytics::Summary::Value::PrettyNumeric7860 #to_s7861 returns `-` when the number is 07862 returns `-` when the number is nil7863 returns the string representation of the number7864Ci::GenerateCodequalityMrDiffReportService7865 #execute7866 when head pipeline has codequality mr diff report7867 returns status and data7868 when head pipeline does not have a codequality mr diff report7869 returns status and error message7870 when head pipeline has codequality mr diff report and no merge request associated7871 returns status and error message7872MergeRequestUserEntity7873 #as_json7874 exposes needed attributes7875 when `status` is not preloaded7876 does not expose the availability attribute7877 when the user has not approved the merge-request7878 exposes that the user has not approved the MR7879 when the user has approved the merge-request7880 exposes that the user has approved the MR7881 when `status` is preloaded7882 exposes the availibility attribute7883 performance7884 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)7885Gitlab::Ci::Config::Entry::Imageable7886 when entry value is correct7887 #valid?7888 is valid7889 when entry value is not correct7890 #errors7891 saves errors7892 #valid?7893 is not valid7894 when unexpected key is specified7895 #errors7896 saves errors7897 #valid?7898 is not valid7899StuckExportJobsWorker7900 with started export status7901 behaves like project export job detection7902 when the job has completed7903 when the export status was already updated7904 does not mark the export as failed7905 when the export status was not updated7906 marks the project as failed7907 when the job is not in queue and db record in queued state7908 marks the project as failed7909 when the job is running in Sidekiq7910 does not mark the project export as failed7911Todos::Destroy::DestroyedIssuableService7912 #execute7913 when target is merge request7914 deletes todos for specified target ID and type7915 invalidates todos cache counts of todo users7916 when target is an work item7917 deletes todos7918Ci::CreatePipelineService7919 merge requests handling7920 when pushing a change7921 when a merge request already exists7922 does not create a pipeline7923 when no merge request exists7924 does create a pipeline7925ExternalServiceReactiveCachingWorker7926 behaves like reactive cacheable worker7927 #perform7928 when reactive cache worker class is found7929 calls #exclusively_update_reactive_cache!7930 when ReactiveCaching::ExceededReactiveCacheLimit is raised7931 avoids failing the job and tracks via Gitlab::ErrorTracking7932 when reactive cache worker class is not found7933 raises no error7934 when reactive cache worker class is invalid7935 raises no error7936 worker context7937 sets the related class on the job7938 sets the related class on the job when it was passed as a class7939Gitlab::Prometheus::Adapter7940 #prometheus_adapter7941 prometheus integration can execute queries7942 return prometheus integration as prometheus adapter7943 with cluster with prometheus available7944 returns prometheus integration7945 prometheus integration can't execute queries7946 with cluster with prometheus disabled7947 returns nil7948 with cluster with prometheus available7949 returns application handling all environments7950 with cluster without prometheus installed7951 returns nil7952Gitlab::JiraImport::Stage::ImportNotesWorker7953 modules7954 behaves like include import workers modules7955 is expected to includes the ApplicationWorker module7956 is expected to includes the Gitlab::JiraImport::QueueOptions module7957 is expected to includes the Gitlab::JiraImport::ImportWorker module7958 #perform7959 when import did not start7960 behaves like cannot do Jira import7961 does not advance to next stage7962 behaves like does not advance to next stage7963 does not advance to next stage7964 when import started7965 behaves like advance to next stage7966 advances to finish stage7967X509Helper7968 #x509_subject7969 with uppercase DN7970 returns the attributes on any case search7971 with lowercase DN7972 returns the attributes on any case search7973 with comma within DN7974 returns the attributes on any case search7975 with mal formed DN7976 returns nil on any case search7977 #x509_signature?7978 detects a x509 signed commit7979Metrics::Dashboard::PruneOldAnnotationsWorker7980 #perform7981 removes all annotations older than cut off7982 batch to be deleted is bigger than upper limit7983 schedules second job to clear remaining records7984HashedStorage::ProjectMigrateWorker7985 #perform7986 skips when project no longer exists7987 skips when project is pending delete7988 skips when project is already migrated7989 with exclusive lease available7990 delegates migration to service class7991 delegates migration to service class with correct path in a partially migrated project7992 with exclusive lease taken7993 skips when it cant acquire the exclusive lease7994ReleaseHighlights::Validator::Entry7995 validations7996 with a valid entry7997 is expected to be valid7998 with an invalid entry7999 returns line numbers in errors8000 with a blank entry8001 validate presence of name, description and stage8002 validates boolean value of "self-managed" and "gitlab-com"8003 validates URI of "url" and "image_url"8004 validates release is numerical8005 validates published_at is a date8006 validates available_in are included in list8007Gitlab::ImportExport::LfsSaver8008 #save8009 when the project has LFS objects locally stored8010 does not cause errors8011 copies the file in the correct location when there is an lfs object8012 when lfs object has file on disk missing8013 does not attempt to copy non-existent file8014 saving a json file8015 saves a json file correctly8016 when the LFS objects are stored in object storage8017 downloads the file to include in an archive8018Gitlab::AvatarCache8019 #by_email8020 writes a new value into the cache8021 finds the cached value and doesn't execute the block8022 finds the cached value in the request store and doesn't execute the block8023 #delete_by_email8024 no emails, somehow8025 is expected to eq 08026 single email8027 removes the email8028 multiple emails8029 removes the emails it finds8030Gitlab::Database::SchemaCacheWithRenamedTable8031 when table is not renamed yet8032 uses the original table to look up metadata8033 when table is renamed8034 uses the renamed table to look up metadata8035 has primary key8036 has the same column definitions8037 has the same indexes8038 has the same column_hash8039 when the table behind a model is actually a view8040 can persist records8041 can find records8042CustomerRelations::Contacts::CreateService8043 #execute8044 when user does not have permission8045 returns an error8046 when user has permission8047 creates a contact8048 returns an error when the contact is not persisted8049 returns an error when the organization_id is invalid8050 returns an error when the organization belongs to a different group8051events/event/_push.html.haml8052 with a branch8053 links to the branch8054 that has been deleted8055 does not link to the branch8056 ref_count is more than 18057 includes the count in the text8058 with a tag8059 links to the tag8060 that has been deleted8061 does not link to the tag8062 ref_count is more than 18063 includes the count in the text8064Users::CreditCardValidation8065 is expected to belong to user required: false8066 is expected to validate that the length of :holder_name is at most 508067 is expected to validate that the length of :network is at most 328068 is expected to validate that :last_digits looks like a number less than or equal to 99998069 .similar_records8070 returns matches with the same last_digits, expiration and network, ordered by credit_card_validated_at8071BatchNullifyDependentAssociations8072 .dependent_associations_to_nullify8073 returns only associations with `dependent: :nullify` associations8074 #nullify_dependent_associations_in_batches8075 nullifies multiple settings8076 excludes associations8077FeatureFlagsUserListsFinder8078 #execute8079 returns user lists8080 with search8081 returns only matching user lists8082MergeRequests::ResolveTodosAfterApprovalWorker8083 calls TodoService#resolve_todos_for_target8084 behaves like subscribes to event8085 consumes the published event8086 behaves like an idempotent worker8087 is labeled as idempotent8088 performs multiple times sequentially without raising an exception8089 when the user does not exist8090 behaves like when object does not exist8091 logs and does not call TodoService#resolve_todos_for_target8092 when the merge request does not exist8093 behaves like when object does not exist8094 logs and does not call TodoService#resolve_todos_for_target8095Packages::Composer::CacheFile8096 relationships8097 is expected to belong to group required: false8098 is expected to belong to namespace required: false8099 validations8100 is expected to validate that :namespace cannot be empty/falsy8101 scopes8102 .with_namespace8103 is expected to eq [#<Packages::Composer::CacheFile id: 18, created_at: "2022-08-24 17:54:41.220671302 +0000", updated_a...00", delete_at: nil, namespace_id: 4019, file_store: 1, file: "123456.json", file_sha256: "123456">]8104 .with_sha8105 is expected to eq [#<Packages::Composer::CacheFile id: 18, created_at: "2022-08-24 17:54:41.220671302 +0000", updated_a...00", delete_at: nil, namespace_id: 4019, file_store: 1, file: "123456.json", file_sha256: "123456">]8106Database::PreventCrossJoins8107 when running in a default scope8108 when only non-CI tables are used8109 does not raise exception8110 when only CI tables are used8111 does not raise exception8112 when CI and non-CI tables are used8113 raises exception8114 when annotation is used8115 does not raise exception8116 when allow_cross_joins_across_databases is used8117 does not raise exception8118 when allow_cross_joins_across_databases is used8119 does not raise exception8120 when there is a parser error8121 does not raise parse PGQuery::ParseError8122RebaseWorker#perform8123 when rebasing an MR from a fork where upstream has protected branches8124 sets the correct project for running hooks8125ProjectAccessTokenEntity8126 when bot is a member of the project8127 has the correct attributes8128 when bot is unrelated to the project8129 has the correct attributes8130Clusters::Integrations::CreateService#execute8131 behaves like a cluster integration8132 when enabled param is true8133 creates a new enabled integration8134 when enabled param is false8135 creates a new disabled integration8136 when integration already exists8137 updates the integration8138 when application_type is invalid8139 errors8140 when user is unauthorized8141 returns error and does not create a new integration record8142BulkImports::RepositoryBundleExportService8143 #execute8144 when repository exists8145 bundles repository to disk8146 when repository does not exist8147 does not bundle repository to disk8148 when repository exists8149 bundles repository to disk8150 when repository does not exist8151 does not bundle repository to disk8152Mutations::AlertManagement::HttpIntegration::ResetToken8153 is expected to require graphql authorizations :admin_operations8154 #resolve8155 user has sufficient access to project8156 when HttpIntegrations::UpdateService responds with success8157 returns the integration with no errors8158 when HttpIntegrations::UpdateService responds with an error8159 returns errors8160 when resource is not accessible to the user8161 raises an error if the resource is not accessible to the user8162GoogleCloud::EnableCloudRunService8163 when a project does not have any gcp projects8164 returns error8165 when a project has 3 gcp projects8166 enables cloud run, artifacts registry and cloud build8167Gitlab::FormBuilders::GitlabUiFormBuilder8168 #submit8169 without pajamas_button enabled8170 renders a submit input8171 with pajamas_button enabled8172 renders a submit button8173 #gitlab_ui_checkbox_component8174 when not using slots8175 without optional arguments8176 renders correct html8177 with optional arguments8178 renders help text8179 with checkbox_options: { multiple: true }8180 renders labels with correct for attributes8181 when using slots8182 renders correct html8183 #gitlab_ui_radio_component8184 when not using slots8185 without optional arguments8186 renders correct html8187 with optional arguments8188 renders help text8189 when using slots8190 renders correct html8191 #gitlab_ui_datepicker8192 without optional arguments8193 renders correct html8194 with optional arguments8195 renders correct html8196MergeRequests::ResolveTodosWorker8197 behaves like an idempotent worker8198 is labeled as idempotent8199 performs multiple times sequentially without raising an exception8200 #perform8201 calls MergeRequests::ResolveTodosService#execute8202 with a non-existing merge request8203 does nothing8204 with a non-existing user8205 does nothing8206API::Entities::MergeRequestChanges8207 exposes basic entity fields8208 when #expose_raw_diffs? returns false8209 does not access merge_request.raw_diffs8210 when #expose_raw_diffs? returns true8211 does not access merge_request.raw_diffs8212 :overflow field8213 when :access_raw_diffs is true8214 reports false8215Packages::Debian::UpdateDistributionService8216 behaves like Debian Update Distribution Service8217 with a Debian project distribution8218 with valid simple params8219 behaves like Update Debian Distribution8220Skipping ./spec/services/packages/debian/update_distribution_service_spec.rb[1:1:1:1:1:1] 'Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with valid simple params behaves like Update Debian Distribution returns ServiceResponse' because it's flaky.8221 returns ServiceResponse (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8222 with invalid simple params8223 behaves like Update Debian Distribution8224Skipping ./spec/services/packages/debian/update_distribution_service_spec.rb[1:1:1:2:1:1] 'Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with invalid simple params behaves like Update Debian Distribution returns ServiceResponse' because it's flaky.8225 returns ServiceResponse (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8226 with valid components and architectures8227 behaves like Update Debian Distribution8228Skipping ./spec/services/packages/debian/update_distribution_service_spec.rb[1:1:1:3:1:1] 'Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with valid components and architectures behaves like Update Debian Distribution returns ServiceResponse' because it's flaky.8229 returns ServiceResponse (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8230 with invalid components8231 behaves like Update Debian Distribution8232 returns ServiceResponse82341st Try error in ./spec/services/packages/debian/update_distribution_service_spec.rb:7:8235Could not find the inverse association for vulnerability_state_transitions (:user in Vulnerabilities::StateTransition)8236Did you mean? vulnerability8237 author8239RSpec::Retry: 2nd try ./spec/services/packages/debian/update_distribution_service_spec.rb:78240 with invalid architectures8241 behaves like Update Debian Distribution8242Skipping ./spec/services/packages/debian/update_distribution_service_spec.rb[1:1:1:5:1:1] 'Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with invalid architectures behaves like Update Debian Distribution returns ServiceResponse' because it's flaky.8243 returns ServiceResponse (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8244 behaves like Debian Update Distribution Service8245 with a Debian group distribution8246 with valid simple params8247 behaves like Update Debian Distribution8248 returns ServiceResponse8249 with invalid simple params8250 behaves like Update Debian Distribution8251 returns ServiceResponse8252 with valid components and architectures8253 behaves like Update Debian Distribution8254 returns ServiceResponse8255 with invalid components8256 behaves like Update Debian Distribution8257 returns ServiceResponse8258 with invalid architectures8259 behaves like Update Debian Distribution8260 returns ServiceResponse8261Gitlab::Diff::LineMapper8262 #old_to_new8263 with a diff file8264 returns the new line number for the old line number8265 without a diff file8266 returns the same line number8267 #new_to_old8268 with a diff file8269 returns the old line number for the new line number8270 without a diff file8271 returns the same line number8272Atlassian::JiraConnect::Serializers::BranchEntity8273 sets the hash of the branch name as the id8274ContainerRegistry::Registry8275 is expected to respond to #client8276 is expected to respond to #uri8277 is expected to respond to #path8278 is expected not to be nil8279 #path8280 path from URL8281 is expected to eq "example.com"8282 custom path8283 is expected to eq "registry.example.com"8284 #gitlab_api_client8285 returns a GitLabApiClient with an import token8286Gitlab::Ci::Config::Entry::Jobs8287 .all_types8288 is expected to include Gitlab::Ci::Config::Entry::Hidden8289 is expected to include Gitlab::Ci::Config::Entry::Job8290 is expected to include Gitlab::Ci::Config::Entry::Bridge8291 .find_type8292 name: :".hidden_job", type: Gitlab::Ci::Config::Entry::Hidden8293 is expected to eq Gitlab::Ci::Config::Entry::Hidden8294 name: :".hidden_bridge", type: Gitlab::Ci::Config::Entry::Hidden8295 is expected to eq Gitlab::Ci::Config::Entry::Hidden8296 name: :regular_job, type: Gitlab::Ci::Config::Entry::Job8297 is expected to eq Gitlab::Ci::Config::Entry::Job8298 name: :my_trigger, type: Gitlab::Ci::Config::Entry::Bridge8299 is expected to eq Gitlab::Ci::Config::Entry::Bridge8300 name: :invalid_job, type: nil8301 is expected to eq nil8302 validations8303 when entry config value is correct8304 #valid?8305 is valid8306 when entry value is not correct8307 #errors8308 incorrect config value type8309 returns error about incorrect type8310 when job is invalid8311 reports error8312 when the job name cannot be cast directly to a symbol8313 properly parses the job name without raising a NoMethodError8314 when no visible jobs present8315 returns error about no visible jobs defined8316 .compose!8317 when valid job entries composed8318 #value8319 returns key value8320 #descendants8321 creates valid descendant nodes8322 #value8323 returns value of visible jobs only8324Packages::Rubygems::ExtractionWorker8325 #perform8326 processes the gem8327 handles a processing failure8328 handles processing an unaccounted for error8329 returns when there is no package file8330 returns without action8331Todos::AllowedTargetFilterService8332 #execute8333 is expected to contain exactly #<Todo id: 484, user_id: 2216, project_id: 1691, target_id: 347, target_type: "MergeRequest", author_...-24 17:55:09.718130411 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>, #<Todo id: 480, user_id: 2216, project_id: 1691, target_id: 485, target_type: "Issue", author_id: 221...-24 17:55:09.190987660 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>, and #<Todo id: 482, user_id: 2216, project_id: 1691, target_id: 41, target_type: "DesignManagement::Desig...-24 17:55:09.319319568 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>8334FeatureFlagSerializer8335 #represent8336 includes feature flag attributes8337RuboCop::Cop::CodeReuse::Worker8338 flags the use of a worker in a Finder8339 flags the use of a worker in an API8340 flags the use of a worker in a model class method8341 flags the use of a worker in a Serializer8342 flags the use of a worker in a controller8343 flags the use of a worker in GraphQL8344 flags the use of a worker in a Presenter8345Projects::ImportExport::RelationExportWorker8346 behaves like an idempotent worker8347 is labeled as idempotent8348 performs multiple times sequentially without raising an exception8349 #perform8350 when relation export has initial state queued8351 calls RelationExportService8352 when relation export does not have queued state8353 does not call RelationExportService8354Gitlab::View::Presenter::Base8355 .presenter?8356 returns true8357 .presents8358 raises an error when symbol is passed8359 when the presenter class specifies a custom keyword8360 exposes the subject with the given keyword8361 when the presenter class inherits Presenter::Delegated8362 sets the delegator target8363 when the presenter class inherits Presenter::Simple8364 does not set the delegator target8365 #__subject__8366 returns the subject8367 #can?8368 user is not allowed8369 returns false8370 user is allowed8371 returns true8372 subject is overridden8373 returns true8374 #present8375 returns self8376 #url_builder8377 returns the UrlBuilder instance8378 #web_url8379 delegates to the UrlBuilder8380 #web_path8381 delegates to the UrlBuilder8382Clusters::Kubernetes::FetchKubernetesTokenService8383 #execute8384 when params correct8385 when the secret exists8386 is expected to eq "xxx.token.xxx"8387 when there is a 500 error8388 is expected to raise Kubeclient::HttpError8389 when the secret does not exist on the first try8390 retries and finds the token8391 when the secret permanently does not exist8392 is expected to be nil8393 when the secret is missing a token on the first try8394 retries and finds the token8395 when the secret is permanently missing a token8396 is expected to be nil8397Mutations::Notes::RepositionImageDiffNote8398 #resolve8399 when the user does not have permission8400 raises an error if the resource is not accessible to the user8401 when the user has permission8402 mutates the note8403 when the note is a DiffNote, but not on an image8404 raises an error8405Approval8406 presence validation8407 is expected to validate that :merge_request_id cannot be empty/falsy8408 is expected to validate that :user_id cannot be empty/falsy8409 uniqueness validation8410 is expected to validate that :user_id is case-sensitively unique within the scope of :merge_request_id8411Gitlab::SampleDataTemplate8412 .all8413 returns all templates8414 .find8415 when there is a match8416 is expected to be a kind of Gitlab::SampleDataTemplate8417 when there is no match8418 is expected to equal nil8419 .archive_directory8420 is expected to be a kind of Pathname8421 validate all templates8422 sample has a valid archive8423 with valid parameters8424 can be imported8425Gitlab::Ci::Config::Entry::Tags8426 validation8427 when tags config value is correct8428 #value8429 returns tags configuration8430 #valid?8431 is valid8432 when entry value is not correct8433 #errors8434 when tags config is not an array of strings8435 reports error8436 when tags limit is reached8437 reports error8438Gitlab::SQL::Union8439 behaves like SQL set operator8440 .operator_keyword8441 is expected to eq "UNION"8442 #to_sql8443 returns a String joining relations together using a UNION8444 skips Model.none segments8445 uses UNION ALL when removing duplicates is disabled8446 returns `NULL` if all relations are empty8447 when uneven select values are used8448 raises error8449 remove_order parameter8450 when remove_order: true8451 removes the ORDER BY from the query8452 when remove_order: false8453 does not remove the ORDER BY from the query8454Terraform::States::TriggerDestroyService8455 #execute8456 marks the state as deleted and schedules a cleanup worker8457 within a database transaction8458 does not raise an EnqueueFromTransactionError8459 user does not have permission8460 does not modify the state8461 state is locked8462 does not modify the state8463MergeRequests::PipelineEntity8464 #as_json8465 contains required fields8466 returns presented coverage8467 excludes coverage data when disabled8468StartupjsHelper8469 #page_startup_graphql_calls8470 returns an array containing GraphQL Page Startup Calls8471 #page_startup_graphql_headers8472 csrf_token: "abc", feature_category: "web_ide", expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>"web_ide"}8473 returns hash of headers for GraphQL requests8474 csrf_token: "", feature_category: "", expected: {"X-CSRF-Token"=>"", "x-gitlab-feature-category"=>""}8475 returns hash of headers for GraphQL requests8476 csrf_token: "abc", feature_category: nil, expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>""}8477 returns hash of headers for GraphQL requests8478 csrf_token: "something", feature_category: " ", expected: {"X-CSRF-Token"=>"something", "x-gitlab-feature-category"=>""}8479 returns hash of headers for GraphQL requests8480ResourceEvents::SyntheticStateNotesBuilderService8481 #execute8482 behaves like filters by paginated notes8483 only returns given notes8484 when paginated notes is empty8485 does not return any notes8486Gitlab::Metrics::Dashboard::Stages::UrlValidator8487 #transform!8488 when the links contain a blocked url8489 dashboard related links8490 replaces the blocked url with an empty string8491 chart links8492 replaces the blocked url with an empty string8493 when local requests are not allowed8494 replaces the blocked url with an empty string8495 when the links are an array of strings instead of hashes8496 prevents an invalid link definition from erroring out8497Gitlab::Ci::Reports::Security::Scan8498 #initialize8499 when all params are given8500 initializes an instance8501 #to_hash8502 returns expected hash8503RuboCop::Cop::Graphql::IDType8504 does not add an offense for calls to #argument without GraphQL::Types::ID8505 adds an offense when GraphQL::Types::ID is used as a param to #argument8506 whitelisted arguments8507 does not add an offense for calls to #argument with iid as argument name8508 does not add an offense for calls to #argument with full_path as argument name8509 does not add an offense for calls to #argument with project_path as argument name8510 does not add an offense for calls to #argument with group_path as argument name8511 does not add an offense for calls to #argument with target_project_path as argument name8512 does not add an offense for calls to #argument with namespace_path as argument name8513Ci::BuildUnscheduleService8514 #execute8515 when user is authorized to unschedule the build8516 when build is scheduled8517 transits build to manual8518 when build is not scheduled8519 responds with unprocessable entity8520 when user is not authorized to unschedule the build8521 responds with forbidden8522Ci::DownloadableArtifactEntity8523 #as_json8524 contains required fields8525 when user cannot read job artifact8526 returns only artifacts readable by user8527Gitlab::Ci::Trace::SectionParser8528 #sections8529 empty trace8530 is expected to be empty8531 with a sectionless trace8532 is expected to be empty8533 with trace markers8534 is expected to eq 28535 is expected to eq "b"8536 is expected to eq 2017-10-05 00:00:00.000000000 +00008537 is expected to eq 2017-10-05 00:00:01.000000000 +00008538 #parse!8539 multiple "section_" but no complete markers8540 must find 3 possible section start but no complete sections8541 trace with UTF-8 chars8542 must handle correctly byte positioning8543Gitlab::Ci::Status::Build::Created8544 #illustration8545 is expected to include :image, :size, :title, and :content8546 .matches?8547 when build is created8548 is a correct match8549 when build is not created8550 does not match8551Sidebars::MenuItem8552 includes by default aria-label attribute set to the title8553 when aria-label is overridde during initialization8554 sets the aria-label to the new attribute8555Resolvers::Ci::JobsResolver8556 #resolve8557 when security_report_types is empty8558 returns all of the pipeline's jobs8559 when security_report_types is present8560 returns the pipeline's jobs with the given security report types8561 when a job has tags8562 returns jobs with tags when applicable8563MATLAB.gitlab-ci.yml8564 the created pipeline8565 creates all jobs8566IssuableSeverity8567 associations8568 is expected to belong to issue required: false8569 validations8570 is expected to validate that :severity cannot be empty/falsy8571 is expected to validate that :issue cannot be empty/falsy8572 is expected to validate that :issue is case-sensitively unique8573 enums8574 is expected to define :severity as an enum backed by an integer with values ‹{unknown: 0, low: 1, medium: 2, high: 3, critical: 4}›8575Webauthn::RegisterService8576 #execute8577 returns a registration if challenge matches8578 returns an error if challenge does not match8579Import::GitlabProjects::RemoteFileValidator8580 does nothing when the oject is valid8581 content_length validation8582 is invalid with file too small8583 is invalid with file too large8584 content_type validation8585 only allows ALLOWED_CONTENT_TYPES as content_type8586DesignManagement::DesignAction8587 validations8588 the design8589 must not be nil8590 the action8591 must not be nil8592 must be a known action8593 the content8594 content is necesary8595 must not be nil if the action is create8596 must not be nil if the action is update8597 content is forbidden8598 must not be nil if the action is delete8599 #gitaly_action8600 the action needs content8601 produces a good gitaly action8602 the action forbids content8603 produces a good gitaly action8604 #issue_id8605 delegates to the design8606 #performed8607 calls design#clear_version_cache when the action has been performed8608Keys::LastUsedService8609 #execute8610 updates the key when it has not been used recently8611 does not update the key when it has been used recently8612 does not update the updated_at field8613 #update?8614 returns true when no last used timestamp is present8615 returns true when the key needs to be updated8616 returns false when a lease has already been obtained8617 returns false when the key does not yet need to be updated8618Ci::RetryPipelineWorker8619 #perform8620 when pipeline exists8621 when user exists8622 retries the pipeline8623 when user does not exist8624 does not retry the pipeline8625 when pipeline does not exist8626 returns nil8627Types::CommitActionModeEnum8628 is expected to eq "CommitActionMode"8629 exposes all the existing commit actions8630PaginationHelper8631 #paginate_collection8632 paginates a collection without using a COUNT8633 paginates a collection using a COUNT8634Uploads::Local8635 model with uploads8636 #keys8637 returns keys8638 #delete_keys8639 deletes multiple data8640Ci::PipelineCreation::StartPipelineService8641 #execute8642 calls the pipeline process service8643 creates pipeline ref8644Types::Projects::ServiceTypeEnum8645 exposes all the existing project services8646 coerces values correctly8647Types::Ci::Config::IncludeType8648 is expected to eq "CiConfigInclude"8649 exposes the expected fields8650DependencyProxy::ImageTtlGroupPolicyWorker8651 #perform8652 when there are images to expire8653 updates the old images to pending_destruction8654 counts logging8655 logs all the counts8656 with load balancing enabled8657 reads the counts from the replica8658Resolvers::ProjectResolver8659 does not increase complexity depending on number of load limits8660 #resolve8661 batch-resolves projects by full path8662 resolves an unknown full_path to nil8663 treats project full path as case insensitive8664JiraConnect::SyncBuildsWorker8665 behaves like worker with data consistency8666 .get_data_consistency_feature_flag_enabled?8667 returns true8668 .get_data_consistency8669 returns correct data consistency8670 #perform8671 when pipeline exists8672 calls the Jira sync service8673 when pipeline does not exist8674 does not call the sync service8675Gitlab::Middleware::CompressedJson8676 #call8677 with collector route8678 behaves like decompress middleware8679 replaces input with a decompressed content8680 with no Content-Type8681 behaves like decompress middleware8682 replaces input with a decompressed content8683 with collector route under relative url8684 behaves like decompress middleware8685 replaces input with a decompressed content8686 with some other route8687 keeps the original input8688 payload is too large8689 reads only limited size8690Users::Callout8691 behaves like having unique enum values8692 has unique values in "feature_name"8693 validations8694 is expected to validate that :feature_name cannot be empty/falsy8695 is expected to validate that :feature_name is unique within the scope of :user_id8696 scopes8697 .with_feature_name8698 returns user callouts for the given feature name only8699Gitlab::Database::Partitioning::ReplaceTable#perform8700 replaces the current table, archiving the old8701 transfers the primary key sequence to the replacement table8702 renames the primary key constraints to match the new table names8703 when the table has partitions8704 renames the partitions to match the new table name8705 renames the primary key constraints to match the new partition names8706Gitlab::Git::Util8707 #count_lines8708 counts 0 lines in ""8709 counts 1 lines in "foo"8710 counts 1 lines in "foo\n"8711 counts 2 lines in "foo\n\n"8712Ci::CreateCrossProjectPipelineWorker8713 #perform8714 when bridge exists8715 calls cross project pipeline creation service8716 when bridge does not exist8717 does nothing8718Gitlab::WithRequestStore8719 #with_request_store8720 starts a request store and yields control8721 only starts a request store once when nested8722Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent8723 is expected to respond to #name8724 is expected to respond to #identifier8725 is expected to respond to #object_type8726 is expected to respond to #timestamp_projection8727 is expected to respond to #apply_query_customization8728Gitlab::Ci::Status::Running8729 #text8730 is expected to eq "running"8731 #label8732 is expected to eq "running"8733 #icon8734 is expected to eq "status_running"8735 #favicon8736 is expected to eq "favicon_status_running"8737 #group8738 is expected to eq "running"8739 #details_path8740 is expected to be nil8741StripAttribute8742 .strip_attributes!8743 is expected to respond to #strip_attributes!8744 is expected to include :title8745 #strip_attributes!8746 is expected to eq "8.3"8747Gitlab::WordDiff::Segments::Chunk8748 #removed?8749 is expected to be falsey8750 when line starts with "-"8751 is expected to be truthy8752 #added?8753 is expected to be falsey8754 when line starts with "+"8755 is expected to be truthy8756 #to_s8757 removes lead string modifier8758 when chunk is empty8759 is expected to eq ""8760 #length8761 is expected to eq 58762Gitlab::Ci::Config::Normalizer::MatrixStrategy8763 .applies_to?8764 with hash that has :matrix key8765 is expected to be truthy8766 with hash that does not have :matrix key8767 is expected to be falsey8768 with a number8769 is expected to be falsey8770 .build_from8771 is expected to eq 48772 has attributes8773 has parallelized name8774RuboCop::Cop::Migration::BackgroundMigrationRecord8775 in migration8776 adds an offense if inheriting from ActiveRecord::Base8777 adds an offense if create dynamic model from ActiveRecord::Base8778 adds an offense if inheriting from ::ActiveRecord::Base8779 outside of a migration8780 does not register any offenses8781Flutter.gitlab-ci.yml8782 the created pipeline8783 creates test and code_quality jobs8784Groups::UpdateStatisticsService8785 #execute8786 when group is nil8787 does nothing8788 with an existing group8789 when namespace statistics exists for the group8790 uses the existing statistics and refreshes them8791 when namespace statistics does not exist for the group8792 creates the statistics and refreshes them8793Sidebars::Projects::Menus::ScopeMenu8794 #container_html_options8795 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007fc7b2d9dfd8 @expected={:class=>"shortcuts-project rspec-project-link"}>8796 #extra_nav_link_html_options8797 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007fc7b1f9ba20 @expected={:class=>"context-header has-tooltip", :title=>"project1806"}>8798Integrations::HarborSerializers::ArtifactEntity8799 returns the Harbor artifact8800RuboCop::Cop::RSpec::TopLevelDescribePath8801 when the describe is in a shared example8802 with shared_examples8803 registers no offenses8804 with shared_examples_for8805 registers no offenses8806 when the file ends in _spec.rb8807 registers no offenses8808 when the file is a frontend fixture8809 registers no offenses8810 when the describe is at the top level8811 marks the describe as offending8812OptionallySearch8813 .search8814 raises NotImplementedError8815 .optionally_search8816 when a query is given8817 delegates to the search method8818 when an option is provided8819 delegates to the search method8820 when no query is given8821 returns the current relation8822 when an empty query is given8823 returns the current relation8824Gitlab::PhabricatorImport::Conduit::Client8825 #get8826 performs and parses a request8827 wraps request errors in an `ApiError`8828 raises response error8829Gitlab::Database::LoadBalancing::SrvResolver8830 #address_for8831 when additional section contains an A record8832 returns an IP4 address8833 when additional section contains an AAAA record8834Net::DNS unsupported record type: uninitialized constant Net::DNS::RR::OPT8835Did you mean? Net::DNS::OPT8836 returns an IP6 address8837 when additional section does not contain A nor AAAA records8838 when host resolves to an A record8839 returns an IP4 address8840 when host does resolves to an AAAA record8841Net::DNS unsupported record type: uninitialized constant Net::DNS::RR::OPT8842Did you mean? Net::DNS::OPT8843 returns an IP6 address8844Packages::Rubygems::Metadatum8845 relationships8846 is expected to belong to package required: false8847 validations8848 is expected to validate that :package cannot be empty/falsy8849 #rubygems_package_type8850 will not allow a package with a different package_type8851Types::AwardEmojis::AwardEmojiType8852 is expected to eq "AwardEmoji"8853 is expected to require graphql authorizations :read_emoji8854 is expected to have graphql fields :description, :unicode_version, :emoji, :name, :unicode, and :user8855Types::CiConfiguration::Sast::AnalyzersEntityType8856 is expected to eq "SastCiConfigurationAnalyzersEntity"8857 is expected to have graphql fields :name, :label, :enabled, :description, and :variables8858Gitlab::Kubernetes::Kubeconfig::Entry::Context8859 #to_h8860 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}8861 with a namespace8862 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}8863RuboCop::Cop::SafeParams8864 flags the merged params as an argument of url_for8865 flags the merged params arg as an argument of url_for8866 does not flag other argument of url_for8867 flags the params as an argument of url_for8868Types::Packages::PackageBaseType8869 is expected to eq "Represents a package in the Package Registry"8870 is expected to require graphql authorizations :read_package8871 includes all expected fields8872Ci::BridgePresenter8873 presents information about recoverable state8874 presents the detailed status for the user8875Gitlab::Ci::Config::Entry::Caches8876 #valid?8877 with an empty hash as cache8878 is valid8879 when configuration is valid with a single cache8880 is valid8881 when configuration is valid with multiple caches8882 is valid8883 when configuration is not a Hash or Array8884 is invalid8885 when entry values contain more than four caches8886 is invalid8887Resolvers::TopicsResolver8888 #resolve8889 finds all topics8890 with search8891 searches environment by name8892 when the search term does not match any topic8893 is empty8894Gitlab::GrapeLogging::Loggers::PerfLogger8895 .parameters8896 when no performance data present8897 is expected not to include {:redis_calls => 1}8898 when performance data present8899 is expected to include {:redis_calls => 1}8900Sidebars::Projects::Menus::WikiMenu8901 does not contain any sub menu8902 #render?8903 when user can access project wiki8904 returns true8905 when user cannot access project wiki8906 returns false8907Sidebars::Projects::Menus::SnippetsMenu8908 #render?8909 when user cannot access snippets8910 returns false8911 when user can access snippets8912 returns true8913Types::RangeInputType8914 follows expected subtyping relationships for instances8915 follows expected subtyping relationships for classes8916 parameterized on Integer8917 accepts start and end8918 rejects inverted ranges8919InstanceMetadataPolicy8920 for any logged-in user8921 is expected to be allowed :read_instance_metadata8922 for anonymous users8923 is expected not to be allowed :read_instance_metadata8924Types::Ci::Config::StageType8925 is expected to eq "CiConfigStage"8926 exposes the expected fields8927Gitlab::Email::Message::InProductMarketing::Create8928 public methods8929 series: 08930 returns value for series8931 series: 18932 returns value for series8933 series: 28934 returns value for series8935Types::PrometheusAlertType8936 is expected to eq "PrometheusAlert"8937 has the expected fields8938 is expected to require graphql authorizations :read_prometheus_alerts8939processing of SAMLResponse in dependencies8940 can extract AuthnContextClassRef from SAMLResponse param8941Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns8942 builds array column names8943 when no columns are given8944 is expected to raise /No array columns were given/8945 when Arel AS node is given as input8946 works with Arel AS nodes8947DiscussionNote8948 #to_ability_name8949 is expected to eq "note"8950Types::AlertManagement::DomainFilterEnum8951 is expected to eq "AlertManagementDomainFilter"8952 exposes all the severity values8953Gitlab::ApplicationRateLimiter::BaseStrategy8954 #increment8955 raises NotImplementedError8956 #read8957 raises NotImplementedError8958Types::Tree::TreeType8959 is expected to eq "Tree"8960 is expected to have graphql fields :trees, :submodules, :blobs, and :last_commit8961OmniAuth::Strategies::SAML8962 POST /users/auth/saml8963 redirects to the provider login page8964 stores request ID during request phase8965API::Validations::Validators::Absence8966 empty param8967 does not raise a validation error8968 invalid parameters8969 raises a validation error8970Gitlab::QueryLimiting::ActiveSupportSubscriber8971 #sql8972 increments the number of executed SQL queries8973 when the query is actually a rails cache hit8974 does not increment the number of executed SQL queries8975Admin::ApplicationSettings::SettingsHelper8976 #inactive_projects_deletion_data8977 has the expected data8978Types::Ci::TestSuiteType8979 is expected to eq "TestSuite"8980 contains attributes related to a pipeline test suite8981Prometheus::CleanupMultiprocDirService8982 #execute8983 when `multiprocess_files_dir` is defined8984 removes old metrics8985 when `multiprocess_files_dir` is not defined8986 does not remove any files8987Types::PermissionTypes::Ci::Runner8988 is expected to have graphql field :delete_runner8989API::Integrations::Slack::Events::UrlVerification8990 .call8991 returns the challenge8992Gitlab::Kubernetes::RoleBinding#generate8993 builds a Kubeclient Resource8994Types::Packages::Helm::MetadataType8995 is expected to eq "PackageHelmMetadataType"8996 includes helm json fields8997Types::PermissionTypes::MergeRequest8998 is expected to have graphql fields :read_merge_request, :admin_merge_request, :update_merge_request, :create_note, :push_to_source_branch, :remove_source_branch, :cherry_pick_on_current_merge_request, :revert_on_current_merge_request, and :can_merge8999Gitlab::Cluster::PumaWorkerKillerObserver9000 #callback9001 increments timeout counter9002Spam::Concerns::HasSpamActionResponseFields9003 #with_spam_action_response_fields9004 merges in spam action fields from spammable9005Types::Packages::PackageGroupSortEnum9006 exposes all package group sort values9007Types::Ci::PipelineStatusEnum9008 exposes all pipeline states9009Knapsack report was generated. Preview:9010{9011 "spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb": 432.1319669280001,9012 "spec/services/quick_actions/interpret_service_spec.rb": 184.86150524000004,9013 "spec/models/concerns/ci/has_status_spec.rb": 186.01414856700012,9014 "spec/services/ci/create_downstream_pipeline_service_spec.rb": 149.04158371099948,9015 "spec/services/todo_service_spec.rb": 104.75825936399997,9016 "spec/policies/group_policy_spec.rb": 50.18795015700016,9017 "spec/lib/banzai/filter/references/issue_reference_filter_spec.rb": 75.95384919700064,9018 "spec/models/commit_status_spec.rb": 47.469245950000186,9019 "spec/lib/banzai/filter/references/commit_reference_filter_spec.rb": 54.14236546000029,9020 "spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb": 59.74388963799993,9021 "spec/models/ci/bridge_spec.rb": 23.068457604000287,9022 "spec/finders/todos_finder_spec.rb": 46.13270720699984,9023 "spec/lib/gitlab/bitbucket_server_import/importer_spec.rb": 44.85437852499945,9024 "spec/services/incident_management/timeline_events/update_service_spec.rb": 37.86066570499952,9025 "spec/graphql/mutations/merge_requests/update_spec.rb": 36.63126541300062,9026 "spec/lib/gitlab/data_builder/push_spec.rb": 31.88614423800027,9027 "spec/lib/gitlab/contributions_calendar_spec.rb": 36.88530023400017,9028 "spec/lib/gitlab/tree_summary_spec.rb": 24.46500748100061,9029 "spec/models/pages_domain_spec.rb": 9.311499452000135,9030 "spec/models/notification_recipient_spec.rb": 24.40332467799999,9031 "spec/services/search_service_spec.rb": 22.058330591000413,9032 "spec/models/concerns/integrations/has_data_fields_spec.rb": 26.577549460999762,9033 "spec/models/projects/build_artifacts_size_refresh_spec.rb": 19.404445116000716,9034 "spec/models/list_spec.rb": 20.74969166200026,9035 "spec/serializers/pipeline_details_entity_spec.rb": 19.327575274000083,9036 "spec/workers/packages/debian/process_changes_worker_spec.rb": 19.052202560000296,9037 "spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb": 18.568555879000087,9038 "spec/lib/gitlab/data_builder/issuable_spec.rb": 17.431224683000437,9039 "spec/models/incident_management/issuable_escalation_status_spec.rb": 5.914959910999642,9040 "spec/policies/issuable_policy_spec.rb": 15.946698479999213,9041 "spec/lib/gitlab/fake_application_settings_spec.rb": 4.150228927000171,9042 "spec/policies/project_snippet_policy_spec.rb": 7.632896029999756,9043 "spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb": 10.647378828,9044 "spec/services/merge_requests/conflicts/resolve_service_spec.rb": 18.78195621099985,9045 "spec/views/projects/_home_panel.html.haml_spec.rb": 16.523796897000466,9046 "spec/services/projects/git_deduplication_service_spec.rb": 15.349131895999562,9047 "spec/services/projects/container_repository/cleanup_tags_service_spec.rb": 11.04861788800008,9048 "spec/lib/gitlab/import_export/merge_request_parser_spec.rb": 13.443260244000157,9049 "spec/services/ci/delete_unit_tests_service_spec.rb": 16.263373390999732,9050 "spec/services/merge_requests/get_urls_service_spec.rb": 15.84270763099994,9051 "spec/models/alert_management/http_integration_spec.rb": 7.0929682980004145,9052 "spec/graphql/mutations/design_management/upload_spec.rb": 14.075744034999843,9053 "spec/finders/packages/build_infos_finder_spec.rb": 6.87476783800048,9054 "spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb": 14.174473076999675,9055 "spec/models/performance_monitoring/prometheus_dashboard_spec.rb": 7.970210385000428,9056 "spec/graphql/mutations/releases/create_spec.rb": 11.268118177999895,9057 "spec/lib/gitlab/github_import/representation/diff_note_spec.rb": 1.6358937570003036,9058 "spec/lib/gitlab/quick_actions/extractor_spec.rb": 3.0068965989994467,9059 "spec/finders/user_recent_events_finder_spec.rb": 8.199862393999865,9060 "spec/lib/gitlab/encoding_helper_spec.rb": 2.7779595700003483,9061 "spec/lib/gitlab/redis/cache_spec.rb": 2.003919632999896,9062 "spec/finders/autocomplete/move_to_project_finder_spec.rb": 10.035224343000664,9063 "spec/policies/award_emoji_policy_spec.rb": 10.635846807000235,9064 "spec/lib/gitlab/logger_spec.rb": 1.6356108059999315,9065 "spec/models/merge_request/metrics_spec.rb": 7.535984822000501,9066 "spec/models/protected_tag_spec.rb": 6.044740295000338,9067 "spec/services/projects/open_issues_count_service_spec.rb": 9.166586573999666,9068 "spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb": 5.70700142700025,9069 "spec/services/todos/destroy/confidential_issue_service_spec.rb": 8.812144177000846,9070 "spec/lib/gitlab/email/receiver_spec.rb": 5.108608113000628,9071 "spec/services/wiki_pages/destroy_service_spec.rb": 7.637093827000172,9072 "spec/services/issues/reorder_service_spec.rb": 6.457376466999449,9073 "spec/lib/gitlab/regex_requires_app_spec.rb": 2.9904923609992693,9074 "spec/graphql/mutations/incident_management/timeline_event/update_spec.rb": 6.116009168999881,9075 "spec/lib/gitlab/middleware/same_site_cookies_spec.rb": 1.2102607169999828,9076 "spec/lib/gitlab/ci/trace/archive_spec.rb": 5.878768110999772,9077 "spec/models/prometheus_alert_event_spec.rb": 3.5949281140001403,9078 "spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb": 2.4023150259999966,9079 "spec/models/merge_request_reviewer_spec.rb": 6.813913773000422,9080 "spec/lib/gitlab/slash_commands/run_spec.rb": 5.921784576999926,9081 "spec/views/projects/commits/_commit.html.haml_spec.rb": 5.410391984999478,9082 "spec/models/design_management/action_spec.rb": 3.5224982910003746,9083 "spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb": 1.363357052999163,9084 "spec/lib/gitlab/ci/build/rules_spec.rb": 2.016384501000175,9085 "spec/policies/packages/policies/project_policy_spec.rb": 3.9319394029998875,9086 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 3.002320569999938,9087 "spec/lib/gitlab/ci/config/entry/image_spec.rb": 1.4506975639997108,9088 "spec/models/integrations/custom_issue_tracker_spec.rb": 1.7096637309996368,9089 "spec/serializers/group_child_serializer_spec.rb": 6.779619038000419,9090 "spec/uploaders/packages/composer/cache_uploader_spec.rb": 3.7665167079994717,9091 "spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb": 3.683206245999827,9092 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb": 4.598791221000283,9093 "spec/services/todos/destroy/design_service_spec.rb": 8.41690407399983,9094 "spec/helpers/ci/builds_helper_spec.rb": 4.284244409999701,9095 "spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb": 6.331994708999446,9096 "spec/tooling/lib/tooling/find_codeowners_spec.rb": 1.3614225330002228,9097 "spec/workers/ci/cancel_pipeline_worker_spec.rb": 4.516452118000416,9098 "spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb": 1.7499654370003555,9099 "spec/lib/gitlab/diff/parser_spec.rb": 1.4208492269999624,9100 "spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb": 5.713041416000124,9101 "spec/lib/gitlab/database/partitioning/time_partition_spec.rb": 0.8255929939996349,9102 "spec/graphql/mutations/boards/lists/update_spec.rb": 1.782873483000003,9103 "spec/models/blob_viewer/base_spec.rb": 1.5289311670003372,9104 "spec/services/projects/create_from_template_service_spec.rb": 3.3676927750002505,9105 "spec/models/protected_branch/push_access_level_spec.rb": 2.8818889020003553,9106 "spec/policies/namespaces/user_namespace_policy_spec.rb": 2.6357575640004143,9107 "spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb": 3.6807556470002964,9108 "spec/models/work_items/type_spec.rb": 3.3355619180001668,9109 "spec/services/security/ci_configuration/sast_iac_create_service_spec.rb": 4.154091632000018,9110 "spec/lib/gitlab/health_checks/redis/sessions_check_spec.rb": 0.8817399979998299,9111 "spec/rubocop/cop/graphql/descriptions_spec.rb": 1.2637780830000338,9112 "spec/workers/remove_unaccepted_member_invites_worker_spec.rb": 3.3344776889998684,9113 "spec/models/integrations/chat_message/push_message_spec.rb": 1.2968116590000136,9114 "spec/lib/gitlab/rack_attack_spec.rb": 1.069993560000512,9115 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 0.4218655909999143,9116 "spec/lib/gitlab/ci/templates/Jobs/sast_iac_latest_gitlab_ci_yaml_spec.rb": 3.244540087999667,9117 "spec/graphql/mutations/labels/create_spec.rb": 2.2907975560001432,9118 "spec/policies/clusters/instance_policy_spec.rb": 2.811393027000122,9119 "spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb": 0.5467682990001776,9120 "spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb": 2.1843019560001267,9121 "spec/lib/bitbucket/representation/repo_spec.rb": 0.9933921970005031,9122 "spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb": 5.069491747000029,9123 "spec/services/design_management/move_designs_service_spec.rb": 1.9607537269994282,9124 "spec/lib/gitlab/ci/runner_instructions_spec.rb": 1.2684648720005498,9125 "spec/workers/container_expiration_policy_worker_spec.rb": 3.6302076110005146,9126 "spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb": 2.9376945249996425,9127 "spec/lib/gitlab/ci/config/entry/rules_spec.rb": 0.7010188849999395,9128 "spec/lib/gitlab/ci/pipeline/logger_spec.rb": 1.3616640130003361,9129 "spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb": 3.948099211999761,9130 "spec/lib/gitlab/ci/build/releaser_spec.rb": 0.7035619939997559,9131 "spec/workers/propagate_integration_inherit_worker_spec.rb": 2.3767215979996763,9132 "spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb": 0.8499217799999315,9133 "spec/helpers/lazy_image_tag_helper_spec.rb": 2.7580934930001604,9134 "spec/lib/gitlab/cycle_analytics/summary/value_spec.rb": 0.5717801360005978,9135 "spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb": 4.160884351999812,9136 "spec/serializers/merge_request_user_entity_spec.rb": 3.5258708600003956,9137 "spec/lib/gitlab/ci/config/entry/imageable_spec.rb": 0.5434394499998234,9138 "spec/workers/stuck_export_jobs_worker_spec.rb": 2.416161844999806,9139 "spec/services/todos/destroy/destroyed_issuable_service_spec.rb": 1.9628026660002433,9140 "spec/services/ci/create_pipeline_service/merge_requests_spec.rb": 1.8657692859997042,9141 "spec/workers/external_service_reactive_caching_worker_spec.rb": 3.4054605620003713,9142 "spec/lib/gitlab/prometheus/adapter_spec.rb": 1.3898051500000292,9143 "spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb": 1.9738273559996742,9144 "spec/helpers/x509_helper_spec.rb": 3.1166050990004805,9145 "spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb": 3.6898830250001993,9146 "spec/workers/hashed_storage/project_migrate_worker_spec.rb": 3.4695223560001978,9147 "spec/lib/release_highlights/validator/entry_spec.rb": 0.8217195429997446,9148 "spec/lib/gitlab/import_export/lfs_saver_spec.rb": 3.0350702570003705,9149 "spec/lib/gitlab/avatar_cache_spec.rb": 0.469774975999826,9150 "spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb": 1.5025550300006216,9151 "spec/services/customer_relations/contacts/create_service_spec.rb": 1.5901483910001843,9152 "spec/views/events/event/_push.html.haml_spec.rb": 1.9559835069994733,9153 "spec/models/users/credit_card_validation_spec.rb": 1.8345785089995843,9154 "spec/models/concerns/batch_nullify_dependent_associations_spec.rb": 3.8029579750000266,9155 "spec/finders/feature_flags_user_lists_finder_spec.rb": 1.7663174750005055,9156 "spec/workers/merge_requests/resolve_todos_after_approval_worker_spec.rb": 1.8923036129999673,9157 "spec/models/packages/composer/cache_file_spec.rb": 1.1399607130006189,9158 "spec/support_specs/database/prevent_cross_joins_spec.rb": 0.6327786300007574,9159 "spec/workers/rebase_worker_spec.rb": 3.1148442999992767,9160 "spec/serializers/project_access_token_entity_spec.rb": 1.2883044789996347,9161 "spec/services/clusters/integrations/create_service_spec.rb": 1.7497322170002008,9162 "spec/services/bulk_imports/repository_bundle_export_service_spec.rb": 2.5172102249998716,9163 "spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb": 1.4640606829998433,9164 "spec/services/google_cloud/enable_cloud_run_service_spec.rb": 1.592980360999718,9165 "spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb": 0.9963176870005555,9166 "spec/workers/merge_requests/resolve_todos_worker_spec.rb": 2.1108556429999226,9167 "spec/lib/api/entities/merge_request_changes_spec.rb": 1.9213138700006311,9168 "spec/services/packages/debian/update_distribution_service_spec.rb": 2.4252508039999157,9169 "spec/lib/gitlab/diff/line_mapper_spec.rb": 2.287194536000243,9170 "spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb": 1.3931623099997523,9171 "spec/lib/container_registry/registry_spec.rb": 1.0094743660001768,9172 "spec/lib/gitlab/ci/config/entry/jobs_spec.rb": 1.003830655999991,9173 "spec/workers/packages/rubygems/extraction_worker_spec.rb": 1.0120101060001616,9174 "spec/services/todos/allowed_target_filter_service_spec.rb": 2.166051437000533,9175 "spec/serializers/feature_flag_serializer_spec.rb": 2.726374525999745,9176 "spec/rubocop/cop/code_reuse/worker_spec.rb": 0.5970039339999857,9177 "spec/workers/projects/import_export/relation_export_worker_spec.rb": 2.330474172999857,9178 "spec/lib/gitlab/view/presenter/base_spec.rb": 1.770391815000039,9179 "spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb": 1.3888265499999761,9180 "spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 2.3368465319999814,9181 "spec/models/approval_spec.rb": 2.086609054999826,9182 "spec/lib/gitlab/sample_data_template_spec.rb": 1.2205916860002617,9183 "spec/lib/gitlab/ci/config/entry/tags_spec.rb": 0.5962806340003226,9184 "spec/lib/gitlab/sql/union_spec.rb": 0.8329718020004293,9185 "spec/services/terraform/states/trigger_destroy_service_spec.rb": 1.6000542210003914,9186 "spec/serializers/merge_requests/pipeline_entity_spec.rb": 1.267462462000367,9187 "spec/helpers/startupjs_helper_spec.rb": 0.6744330569999875,9188 "spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb": 1.497642260000248,9189 "spec/lib/gitlab/metrics/dashboard/stages/url_validator_spec.rb": 1.9148273010005141,9190 "spec/lib/gitlab/ci/reports/security/scan_spec.rb": 1.0428926429995045,9191 "spec/rubocop/cop/graphql/id_type_spec.rb": 0.7729479879999417,9192 "spec/services/ci/build_unschedule_service_spec.rb": 1.7558556149997457,9193 "spec/serializers/ci/downloadable_artifact_entity_spec.rb": 2.190271586000563,9194 "spec/lib/gitlab/ci/trace/section_parser_spec.rb": 0.6864021960000173,9195 "spec/lib/gitlab/ci/status/build/created_spec.rb": 1.6748459730006289,9196 "spec/lib/sidebars/menu_item_spec.rb": 0.25766564599962294,9197 "spec/graphql/resolvers/ci/jobs_resolver_spec.rb": 1.3481306650000988,9198 "spec/lib/gitlab/ci/templates/MATLAB_spec.rb": 1.5155309190004118,9199 "spec/models/issuable_severity_spec.rb": 1.0058225759994457,9200 "spec/services/webauthn/register_service_spec.rb": 0.5052983630002927,9201 "spec/validators/import/gitlab_projects/remote_file_validator_spec.rb": 0.32481361999998626,9202 "spec/models/design_management/design_action_spec.rb": 0.6173712330000853,9203 "spec/services/keys/last_used_service_spec.rb": 0.5189860009995755,9204 "spec/workers/ci/retry_pipeline_worker_spec.rb": 1.763491516000613,9205 "spec/graphql/types/commit_action_mode_enum_spec.rb": 0.862176468999678,9206 "spec/helpers/pagination_helper_spec.rb": 0.5752488460002496,9207 "spec/models/uploads/local_spec.rb": 1.398966279999513,9208 "spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb": 1.2186150859997724,9209 "spec/graphql/types/projects/service_type_enum_spec.rb": 0.4746309359998122,9210 "spec/graphql/types/ci/config/include_type_spec.rb": 0.2409453680002116,9211 "spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb": 0.8768124779999198,9212 "spec/graphql/resolvers/project_resolver_spec.rb": 1.5015810900003999,9213 "spec/workers/jira_connect/sync_builds_worker_spec.rb": 0.8044018250002409,9214 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 0.6437903910000387,9215 "spec/models/users/callout_spec.rb": 0.9772624690003795,9216 "spec/lib/gitlab/database/partitioning/replace_table_spec.rb": 0.7366880609997679,9217 "spec/lib/gitlab/git/util_spec.rb": 0.4614307669999107,9218 "spec/workers/ci/create_cross_project_pipeline_worker_spec.rb": 0.6864132560003782,9219 "spec/lib/gitlab/with_request_store_spec.rb": 1.0095322759998453,9220 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb": 0.8818009980004717,9221 "spec/lib/gitlab/ci/status/running_spec.rb": 0.38887914400038426,9222 "spec/models/concerns/strip_attribute_spec.rb": 1.0108140659995115,9223 "spec/lib/gitlab/word_diff/segments/chunk_spec.rb": 0.36701488499966217,9224 "spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb": 0.5655359270003828,9225 "spec/rubocop/cop/migration/background_migration_record_spec.rb": 0.7330080709998583,9226 "spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb": 0.9441596619999473,9227 "spec/services/groups/update_statistics_service_spec.rb": 0.4906375239997942,9228 "spec/lib/sidebars/projects/menus/scope_menu_spec.rb": 0.2294059890000426,9229 "spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb": 0.5561437879996447,9230 "spec/rubocop/cop/rspec/top_level_describe_path_spec.rb": 0.46633886600011465,9231 "spec/models/concerns/optionally_search_spec.rb": 0.6939275650001946,9232 "spec/lib/gitlab/phabricator_import/conduit/client_spec.rb": 0.5135286519998772,9233 "spec/lib/gitlab/database/load_balancing/srv_resolver_spec.rb": 0.5585281180001402,9234 "spec/models/packages/rubygems/metadatum_spec.rb": 0.46449052699972526,9235 "spec/graphql/types/award_emojis/award_emoji_type_spec.rb": 0.17657454300024256,9236 "spec/graphql/types/ci_configuration/sast/analyzers_entity_type_spec.rb": 0.3154674810002689,9237 "spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb": 0.14027087700014818,9238 "spec/rubocop/cop/safe_params_spec.rb": 0.5395749589997649,9239 "spec/graphql/types/packages/package_base_type_spec.rb": 0.15609092600061558,9240 "spec/presenters/ci/bridge_presenter_spec.rb": 1.0598503410001285,9241 "spec/lib/gitlab/ci/config/entry/caches_spec.rb": 0.47543116500037286,9242 "spec/graphql/resolvers/topics_resolver_spec.rb": 0.46443005700075446,9243 "spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb": 0.20782856999994692,9244 "spec/lib/sidebars/projects/menus/wiki_menu_spec.rb": 0.48237637500005803,9245 "spec/lib/sidebars/projects/menus/snippets_menu_spec.rb": 0.571997336000095,9246 "spec/graphql/types/range_input_type_spec.rb": 0.3775536849998389,9247 "spec/policies/instance_metadata_policy_spec.rb": 0.6247940610001024,9248 "spec/graphql/types/ci/config/stage_type_spec.rb": 0.2733544350003285,9249 "spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb": 0.32199884000056045,9250 "spec/graphql/types/prometheus_alert_type_spec.rb": 0.4613715569994383,9251 "spec/dependencies/omniauth_saml_spec.rb": 0.3783202840004378,9252 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 0.45390342799964856,9253 "spec/models/discussion_note_spec.rb": 0.2129299300004277,9254 "spec/graphql/types/alert_management/domain_filter_enum_spec.rb": 0.40963218200067786,9255 "spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb": 0.2930986720002693,9256 "spec/graphql/types/tree/tree_type_spec.rb": 0.2628669160003483,9257 "spec/initializers/100_patch_omniauth_saml_spec.rb": 0.2740619139995033,9258 "spec/lib/api/validations/validators/absence_spec.rb": 0.6235867720006354,9259 "spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb": 0.2819201629999952,9260 "spec/helpers/admin/application_settings/settings_helper_spec.rb": 0.2049581399996896,9261 "spec/graphql/types/ci/test_suite_type_spec.rb": 0.725581671999862,9262 "spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb": 0.17175006400066195,9263 "spec/graphql/types/permission_types/ci/runner_spec.rb": 0.20191268200051127,9264 "spec/lib/api/integrations/slack/events/url_verification_spec.rb": 0.33345180800006347,9265 "spec/lib/gitlab/kubernetes/role_binding_spec.rb": 0.3041938709993701,9266 "spec/graphql/types/packages/helm/metadata_type_spec.rb": 0.33798065900009533,9267 "spec/graphql/types/permission_types/merge_request_spec.rb": 0.37013919499986514,9268 "spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb": 0.35579021600005944,9269 "spec/spam/concerns/has_spam_action_response_fields_spec.rb": 0.4677459260001342,9270 "spec/graphql/types/packages/package_group_sort_enum_spec.rb": 0.6761000870001226,9271 "spec/graphql/types/ci/pipeline_status_enum_spec.rb": 0.395151592999354769272}9273Knapsack global time execution for tests: 41m 09s9274Pending: (Failures listed here are expected and do not affect your suite's status)9275 1) Packages::Composer::CacheUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9276 # No pattern provided, skipping.9277 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89278 2) Packages::Composer::CacheUploader behaves like builds correct paths #relative_path is relative9279 # Path not set, skipping.9280 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409281 3) Packages::Composer::CacheUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9282 # No pattern provided, skipping.9283 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89284 4) Packages::Composer::CacheUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9285 # No pattern provided, skipping.9286 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89287 5) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 9288 # No pattern provided, skipping.9289 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89290 6) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 9291 # No pattern provided, skipping.9292 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89293 7) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 9294 # No pattern provided, skipping.9295 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89296 8) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #relative_path is relative9297 # Path not set, skipping.9298 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409299 9) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 9300 # No pattern provided, skipping.9301 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89302 10) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 9303 # No pattern provided, skipping.9304 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89305 11) Preloaders::UsersMaxAccessLevelInProjectsPreloader preload maximum access level to avoid querying project_authorizations avoids N+1 queries9306 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example9307 # ./spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb:279308 12) MergeRequestUserEntity#as_json performance is linear in the number of merge requests9310 Failure/Error:9311 expect do9312 a = described_class.new(user_a, request: request, merge_request: merge_request_b)9313 b = described_class.new(user_b, request: request, merge_request: merge_request_b)9315 a.as_json9316 b.as_json9317 end.not_to exceed_query_limit(baseline)9318 Expected a maximum of 9 queries, got 20:9319 Query Diff:9320 -----------9321 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...9322 -- (expected: 4, got: 0)9323 WHERE "project_authorizations"."project_id" = 1633 AND "project_authorizations"."user_id" = 2127 GROUP BY "project_authorizations"."user_id"9324 -- (expected: 3, got: 0)9325 WHERE "project_authorizations"."project_id" = 1633 AND "project_authorizations"."user_id" = 2125 GROUP BY "project_authorizations"."user_id"9326 -- (expected: 0, got: 4)9327 WHERE "project_authorizations"."project_id" = 1634 AND "project_authorizations"."user_id" = 2127 GROUP BY "project_authorizations"."user_id"9328 -- (expected: 0, got: 6)9329 WHERE "project_authorizations"."project_id" = 1634 AND "project_authorizations"."user_id" = 2125 GROUP BY "project_authorizations"."user_id"9330 -- (expected: 0, got: 4)9331 WHERE "project_authorizations"."project_id" = 1634 AND "project_authorizations"."user_id" = 2128 GROUP BY "project_authorizations"."user_id"9332 SELECT "merge_requests".* FROM "merge_requests"...9333 -- (expected: 1, got: 0)9334 WHERE "merge_requests"."source_project_id" = 1633 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'9335 -- (expected: 0, got: 2)9336 WHERE "merge_requests"."source_project_id" = 1634 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'9337 SELECT "merge_request_assignees".* FROM "merge_request_assignees"...9338 -- (expected: 1, got: 0)9339 WHERE "merge_request_assignees"."merge_request_id" = 339 AND "merge_request_assignees"."user_id" = 2127 LIMIT 19340 -- (expected: 0, got: 1)9341 WHERE "merge_request_assignees"."merge_request_id" = 340 AND "merge_request_assignees"."user_id" = 2127 LIMIT 19342 -- (expected: 0, got: 1)9343 WHERE "merge_request_assignees"."merge_request_id" = 340 AND "merge_request_assignees"."user_id" = 2128 LIMIT 19344 SELECT "protected_branches".* FROM "protected_branches"...9345 -- (expected: 0, got: 1)9346 WHERE "protected_branches"."project_id" = 16349347 SELECT "approvals".* FROM "approvals"...9348 -- (expected: 0, got: 1)9349 WHERE "approvals"."merge_request_id" = 3409350 # ./spec/serializers/merge_request_user_entity_spec.rb:71:in `block (4 levels) in <top (required)>'9351 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'9352 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9353 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'9354 # ./spec/spec_helper.rb:422:in `block (3 levels) in <top (required)>'9355 # ./lib/gitlab/application_context.rb:56:in `with_raw_context'9356 # ./spec/spec_helper.rb:422:in `block (2 levels) in <top (required)>'9357 # ./spec/spec_helper.rb:265:in `block (2 levels) in <top (required)>'9358 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9359 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9360 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9361 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9362 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9363 13) Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with valid simple params behaves like Update Debian Distribution returns ServiceResponse9364 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example9365 # ./spec/services/packages/debian/update_distribution_service_spec.rb:79366 14) Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with invalid simple params behaves like Update Debian Distribution returns ServiceResponse9367 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example9368 # ./spec/services/packages/debian/update_distribution_service_spec.rb:79369 15) Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with valid components and architectures behaves like Update Debian Distribution returns ServiceResponse9370 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example9371 # ./spec/services/packages/debian/update_distribution_service_spec.rb:79372 16) Packages::Debian::UpdateDistributionService behaves like Debian Update Distribution Service with a Debian project distribution with invalid architectures behaves like Update Debian Distribution returns ServiceResponse9373 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example9374 # ./spec/services/packages/debian/update_distribution_service_spec.rb:79375Failures:9376 1) Ci::CreateDownstreamPipelineService#execute when user can create pipeline in a downstream project when user does not have access to push protected branch of downstream project changes status of the bridge build9377 Failure/Error: expect(bridge.reload).to be_failed9378 expected `#<Ci::Bridge status: "success", finished_at: "2022-08-24 17:30:56.415829000 +0000", trace: nil, creat...l, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 996, stage_id: 676>.failed?` to be truthy, got false9379 # ./spec/services/ci/create_downstream_pipeline_service_spec.rb:717:in `block (4 levels) in <top (required)>'9380 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'9381 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9382 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'9383 # ./spec/spec_helper.rb:422:in `block (3 levels) in <top (required)>'9384 # ./lib/gitlab/application_context.rb:56:in `with_raw_context'9385 # ./spec/spec_helper.rb:422:in `block (2 levels) in <top (required)>'9386 # ./spec/spec_helper.rb:265:in `block (2 levels) in <top (required)>'9387 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9388 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9389 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9390 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9391 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9392 2) 5-Minute-Production-App.gitlab-ci.yml the created pipeline when AWS variables are set pipeline branch is protected does not create a destroy job9393 Failure/Error: expect(build_names).to match_array(%w(build terraform_apply deploy))9394 expected collection contained: ["build", "deploy", "terraform_apply"]9395 actual collection contained: ["build", "deploy", "terraform_apply", "terraform_destroy"]9396 the extra elements were: ["terraform_destroy"]9397 # ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:44:in `block (5 levels) in <top (required)>'9398 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'9399 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9400 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'9401 # ./spec/spec_helper.rb:422:in `block (3 levels) in <top (required)>'9402 # ./lib/gitlab/application_context.rb:56:in `with_raw_context'9403 # ./spec/spec_helper.rb:422:in `block (2 levels) in <top (required)>'9404 # ./spec/spec_helper.rb:265:in `block (2 levels) in <top (required)>'9405 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9406 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9407 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9408 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9409 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9410Finished in 41 minutes 14 seconds (files took 1 minute 23.19 seconds to load)94114061 examples, 2 failures, 16 pending9412Failed examples:9413rspec ./spec/services/ci/create_downstream_pipeline_service_spec.rb:714 # Ci::CreateDownstreamPipelineService#execute when user can create pipeline in a downstream project when user does not have access to push protected branch of downstream project changes status of the bridge build9414rspec ./spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb:43 # 5-Minute-Production-App.gitlab-ci.yml the created pipeline when AWS variables are set pipeline branch is protected does not create a destroy job9415Randomized with seed 114259416Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected9417RSpec exited with 1.9418Retrying the failing examples in a new RSpec process...9419$ gem install junit_merge --no-document --version 0.1.29420Successfully installed nokogiri-1.13.8-x86_64-linux9421Successfully installed junit_merge-0.1.294222 gems installed9423==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.9424Running RSpec command: bin/rspec -Ispec -rspec_helper --color --format documentation --format RspecJunitFormatter --out rspec/junit_rspec-retry.xml --only-failures --pattern "spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb"9425Run options: include {:last_run_status=>"failed"}9426Test environment set up in 0.590204715 seconds94275-Minute-Production-App.gitlab-ci.yml9428 the created pipeline9429 when AWS variables are set9430 pipeline branch is protected9431 does not create a destroy job9432Ci::CreateDownstreamPipelineService#execute9433 when user can create pipeline in a downstream project9434 when user does not have access to push protected branch of downstream project9435 changes status of the bridge build9436Finished in 10.89 seconds (files took 49.1 seconds to load)94372 examples, 0 failures9439Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-14 due to policy9440Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-14 due to policy9442Uploading artifacts...9443coverage/: found 4 matching files and directories 9444crystalball/: found 2 matching files and directories 9445deprecations/: found 7 matching files and directories 9446knapsack/: found 3 matching files and directories 9447rspec/: found 11 matching files and directories 9448WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 9449log/*.log: found 20 matching files and directories 9450WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2929379520/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9451WARNING: Retrying... context=artifacts-uploader error=request redirected9452Uploading artifacts as "archive" to coordinator... 201 Created id=2929379520 responseStatus=201 Created token=hEs3S1549453Uploading artifacts...9454rspec/junit_rspec.xml: found 1 matching files and directories 9455WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2929379520/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9456WARNING: Retrying... context=artifacts-uploader error=request redirected9457Uploading artifacts as "junit" to coordinator... 201 Created id=2929379520 responseStatus=201 Created token=hEs3S1549459Job succeeded