rspec unit pg12 2/22
Passed Started
by
@leetickett

Lee Tickett
1Running with gitlab-runner 15.2.0~beta.17.g34ae4a68 (34ae4a68)2 on green-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 4bq1s9yM3 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-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...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-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...18Running on runner-4bq1s9ym-project-278964-concurrent-0 via runner-4bq1s9ym-private-1656912788-c5189b84...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: 115982, done. 25remote: Counting objects: 100% (115982/115982), done. 26remote: Compressing objects: 100% (81018/81018), done. 27remote: Total 115982 (delta 48513), reused 75495 (delta 30560), pack-reused 0 28Receiving objects: 100% (115982/115982), 108.44 MiB | 30.80 MiB/s, done.29Resolving deltas: 100% (48513/48513), done.31 * [new ref] refs/pipelines/579176392 -> refs/pipelines/57917639232Checking out 204b4379 as refs/merge-requests/91556/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2673336706)...44Downloading artifacts from coordinator... ok id=2673336706 responseStatus=200 OK token=Swv_HxZf45Downloading artifacts for detect-tests (2673336715)...46Downloading artifacts from coordinator... ok id=2673336715 responseStatus=200 OK token=Swv_HxZf47Downloading artifacts for retrieve-tests-metadata (2673336722)...48Downloading artifacts from coordinator... ok id=2673336722 responseStatus=200 OK token=Swv_HxZf49Downloading artifacts for setup-test-env (2673336712)...50Downloading artifacts from coordinator... ok id=2673336712 responseStatus=200 OK token=Swv_HxZf52Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...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.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 9 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 36 seconds.97$ setup_db_praefect98SELECT pg_catalog.set_config('search_path', '', false);99CREATE DATABASE praefect_test ENCODING 'UTF8';100==> 'setup_db_praefect' succeeded in 0 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 directory109Don't run Bundler as root. Bundler can ask for sudo if it is needed, and110installing your bundle as root will break this application for all non-root111users on this machine.112Using abstract_type 0.0.7113Using concurrent-ruby 1.1.10114Using i18n 1.10.0115Using minitest 5.15.0116Using tzinfo 2.0.4117Using zeitwerk 2.5.4118Using activesupport 6.1.4.7119Using builder 3.2.4120Using erubi 1.10.0121Using mini_portile2 2.8.0122Using racc 1.6.0123Using nokogiri 1.13.6 (x86_64-linux)124Using rails-dom-testing 2.0.3125Using crass 1.0.6126Using loofah 2.16.0127Using rails-html-sanitizer 1.4.2128Using actionview 6.1.4.7129Using rack 2.2.3130Using rack-test 1.1.0131Using actionpack 6.1.4.7132Using ice_nine 0.11.2133Using thread_safe 0.3.6134Using memoizable 0.4.2135Using adamantium 0.2.0136Using public_suffix 4.0.6137Using addressable 2.7.0138Using ast 2.4.2139Using binding_ninja 0.2.3140Using bundler 2.3.15141Using charlock_holmes 0.7.7142Using coderay 1.1.2143Using equalizer 0.0.11144Using concord 0.1.5145Using diff-lcs 1.3146Using dotenv 2.7.6147Using escape_utils 1.2.1148Using factory_bot 5.0.2149Using multipart-post 2.1.1150Using faraday 1.0.1151Using ffi 1.15.3152Using json 2.5.1153Using gemojione 3.3.0154Using mini_mime 1.0.2155Using rugged 1.2.0156Using github-linguist 7.12.1157Using github-markup 1.7.0158Using mime-types-data 3.2020.1104159Using mime-types 3.3.1160Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1161Using rouge 3.27.0162Using sanitize 6.0.0163Using stringex 2.8.5164Using gitlab-gollum-lib 4.2.7.10.gitlab.2165Using google-protobuf 3.19.1 (x86_64-linux)166Using googleapis-common-protos-types 1.3.0167Using grpc 1.42.0 (x86_64-linux)168Using opentracing 0.5.0169Using thrift 0.15.0170Using jaeger-client 1.1.0171Using pg_query 2.1.1172Using redis 4.4.0173Using gitlab-labkit 0.23.0174Using rubyzip 2.3.2175Using thor 1.1.0176Using tomlrb 2.0.1177Using with_env 1.1.0178Using rexml 3.2.5179Using xml-simple 1.1.9180Using gitlab-license_finder 6.14.2.1181Using gitlab-markup 1.7.1182Using grpc-tools 1.42.0183Using sawyer 0.8.2184Using octokit 4.20.0185Using reverse_markdown 1.4.0186Using licensee 9.14.1187Using method_source 0.9.2188Using msgpack 1.3.3189Using optimist 3.0.1190Using parallel 1.19.2191Using parser 3.0.3.2192Using procto 0.0.3193Using unparser 0.4.7194Using proc_to_ast 0.1.0195Using pry 0.12.2196Using rainbow 3.0.0197Using rbtrace 0.4.14198Using rdoc 6.3.2199Using regexp_parser 1.8.1200Using rspec-support 3.8.0201Using rspec-core 3.8.0202Using rspec-expectations 3.8.3203Using rspec-mocks 3.8.0204Using rspec 3.8.0205Using rspec-parameterized 0.4.2206Using rubocop-ast 0.2.0207Using ruby-progressbar 1.10.1208Using unicode-display_width 1.7.0209Using rubocop 0.86.0210Using sentry-raven 3.0.4211Using timecop 0.9.1212Bundle complete! 22 Gemfile dependencies, 100 gems now installed.213Gems in the groups 'production' and 'development' were not installed.214Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`215Checking gitaly-ruby Gemfile...216Checking gitaly-ruby bundle...217The Gemfile's dependencies are satisfied218Trying to connect to gitaly: ................................... OK219Trying to connect to gitaly2: ........................................................... OK220Starting Praefect with in-memory election strategyTrying to connect to praefect: ......... OK221==> 'scripts/gitaly-test-spawn' succeeded in 12 seconds.222$ source ./scripts/rspec_helpers.sh223$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"224SKIP_FLAKY_TESTS_AUTOMATICALLY: true225RETRY_FAILED_TESTS_IN_NEW_PROCESS: true226KNAPSACK_GENERATE_REPORT: true227FLAKY_RSPEC_GENERATE_REPORT: true228KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,events,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb229KNAPSACK_LOG_LEVEL: debug230KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_2_22_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_2_22_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_2_22_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_2_22_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_2_22_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/services/notification_service_spec.rb239spec/models/event_spec.rb240spec/lib/banzai/filter/repository_link_filter_spec.rb241spec/lib/gitlab/ci/config_spec.rb242spec/models/integrations/microsoft_teams_spec.rb243spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb244spec/services/packages/debian/generate_distribution_service_spec.rb245spec/services/merge_requests/merge_to_ref_service_spec.rb246spec/lib/gitlab/database/consistency_checker_spec.rb247spec/lib/gitlab/bare_repository_import/importer_spec.rb248spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb249spec/models/integrations/hangouts_chat_spec.rb250spec/lib/gitlab/ci/status/build/failed_spec.rb251spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb252spec/lib/gitlab/url_sanitizer_spec.rb253spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb254spec/services/push_event_payload_service_spec.rb255spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb256spec/models/list_spec.rb257spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb258spec/models/operations/feature_flag_spec.rb259spec/serializers/environment_serializer_spec.rb260spec/services/alert_management/create_alert_issue_service_spec.rb261spec/lib/gitlab/import_export/project/object_builder_spec.rb262spec/support_specs/helpers/stub_feature_flags_spec.rb263spec/models/wiki_page/meta_spec.rb264spec/workers/process_commit_worker_spec.rb265spec/models/concerns/cache_markdown_field_spec.rb266spec/finders/members_finder_spec.rb267spec/models/dev_ops_report/metric_spec.rb268spec/lib/gitlab/json_spec.rb269spec/lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings_spec.rb270spec/lib/gitlab/redis/sidekiq_status_spec.rb271spec/lib/gitlab/ci/variables/builder_spec.rb272spec/services/test_hooks/project_service_spec.rb273spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb274spec/helpers/todos_helper_spec.rb275spec/lib/gitlab/ci/badge/release/metadata_spec.rb276spec/helpers/members_helper_spec.rb277spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb278spec/lib/gitlab/quick_actions/extractor_spec.rb279spec/policies/design_management/design_policy_spec.rb280spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb281spec/services/merge_requests/request_attention_service_spec.rb282spec/lib/gitlab/exclusive_lease_spec.rb283spec/services/issues/export_csv_service_spec.rb284spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb285spec/services/snippets/bulk_destroy_service_spec.rb286spec/services/import/github_service_spec.rb287spec/lib/gitlab/zentao/client_spec.rb288spec/serializers/ci/dag_pipeline_entity_spec.rb289spec/services/merge_requests/resolved_discussion_notification_service_spec.rb290spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb291spec/finders/clusters/agents_finder_spec.rb292spec/lib/gitlab/template_parser/ast_spec.rb293spec/lib/banzai/filter/references/design_reference_filter_spec.rb294spec/lib/gitaly/server_spec.rb295spec/models/ci/variable_spec.rb296spec/services/draft_notes/create_service_spec.rb297spec/workers/repository_check/batch_worker_spec.rb298spec/models/concerns/require_email_verification_spec.rb299spec/services/issues/reorder_service_spec.rb300spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb301spec/lib/api/support/git_access_actor_spec.rb302spec/models/users/in_product_marketing_email_spec.rb303spec/lib/gitlab/import_export/base/relation_factory_spec.rb304spec/views/notify/pipeline_failed_email.html.haml_spec.rb305spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb306spec/services/groups/update_shared_runners_service_spec.rb307spec/lib/gitlab/gitaly_client/object_pool_service_spec.rb308spec/services/packages/conan/search_service_spec.rb309spec/lib/gitlab/utils/override_spec.rb310spec/services/boards/lists/generate_service_spec.rb311spec/models/email_spec.rb312spec/services/clusters/agents/create_service_spec.rb313spec/lib/gitlab/deploy_key_access_spec.rb314spec/lib/gitlab/ci/config/entry/key_spec.rb315spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb316spec/lib/gitlab/ci/pipeline/chain/create_deployments_spec.rb317spec/lib/gitlab/ci/config/external/file/local_spec.rb318spec/models/tree_spec.rb319spec/services/discussions/capture_diff_note_position_service_spec.rb320spec/lib/gitlab/omniauth_initializer_spec.rb321spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb322spec/services/projects/move_lfs_objects_projects_service_spec.rb323spec/finders/packages/go/package_finder_spec.rb324spec/lib/gitlab/git/user_spec.rb325spec/lib/gitlab/ci/reports/security/scanner_spec.rb326spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb327spec/models/users_statistics_spec.rb328spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb329spec/models/group_import_state_spec.rb330spec/models/issue_assignee_spec.rb331spec/serializers/release_serializer_spec.rb332spec/models/packages/build_info_spec.rb333spec/workers/reactive_caching_worker_spec.rb334spec/lib/gitlab/content_security_policy/config_loader_spec.rb335spec/lib/gitlab/diff/parser_spec.rb336spec/services/snippets/count_service_spec.rb337spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb338spec/views/shared/deploy_tokens/_form.html.haml_spec.rb339spec/services/milestones/issues_count_service_spec.rb340spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb341spec/graphql/resolvers/paginated_tree_resolver_spec.rb342spec/services/protected_branches/create_service_spec.rb343spec/graphql/mutations/groups/update_spec.rb344spec/lib/gitlab/metrics/subscribers/external_http_spec.rb345spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb346spec/lib/gitlab/git/conflict/parser_spec.rb347spec/components/pajamas/radio_component_spec.rb348spec/rubocop/formatter/todo_formatter_spec.rb349spec/lib/omni_auth/strategies/jwt_spec.rb350spec/helpers/merge_requests_helper_spec.rb351spec/policies/custom_emoji_policy_spec.rb352spec/helpers/environments_helper_spec.rb353spec/services/git/wiki_push_service/change_spec.rb354spec/lib/gitlab/email/message/in_product_marketing_spec.rb355spec/lib/gitlab/changelog/release_spec.rb356spec/lib/gitlab/safe_request_loader_spec.rb357spec/services/packages/mark_package_for_destruction_service_spec.rb358spec/tasks/gitlab/setup_rake_spec.rb359spec/lib/api/helpers/pagination_strategies_spec.rb360spec/models/packages/cleanup/policy_spec.rb361spec/services/boards/issues/create_service_spec.rb362spec/lib/gitlab/kubernetes/service_account_token_spec.rb363spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb364spec/lib/gitlab/jira_import/labels_importer_spec.rb365spec/models/legacy_diff_discussion_spec.rb366spec/models/protected_branch/push_access_level_spec.rb367spec/models/jira_connect_installation_spec.rb368spec/lib/sidebars/projects/menus/monitor_menu_spec.rb369spec/finders/ci/commit_statuses_finder_spec.rb370spec/lib/gitlab/git/keep_around_spec.rb371spec/lib/gitlab/git/remote_repository_spec.rb372spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb373spec/rubocop/cop/gitlab/event_store_subscriber_spec.rb374spec/graphql/mutations/customer_relations/organizations/update_spec.rb375spec/graphql/resolvers/ci/template_resolver_spec.rb376spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb377spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb378spec/models/system_note_metadata_spec.rb379spec/finders/merge_request/metrics_finder_spec.rb380spec/lib/gitlab/phabricator_import/project_creator_spec.rb381spec/services/branches/create_service_spec.rb382spec/models/concerns/has_user_type_spec.rb383spec/lib/gitlab/github_import/representation/user_spec.rb384spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb385spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb386spec/workers/cluster_provision_worker_spec.rb387spec/services/merge_requests/base_service_spec.rb388spec/lib/gitlab/ci/build/credentials/registry/dependency_proxy_spec.rb389spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb390spec/lib/gitlab/color_schemes_spec.rb391spec/lib/gitlab/kubernetes/rollout_instances_spec.rb392spec/services/projects/fetch_statistics_increment_service_spec.rb393spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb394spec/lib/gitlab/query_limiting/middleware_spec.rb395spec/lib/gitlab/setup_helper/praefect_spec.rb396spec/lib/gitlab/data_builder/feature_flag_spec.rb397spec/lib/gitlab/graphql/generic_tracing_spec.rb398spec/workers/personal_access_tokens/expired_notification_worker_spec.rb399spec/lib/gitlab/graphql/batch_key_spec.rb400spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb401spec/lib/gitlab/ci/config/entry/include/rules_spec.rb402spec/lib/gitlab/memory/jemalloc_spec.rb403spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb404spec/lib/error_tracking/sentry_client_spec.rb405spec/lib/system_check/orphans/repository_check_spec.rb406spec/services/milestones/update_service_spec.rb407spec/models/uploads/fog_spec.rb408spec/lib/error_tracking/collector/payload_validator_spec.rb409spec/rubocop/qa_helpers_spec.rb410spec/presenters/packages/composer/packages_presenter_spec.rb411spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb412spec/graphql/types/release_assets_type_spec.rb413spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb414spec/models/blob_viewer/license_spec.rb415spec/workers/hashed_storage/migrator_worker_spec.rb416spec/workers/namespaces/onboarding_issue_created_worker_spec.rb417spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb418spec/lib/gitlab/checks/project_created_spec.rb419spec/services/discussions/capture_diff_note_positions_service_spec.rb420spec/graphql/types/snippets/blob_action_enum_spec.rb421spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb422spec/graphql/types/color_type_spec.rb423spec/lib/banzai/filter/inline_diff_filter_spec.rb424spec/services/ci/create_pipeline_service/environment_spec.rb425spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb426spec/lib/gitlab/diff/position_collection_spec.rb427spec/lib/gitlab_edition_spec.rb428spec/views/groups/_home_panel.html.haml_spec.rb429spec/workers/mail_scheduler/issue_due_worker_spec.rb430spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb431spec/lib/gitlab/import/set_async_jid_spec.rb432spec/rubocop/cop/gitlab/policy_rule_boolean_spec.rb433spec/lib/gitlab/graphql/known_operations_spec.rb434spec/lib/gitlab/metrics/exporter/metrics_middleware_spec.rb435spec/services/users/saved_replies/update_service_spec.rb436spec/policies/group_deploy_keys_group_policy_spec.rb437spec/helpers/startupjs_helper_spec.rb438spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb439spec/views/projects/runners/_specific_runners.html.haml_spec.rb440spec/workers/wait_for_cluster_creation_worker_spec.rb441spec/lib/gitlab/routing_spec.rb442spec/services/packages/remove_tag_service_spec.rb443spec/services/packages/debian/find_or_create_package_service_spec.rb444spec/rubocop/cop/gitlab/json_spec.rb445spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb446spec/rubocop/cop/graphql/resolver_type_spec.rb447spec/helpers/calendar_helper_spec.rb448spec/services/jira_connect/sync_service_spec.rb449spec/models/user_mentions/snippet_user_mention_spec.rb450spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb451spec/graphql/types/ci_configuration/sast/type_spec.rb452spec/tooling/lib/tooling/test_map_packer_spec.rb453spec/services/google_cloud/enable_cloud_run_service_spec.rb454spec/graphql/types/packages/nuget/metadatum_type_spec.rb455spec/serializers/import/bitbucket_server_provider_repo_entity_spec.rb456spec/models/projects/project_topic_spec.rb457spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb458spec/haml_lint/linter/inline_javascript_spec.rb459spec/graphql/resolvers/ci/runner_status_resolver_spec.rb460spec/services/projects/prometheus/metrics/destroy_service_spec.rb461spec/models/bulk_imports/export_upload_spec.rb462spec/serializers/diff_viewer_entity_spec.rb463spec/graphql/types/custom_emoji_type_spec.rb464spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb465spec/lib/rouge/formatters/html_gitlab_spec.rb466spec/workers/namespaces/onboarding_user_added_worker_spec.rb467spec/serializers/ci/lint/job_entity_spec.rb468spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb469spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb470spec/services/users/repair_ldap_blocked_service_spec.rb471spec/finders/analytics/cycle_analytics/stage_finder_spec.rb472spec/services/ci/process_pipeline_service_spec.rb473spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb474spec/lib/gitlab/ci/reports/security/link_spec.rb475spec/rubocop/cop/scalability/idempotent_worker_spec.rb476spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb477spec/lib/gitlab/ci/config/yaml/tags/resolver_spec.rb478spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb479spec/graphql/types/query_complexity_type_spec.rb480spec/lib/api/entities/ci/job_request/port_spec.rb481spec/lib/gitlab/with_request_store_spec.rb482spec/lib/api/entities/bulk_imports/entity_failure_spec.rb483spec/lib/gitlab/database/migrations/base_background_runner_spec.rb484spec/graphql/types/ci/template_type_spec.rb485spec/lib/gitlab/database/async_indexes_spec.rb486spec/views/help/show.html.haml_spec.rb487spec/services/ci/runners/unregister_runner_service_spec.rb488spec/workers/gitlab/github_import/import_note_worker_spec.rb489spec/dependencies/omniauth_saml_spec.rb490spec/graphql/types/deployment_tier_enum_spec.rb491spec/models/namespace_ci_cd_setting_spec.rb492spec/models/protected_branch/merge_access_level_spec.rb493spec/lib/gitlab/github_import/importer/events/reopened_spec.rb494Filter specs:495Running specs:496Running all node tests without filter497spec/services/notification_service_spec.rb498spec/models/event_spec.rb499spec/lib/banzai/filter/repository_link_filter_spec.rb500spec/lib/gitlab/ci/config_spec.rb501spec/models/integrations/microsoft_teams_spec.rb502spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb503spec/services/packages/debian/generate_distribution_service_spec.rb504spec/services/merge_requests/merge_to_ref_service_spec.rb505spec/lib/gitlab/database/consistency_checker_spec.rb506spec/lib/gitlab/bare_repository_import/importer_spec.rb507spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb508spec/models/integrations/hangouts_chat_spec.rb509spec/lib/gitlab/ci/status/build/failed_spec.rb510spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb511spec/lib/gitlab/url_sanitizer_spec.rb512spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb513spec/services/push_event_payload_service_spec.rb514spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb515spec/models/list_spec.rb516spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb517spec/models/operations/feature_flag_spec.rb518spec/serializers/environment_serializer_spec.rb519spec/services/alert_management/create_alert_issue_service_spec.rb520spec/lib/gitlab/import_export/project/object_builder_spec.rb521spec/support_specs/helpers/stub_feature_flags_spec.rb522spec/models/wiki_page/meta_spec.rb523spec/workers/process_commit_worker_spec.rb524spec/models/concerns/cache_markdown_field_spec.rb525spec/finders/members_finder_spec.rb526spec/models/dev_ops_report/metric_spec.rb527spec/lib/gitlab/json_spec.rb528spec/lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings_spec.rb529spec/lib/gitlab/redis/sidekiq_status_spec.rb530spec/lib/gitlab/ci/variables/builder_spec.rb531spec/services/test_hooks/project_service_spec.rb532spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb533spec/helpers/todos_helper_spec.rb534spec/lib/gitlab/ci/badge/release/metadata_spec.rb535spec/helpers/members_helper_spec.rb536spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb537spec/lib/gitlab/quick_actions/extractor_spec.rb538spec/policies/design_management/design_policy_spec.rb539spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb540spec/services/merge_requests/request_attention_service_spec.rb541spec/lib/gitlab/exclusive_lease_spec.rb542spec/services/issues/export_csv_service_spec.rb543spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb544spec/services/snippets/bulk_destroy_service_spec.rb545spec/services/import/github_service_spec.rb546spec/lib/gitlab/zentao/client_spec.rb547spec/serializers/ci/dag_pipeline_entity_spec.rb548spec/services/merge_requests/resolved_discussion_notification_service_spec.rb549spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb550spec/finders/clusters/agents_finder_spec.rb551spec/lib/gitlab/template_parser/ast_spec.rb552spec/lib/banzai/filter/references/design_reference_filter_spec.rb553spec/lib/gitaly/server_spec.rb554spec/models/ci/variable_spec.rb555spec/services/draft_notes/create_service_spec.rb556spec/workers/repository_check/batch_worker_spec.rb557spec/models/concerns/require_email_verification_spec.rb558spec/services/issues/reorder_service_spec.rb559spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb560spec/lib/api/support/git_access_actor_spec.rb561spec/models/users/in_product_marketing_email_spec.rb562spec/lib/gitlab/import_export/base/relation_factory_spec.rb563spec/views/notify/pipeline_failed_email.html.haml_spec.rb564spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb565spec/services/groups/update_shared_runners_service_spec.rb566spec/lib/gitlab/gitaly_client/object_pool_service_spec.rb567spec/services/packages/conan/search_service_spec.rb568spec/lib/gitlab/utils/override_spec.rb569spec/services/boards/lists/generate_service_spec.rb570spec/models/email_spec.rb571spec/services/clusters/agents/create_service_spec.rb572spec/lib/gitlab/deploy_key_access_spec.rb573spec/lib/gitlab/ci/config/entry/key_spec.rb574spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb575spec/lib/gitlab/ci/pipeline/chain/create_deployments_spec.rb576spec/lib/gitlab/ci/config/external/file/local_spec.rb577spec/models/tree_spec.rb578spec/services/discussions/capture_diff_note_position_service_spec.rb579spec/lib/gitlab/omniauth_initializer_spec.rb580spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb581spec/services/projects/move_lfs_objects_projects_service_spec.rb582spec/finders/packages/go/package_finder_spec.rb583spec/lib/gitlab/git/user_spec.rb584spec/lib/gitlab/ci/reports/security/scanner_spec.rb585spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb586spec/models/users_statistics_spec.rb587spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb588spec/models/group_import_state_spec.rb589spec/models/issue_assignee_spec.rb590spec/serializers/release_serializer_spec.rb591spec/models/packages/build_info_spec.rb592spec/workers/reactive_caching_worker_spec.rb593spec/lib/gitlab/content_security_policy/config_loader_spec.rb594spec/lib/gitlab/diff/parser_spec.rb595spec/services/snippets/count_service_spec.rb596spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb597spec/views/shared/deploy_tokens/_form.html.haml_spec.rb598spec/services/milestones/issues_count_service_spec.rb599spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb600spec/graphql/resolvers/paginated_tree_resolver_spec.rb601spec/services/protected_branches/create_service_spec.rb602spec/graphql/mutations/groups/update_spec.rb603spec/lib/gitlab/metrics/subscribers/external_http_spec.rb604spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb605spec/lib/gitlab/git/conflict/parser_spec.rb606spec/components/pajamas/radio_component_spec.rb607spec/rubocop/formatter/todo_formatter_spec.rb608spec/lib/omni_auth/strategies/jwt_spec.rb609spec/helpers/merge_requests_helper_spec.rb610spec/policies/custom_emoji_policy_spec.rb611spec/helpers/environments_helper_spec.rb612spec/services/git/wiki_push_service/change_spec.rb613spec/lib/gitlab/email/message/in_product_marketing_spec.rb614spec/lib/gitlab/changelog/release_spec.rb615spec/lib/gitlab/safe_request_loader_spec.rb616spec/services/packages/mark_package_for_destruction_service_spec.rb617spec/tasks/gitlab/setup_rake_spec.rb618spec/lib/api/helpers/pagination_strategies_spec.rb619spec/models/packages/cleanup/policy_spec.rb620spec/services/boards/issues/create_service_spec.rb621spec/lib/gitlab/kubernetes/service_account_token_spec.rb622spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb623spec/lib/gitlab/jira_import/labels_importer_spec.rb624spec/models/legacy_diff_discussion_spec.rb625spec/models/protected_branch/push_access_level_spec.rb626spec/models/jira_connect_installation_spec.rb627spec/lib/sidebars/projects/menus/monitor_menu_spec.rb628spec/finders/ci/commit_statuses_finder_spec.rb629spec/lib/gitlab/git/keep_around_spec.rb630spec/lib/gitlab/git/remote_repository_spec.rb631spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb632spec/rubocop/cop/gitlab/event_store_subscriber_spec.rb633spec/graphql/mutations/customer_relations/organizations/update_spec.rb634spec/graphql/resolvers/ci/template_resolver_spec.rb635spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb636spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb637spec/models/system_note_metadata_spec.rb638spec/finders/merge_request/metrics_finder_spec.rb639spec/lib/gitlab/phabricator_import/project_creator_spec.rb640spec/services/branches/create_service_spec.rb641spec/models/concerns/has_user_type_spec.rb642spec/lib/gitlab/github_import/representation/user_spec.rb643spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb644spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb645spec/workers/cluster_provision_worker_spec.rb646spec/services/merge_requests/base_service_spec.rb647spec/lib/gitlab/ci/build/credentials/registry/dependency_proxy_spec.rb648spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb649spec/lib/gitlab/color_schemes_spec.rb650spec/lib/gitlab/kubernetes/rollout_instances_spec.rb651spec/services/projects/fetch_statistics_increment_service_spec.rb652spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb653spec/lib/gitlab/query_limiting/middleware_spec.rb654spec/lib/gitlab/setup_helper/praefect_spec.rb655spec/lib/gitlab/data_builder/feature_flag_spec.rb656spec/lib/gitlab/graphql/generic_tracing_spec.rb657spec/workers/personal_access_tokens/expired_notification_worker_spec.rb658spec/lib/gitlab/graphql/batch_key_spec.rb659spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb660spec/lib/gitlab/ci/config/entry/include/rules_spec.rb661spec/lib/gitlab/memory/jemalloc_spec.rb662spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb663spec/lib/error_tracking/sentry_client_spec.rb664spec/lib/system_check/orphans/repository_check_spec.rb665spec/services/milestones/update_service_spec.rb666spec/models/uploads/fog_spec.rb667spec/lib/error_tracking/collector/payload_validator_spec.rb668spec/rubocop/qa_helpers_spec.rb669spec/presenters/packages/composer/packages_presenter_spec.rb670spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb671spec/graphql/types/release_assets_type_spec.rb672spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb673spec/models/blob_viewer/license_spec.rb674spec/workers/hashed_storage/migrator_worker_spec.rb675spec/workers/namespaces/onboarding_issue_created_worker_spec.rb676spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb677spec/lib/gitlab/checks/project_created_spec.rb678spec/services/discussions/capture_diff_note_positions_service_spec.rb679spec/graphql/types/snippets/blob_action_enum_spec.rb680spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb681spec/graphql/types/color_type_spec.rb682spec/lib/banzai/filter/inline_diff_filter_spec.rb683spec/services/ci/create_pipeline_service/environment_spec.rb684spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb685spec/lib/gitlab/diff/position_collection_spec.rb686spec/lib/gitlab_edition_spec.rb687spec/views/groups/_home_panel.html.haml_spec.rb688spec/workers/mail_scheduler/issue_due_worker_spec.rb689spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb690spec/lib/gitlab/import/set_async_jid_spec.rb691spec/rubocop/cop/gitlab/policy_rule_boolean_spec.rb692spec/lib/gitlab/graphql/known_operations_spec.rb693spec/lib/gitlab/metrics/exporter/metrics_middleware_spec.rb694spec/services/users/saved_replies/update_service_spec.rb695spec/policies/group_deploy_keys_group_policy_spec.rb696spec/helpers/startupjs_helper_spec.rb697spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb698spec/views/projects/runners/_specific_runners.html.haml_spec.rb699spec/workers/wait_for_cluster_creation_worker_spec.rb700spec/lib/gitlab/routing_spec.rb701spec/services/packages/remove_tag_service_spec.rb702spec/services/packages/debian/find_or_create_package_service_spec.rb703spec/rubocop/cop/gitlab/json_spec.rbKnapsack report generator started!704DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call705/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here706 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)707Run options: exclude {:quarantine=>true, :level=>"migration"}708Test environment set up in 0.560770593 seconds709NotificationService710 #async711 returns an Async object with the correct parent712 when receiving a public method713 schedules a MailScheduler::NotificationServiceWorker714 when receiving a private method715 raises NoMethodError716 when receiving a non-existent method717 raises NoMethodError718 Keys719 #new_key720 sends email to key owner721 never emails the ghost user722 does not send email to key owner723 GpgKeys724 #new_gpg_key725 sends email to key owner726 never emails the ghost user727 does not send email to key owner728 AccessToken729 #access_token_created730 sends email to the token owner731 when user is not allowed to receive notifications732 does not send email to the token owner733 #access_token_about_to_expire734 sends email to the token owner735 #access_token_expired736 sends email to the token owner737 when user is not allowed to receive notifications738 does not send email to the token owner739 SSH Keys740 #ssh_key_expired741 sends email to the token owner742 when user is not allowed to receive notifications743 does not send email to the token owner744 #ssh_key_expiring_soon745 sends email to the token owner746 when user is not allowed to receive notifications747 does not send email to the token owner748 #unknown_sign_in749 sends email to the user750 #disabled_two_factor751 sends email to the user752 #new_email_address_added753 sends email to the user754 Notes755 issue note756 issue_email_participants757 behaves like no participants are notified758 does not send the email759 behaves like notification with exact metric events760 adds metric event761 do exist and note not confidential762 sends the email763 behaves like notification with exact metric events764 adds metric event765 do exist and note is confidential766 behaves like no participants are notified767 does not send the email768 behaves like notification with exact metric events769 adds metric event770 #new_note771 filters out "mentioned in" notes772 with users773 sends emails to recipients774 emails the note author if they've opted into notifications about their activity775 behaves like project emails are disabled776 sends no emails with project emails disabled777 sends emails to someone778 participating779 by note780 is expected not to have enqueued job781 in project that belongs to a group782 which is a top-level group783 behaves like new note notifications784 sends notifications785 behaves like project emails are disabled786 sends no emails with project emails disabled787 sends emails to someone788 which is a subgroup789 overrides child objects with global level790 behaves like new note notifications791 sends notifications792 confidential issue note793 filters out users that can not read the issue794 on project that belongs to subgroup795 when user is group guest member796 does not email guest user797 issue note mention798 #new_note799 notifies the team members800 notifies parent group members with mention level801 filters out "mentioned in" notes802 behaves like project emails are disabled803 sends no emails with project emails disabled804 sends emails to someone805 when note is confidential806 does not notify users that cannot read note807 project snippet note808 #new_note809 notifies the team members810 personal snippet note811 #new_note812 notifies the participants813 commit note814 #new_note, #perform_enqueued_jobs815 is expected to eq 0816 is expected to eq 0817 is expected to eq 0818 behaves like project emails are disabled819 sends no emails with project emails disabled820 sends emails to someone821 merge request diff note822 #new_note823 records sent notifications824 behaves like project emails are disabled825 sends no emails with project emails disabled826 sends emails to someone827 design diff note828 design management is enabled829 sends new note notifications830 design management is disabled831 does not notify anyone832 #send_new_release_notifications833 when release author is blocked834 does not send any notification835 when release author is a ghost836 does not send any notification837 when recipients for a new release exist838 notifies the expected users839 Participating project notification settings have priority over group and global settings if available840 custom on group841 does not send an email to user1 when a new issue is created and new_issue is set to nil842 does not send an email to user1 when a new issue is created and new_issue is set to true843 watch on group844 does not send an email845 custom on global, global on group846 does not send an email847 watch on global, global on group848 does not send an email849 Issues850 #new_issue851 notifies the expected users852 is expected to eq 0853 properly prioritizes notification reason854 adds "assigned" reason for assignees if any855 emails any mentioned users with the mention level856 emails the author if they've opted into notifications about their activity857 doesn't email the author if they haven't opted into notifications about their activity858 emails subscribers of the issue's labels859 adds "subscribed" reason to subscriber emails860 behaves like project emails are disabled861 sends no emails with project emails disabled862 sends emails to someone863 confidential issues864 emails subscribers of the issue's labels that can read the issue865 when the author is not allowed to trigger notifications866 because they are blocked867 does not send any notification868 because they are a ghost869 does not send any notification870 #new_mentions_in_issue871 sends no emails when no new mentions are present872 emails new mentions with a watch level higher than mention873 does not email new mentions with a watch level equal to or less than mention874 emails new mentions despite being unsubscribed875 sends the proper notification reason header876 behaves like project emails are disabled877 sends no emails with project emails disabled878 sends emails to someone879 where current_user is blocked880 does not send any notification881 where current_user is a ghost882 does not send any notification883 #reassigned_issue884 emails new assignee885 adds "assigned" reason for new assignee886 emails previous assignee even if they have the "on mention" notif level887 emails new assignee even if they have the "on mention" notif level888 does not email new assignee if they are the current user889 behaves like participating notifications890 behaves like participating by note notification891 emails the participant892 for subgroups893 emails the participant894 behaves like participating by author notification895 emails the participant896 behaves like participating by assignee notification897 emails the participant898 behaves like participating by confidential note notification899 when user is mentioned on confidential note900 only emails authorized users901 behaves like project emails are disabled902 sends no emails with project emails disabled903 sends emails to someone904 #relabeled_issue905 emails the current user if they've opted into notifications about their activity906 doesn't email the current user if they haven't opted into notifications about their activity907 doesn't send email to anyone but subscribers of the given labels908 doesn't send multiple email when a user is subscribed to multiple given labels909 behaves like project emails are disabled910 sends no emails with project emails disabled911 sends emails to someone912 confidential issues913 emails subscribers of the issue's labels that can read the issue914 #removed_milestone_issue916 behaves like altered milestone notification on issue917 sends the email to the correct people918 behaves like project emails are disabled919 sends no emails with project emails disabled920 sends emails to someone921 behaves like participating by confidential note notification922 when user is mentioned on confidential note923 only emails authorized users924 confidential issues925 emails subscribers of the issue's milestone that can read the issue926 #changed_milestone_issue928 behaves like altered milestone notification on issue929 sends the email to the correct people930 behaves like project emails are disabled931 sends no emails with project emails disabled932 sends emails to someone933 confidential issues934 emails subscribers of the issue's milestone that can read the issue935 #close_issue936 sends email to issue assignee and issue author937 adds "subscribed" reason to subscriber emails938 behaves like participating notifications939 behaves like participating by note notification940 emails the participant941 for subgroups942 emails the participant943 behaves like participating by author notification944 emails the participant945 behaves like participating by assignee notification946 emails the participant947 behaves like project emails are disabled948 sends no emails with project emails disabled949 sends emails to someone950 behaves like participating by confidential note notification951 when user is mentioned on confidential note952 only emails authorized users953 #reopen_issue954 sends email to issue notification recipients955 behaves like participating notifications956 behaves like participating by note notification957 emails the participant958 for subgroups959 emails the participant960 behaves like participating by author notification961 emails the participant962 behaves like participating by assignee notification963 emails the participant964 behaves like participating by confidential note notification965 when user is mentioned on confidential note966 only emails authorized users967 behaves like project emails are disabled968 sends no emails with project emails disabled969 sends emails to someone970 #issue_moved971 sends email to issue notification recipients972 behaves like participating notifications973 behaves like participating by note notification974 emails the participant975 for subgroups976 emails the participant977 behaves like participating by author notification978 emails the participant979 behaves like participating by assignee notification980 emails the participant981 behaves like participating by confidential note notification982 when user is mentioned on confidential note983 only emails authorized users984 behaves like project emails are disabled985 sends no emails with project emails disabled986 sends emails to someone987 #issue_cloned988 sends email to issue notification recipients989 behaves like participating notifications990 behaves like participating by note notification991 emails the participant992 for subgroups993 emails the participant994 behaves like participating by author notification995 emails the participant996 behaves like participating by assignee notification997 emails the participant998 behaves like participating by confidential note notification999 when user is mentioned on confidential note1000 only emails authorized users1001 behaves like project emails are disabled1002 sends no emails with project emails disabled1003 sends emails to someone1004 #issue_due1005 sends email to issue notification recipients, excluding watchers1006 sends the email from the author1007 behaves like participating notifications1008 behaves like participating by note notification1009 emails the participant1010 for subgroups1011 emails the participant1012 behaves like participating by author notification1013 emails the participant1014 behaves like participating by assignee notification1015 emails the participant1016 behaves like participating by confidential note notification1017 when user is mentioned on confidential note1018 only emails authorized users1019 behaves like project emails are disabled1020 sends no emails with project emails disabled1021 sends emails to someone1022 Merge Requests1023 #new_merge_request1024 is expected to eq 01025 adds "assigned" reason for assignee, if any1026 emails any mentioned users with the mention level1027 emails the author if they've opted into notifications about their activity1028 doesn't email the author if they haven't opted into notifications about their activity1029 emails subscribers of the merge request's labels1030 behaves like project emails are disabled1031 sends no emails with project emails disabled1032 sends emails to someone1033 Approvals1034 #approve_mr1035 will notify the author, subscribers, and assigned users1036 #unapprove_mr1037 will notify the author, subscribers, and assigned users1038 participating1039 behaves like participating by assignee notification1040 emails the participant1041 behaves like participating by note notification1042 emails the participant1043 for subgroups1044 emails the participant1045 by author1046 is expected to eq 01047 when the author is not allowed to trigger notifications1048 because they are blocked1049 behaves like is not able to send notifications1050 does not send any notification1051 because they are a ghost1052 behaves like is not able to send notifications1053 does not send any notification1054 #new_mentions_in_merge_request1055 sends no emails when no new mentions are present1056 emails new mentions with a watch level higher than mention1057 does not email new mentions with a watch level equal to or less than mention1058 emails new mentions despite being unsubscribed1059 sends the proper notification reason header1060 behaves like project emails are disabled1061 sends no emails with project emails disabled1062 sends emails to someone1063 where current_user is blocked1064 does not send any notification1065 where current_user is a ghost1066 does not send any notification1067 #reassigned_merge_request1068 is expected to eq 01069 adds "assigned" reason for new assignee1070 behaves like participating notifications1071 behaves like participating by note notification1072 emails the participant1073 for subgroups1074 emails the participant1075 behaves like participating by author notification1076 emails the participant1077 behaves like participating by assignee notification1078 emails the participant1079 behaves like project emails are disabled1080 sends no emails with project emails disabled1081 sends emails to someone1082 #changed_reviewer_of_merge_request1083 sends emails to relevant users only1084 adds "review requested" reason for new reviewer1085 participating notifications with reviewers1086 behaves like participating notifications1087 behaves like participating by note notification1088 emails the participant1089 for subgroups1090 emails the participant1091 behaves like participating by author notification1092 emails the participant1093 behaves like participating by assignee notification1094 emails the participant1095 behaves like participating by reviewer notification1096 emails the participant1097 behaves like project emails are disabled1098 sends no emails with project emails disabled1099 sends emails to someone1100 #change_in_merge_request_draft_status1101 sends emails to relevant users only1102 behaves like participating notifications1103 behaves like participating by note notification1104 emails the participant1105 for subgroups1106 emails the participant1107 behaves like participating by author notification1108 emails the participant1109 behaves like participating by assignee notification1110 emails the participant1111 behaves like project emails are disabled1112 sends no emails with project emails disabled1113 sends emails to someone1114 #push_to_merge_request1115 is expected to eq 01116 triggers push_to_merge_request_email with corresponding email1117 number_of_new_commits: 0, number_of_new_commits_displayed: 01118 triggers the corresponding mailer method with list of stripped commits1119 number_of_new_commits: 18, number_of_new_commits_displayed: 181120 triggers the corresponding mailer method with list of stripped commits1121 number_of_new_commits: 19, number_of_new_commits_displayed: 191122 triggers the corresponding mailer method with list of stripped commits1123 number_of_new_commits: 20, number_of_new_commits_displayed: 201124 triggers the corresponding mailer method with list of stripped commits1125 number_of_new_commits: 21, number_of_new_commits_displayed: 201126 triggers the corresponding mailer method with list of stripped commits1127 number_of_new_commits: 22, number_of_new_commits_displayed: 201128 triggers the corresponding mailer method with list of stripped commits1129 there is only one existing commit1130 triggers corresponding mailer method with only one existing commit1131 behaves like participating notifications1132 behaves like participating by note notification1133 emails the participant1134 for subgroups1135 emails the participant1136 behaves like participating by author notification1137 emails the participant1138 behaves like participating by assignee notification1139 emails the participant1140 behaves like project emails are disabled1141 sends no emails with project emails disabled1142 sends emails to someone1143 #relabel_merge_request1144 doesn't send email to anyone but subscribers of the given labels1145 behaves like project emails are disabled1146 sends no emails with project emails disabled1147 sends emails to someone1148 #removed_milestone_merge_request1149 behaves like altered milestone notification on merge request1150 sends the email to the correct people1151 behaves like project emails are disabled1152 sends no emails with project emails disabled1153 sends emails to someone1154 #changed_milestone_merge_request1155 behaves like altered milestone notification on merge request1156 sends the email to the correct people1157 behaves like project emails are disabled1158 sends no emails with project emails disabled1159 sends emails to someone1160 #merge_request_unmergeable1161 sends email to merge request author1162 behaves like project emails are disabled1163 sends no emails with project emails disabled1164 sends emails to someone1165 when merge_when_pipeline_succeeds is true1166 sends email to merge request author and merge_user1167 #closed_merge_request1168 is expected to eq 01169 behaves like participating notifications1170 behaves like participating by note notification1171 emails the participant1172 for subgroups1173 emails the participant1174 behaves like participating by author notification1175 emails the participant1176 behaves like participating by assignee notification1177 emails the participant1178 behaves like project emails are disabled1179 sends no emails with project emails disabled1180 sends emails to someone1181 #merged_merge_request1182 is expected to eq 01183 notifies the merger when the pipeline succeeds is true1184 does not notify the merger when the pipeline succeeds is false1185 notifies the merger when the pipeline succeeds is false but they've opted into notifications about their activity1186 behaves like participating notifications1187 behaves like participating by note notification1188 emails the participant1189 for subgroups1190 emails the participant1191 behaves like participating by author notification1192 emails the participant1193 behaves like participating by assignee notification1194 emails the participant1195 behaves like project emails are disabled1196 sends no emails with project emails disabled1197 sends emails to someone1198 #reopen_merge_request1199 is expected to eq 01200 behaves like participating notifications1201 behaves like participating by note notification1202 emails the participant1203 for subgroups1204 emails the participant1205 behaves like participating by author notification1206 emails the participant1207 behaves like participating by assignee notification1208 emails the participant1209 behaves like project emails are disabled1210 sends no emails with project emails disabled1211 sends emails to someone1212 #resolve_all_discussions1213 is expected to eq 01214 behaves like participating notifications1215 behaves like participating by note notification1216 emails the participant1217 for subgroups1218 emails the participant1219 behaves like participating by author notification1220 emails the participant1221 behaves like participating by assignee notification1222 emails the participant1223 behaves like project emails are disabled1224 sends no emails with project emails disabled1225 sends emails to someone1226 #merge_when_pipeline_succeeds1227 send notification that merge will happen when pipeline succeeds1228 does not send notification if the custom event is disabled1229 sends notification to participants even if the custom event is disabled1230 behaves like participating notifications1231 behaves like participating by note notification1232 emails the participant1233 for subgroups1234 emails the participant1235 behaves like participating by author notification1236 emails the participant1237 behaves like participating by assignee notification1238 emails the participant1239 behaves like project emails are disabled1240 sends no emails with project emails disabled1241 sends emails to someone1242 #review_requested_of_merge_request1243 sends email to reviewer1244 adds "review requested" reason for new reviewer1245 behaves like project emails are disabled1246 sends no emails with project emails disabled1247 sends emails to someone1248 #attention_requested_of_merge_request1249 sends email to reviewer1250 adds "attention requested" reason1251 behaves like project emails are disabled1252 sends no emails with project emails disabled1253 sends emails to someone1254 Projects1255 #project_was_moved1256 when notifications are disabled1257 does not send a notification1258 with users at both project and group level1259 notifies the expected users1260 behaves like project emails are disabled1261 sends no emails with project emails disabled1262 sends emails to someone1263 users not having access to the new location1264 does not send email1265 user with notifications disabled1266 #project_exported1267 is expected to be empty1268 #project_not_exported1269 is expected to be empty1270 user with notifications enabled1271 #project_exported1272 is expected to eq 11273 behaves like project emails are disabled1274 sends no emails with project emails disabled1275 sends emails to someone1276 #project_not_exported1277 is expected to eq 11278 behaves like project emails are disabled1279 sends no emails with project emails disabled1280 sends emails to someone1281 #invite_member_reminder1282 calls the Notify.invite_member_reminder method with the right params1283 sends exactly one email1284 #new_instance_access_request1285 sends notification only to a maximum of ten most recently active instance admins1286 #user_admin_rejection1287 sends the user a rejection email1288 #user_deactivated1289 sends the user an email1290 GroupMember1291 #new_access_request1292 recipients1293 sends notification only to group owners1294 behaves like group emails are disabled1295 sends no emails with group emails disabled1296 sends emails to someone1297 behaves like sends notification only to a maximum of ten, most recently active group owners1298 limit notification emails1299 sends notification only to a maximum of ten, most recently active group owners1300 #decline_group_invite1301 is expected to change `ActionMailer::Base.deliveries.size` by 11302 #new_group_member1303 sends a notification1304 when notifications are disabled1305 does not send a notification1306 behaves like group emails are disabled1307 sends no emails with group emails disabled1308 sends emails to someone1309 #updated_group_member_expiration1310 emails the user that their group membership expiry has changed1311 ProjectMember1312 #new_access_request1313 for a project in a user namespace1314 recipients1315 sends notification only to project maintainers1316 behaves like project emails are disabled1317 sends no emails with project emails disabled1318 sends emails to someone1319 behaves like sends notification only to a maximum of ten, most recently active project maintainers1320 limit notification emails1321 sends notification only to a maximum of ten, most recently active project maintainers1322 for a project in a group1323 when the project has no maintainers1324 when the group has at least one owner1325 recipients1326 sends notifications to the group owners1327 behaves like sends notification only to a maximum of ten, most recently active group owners1328 limit notification emails1329 sends notification only to a maximum of ten, most recently active group owners1330 when the group does not have any owners1331 recipients1332 does not send any notifications1333 when the project has maintainers1334 recipients1335 sends notifications only to project maintainers1336 behaves like sends notification only to a maximum of ten, most recently active project maintainers1337 limit notification emails1338 sends notification only to a maximum of ten, most recently active project maintainers1339 #decline_project_invite1340 is expected to change `ActionMailer::Base.deliveries.size` by 11341 #new_project_member1342 is expected to eq 11343 behaves like project emails are disabled1344 sends no emails with project emails disabled1345 sends emails to someone1346 when notifications are disabled1347 is expected to be empty1348 guest user in private project1349 filters out guests when new note is created1350 filters out guests when new merge request is created1351 filters out guests when merge request is closed1352 filters out guests when merge request is reopened1353 filters out guests when merge request is merged1354 Pipelines1355 #pipeline_finished1356 with a successful pipeline1357 when the creator has default settings1358 notifies nobody1359 when the creator has watch set1360 notifies nobody1361 when the creator has custom notifications, but without any set1362 notifies nobody1363 when the creator has custom notifications disabled1364 notifies nobody1365 when the creator has custom notifications enabled1366 emails only the creator1367 behaves like project emails are disabled1368 sends no emails with project emails disabled1369 sends emails to someone1370 when the creator has group notification email set1371 sends to group notification email1372 with a failed pipeline1373 when the creator has no custom notification set1374 emails only the creator1375 behaves like project emails are disabled1376 sends no emails with project emails disabled1377 sends emails to someone1378 when the creator has group notification email set1379 sends to group notification email1380 when the creator has watch set1381 emails only the creator1382 when the creator has custom notifications, but without any set1383 emails only the creator1384 when the creator has custom notifications disabled1385 notifies nobody1386 when the creator has custom notifications set1387 emails only the creator1388 when the creator has no read_build access1389 does not send emails1390 with a fixed pipeline1391 when the creator has no custom notification set1392 emails only the creator1393 behaves like project emails are disabled1394 sends no emails with project emails disabled1395 sends emails to someone1396 when the creator has group notification email set1397 sends to group notification email1398 when the creator has watch set1399 emails only the creator1400 when the creator has custom notifications, but without any set1401 emails only the creator1402 when the creator has custom notifications disabled1403 notifies nobody1404 when the creator has custom notifications set1405 emails only the creator1406 Pages domains1407 #pages_domain_enabled1408 emails current watching maintainers and owners1409 emails nobody if the project is missing1410 behaves like project emails are disabled1411 sends no emails with project emails disabled1412 sends emails to someone1413 #pages_domain_disabled1414 emails current watching maintainers and owners1415 emails nobody if the project is missing1416 behaves like project emails are disabled1417 sends no emails with project emails disabled1418 sends emails to someone1419 #pages_domain_verification_succeeded1420 emails current watching maintainers and owners1421 emails nobody if the project is missing1422 behaves like project emails are disabled1423 sends no emails with project emails disabled1424 sends emails to someone1425 #pages_domain_verification_failed1426 emails current watching maintainers and owners1427 emails nobody if the project is missing1428 behaves like project emails are disabled1429 sends no emails with project emails disabled1430 sends emails to someone1431 #pages_domain_auto_ssl_failed1432 emails current watching maintainers and owners1433 emails nobody if the project is missing1434 behaves like project emails are disabled1435 sends no emails with project emails disabled1436 sends emails to someone1437 Auto DevOps notifications1438 #autodevops_disabled1439 emails project owner and user that triggered the pipeline1440 behaves like project emails are disabled1441 sends no emails with project emails disabled1442 sends emails to someone1443 Repository cleanup1444 #repository_cleanup_success1445 emails the specified user only1446 behaves like project emails are disabled1447 sends no emails with project emails disabled1448 sends emails to someone1449 #repository_cleanup_failure1450 emails the specified user only1451 behaves like project emails are disabled1452 sends no emails with project emails disabled1453 sends emails to someone1454 Remote mirror notifications1455 #remote_mirror_update_failed1456 emails current watching maintainers and owners1457 behaves like project emails are disabled1458 sends no emails with project emails disabled1459 sends emails to someone1460 with external authorization service1461 sends email when the service is not enabled1462 when the service is enabled1463 does not send an email1464 with admin user1465 when admin mode is enabled1466 still delivers email to admins1467 when admin mode is disabled1468 does not send an email1469 #prometheus_alerts_fired1470 sends the email to owners and masters1471 behaves like project emails are disabled1472 sends no emails with project emails disabled1473 sends emails to someone1474 #new_review1475 sends emails1476 behaves like project emails are disabled1477 sends no emails with project emails disabled1478 sends emails to someone1479 #inactive_project_deletion_warning1480 sends email to project owners and maintainers1481Event1482 Associations1483 is expected to belong to project required: false1484 is expected to belong to target required: false1485 Respond to1486 is expected to respond to #author_name1487 is expected to respond to #author_email1488 is expected to respond to #issue_title1489 is expected to respond to #merge_request_title1490 is expected to respond to #design_title1491 Callbacks1492 after_create :reset_project_activity1493 calls the reset_project_activity method1494 after_create :set_last_repository_updated_at1495 with a push event1496 updates the project last_repository_updated_at and updated_at1497 without a push event1498 does not update the project last_repository_updated_at1499 #set_last_repository_updated_at1500 only updates once every Event::REPOSITORY_UPDATED_AT_INTERVAL minutes1501 after_create UserInteractedProject.track1502 passes event to UserInteractedProject.track1503 validations1504 action1505 for a design1506 action: "created", valid: true1507 is expected to eq true1508 action: "updated", valid: true1509 is expected to eq true1510 action: "closed", valid: false1511 is expected to eq false1512 action: "reopened", valid: false1513 is expected to eq false1514 action: "pushed", valid: false1515 is expected to eq false1516 action: "commented", valid: false1517 is expected to eq false1518 action: "merged", valid: false1519 is expected to eq false1520 action: "joined", valid: false1521 is expected to eq false1522 action: "left", valid: false1523 is expected to eq false1524 action: "destroyed", valid: true1525 is expected to eq true1526 action: "expired", valid: false1527 is expected to eq false1528 action: "approved", valid: false1529 is expected to eq false1530 scopes1531 created_at1532 can find the right event1533 .for_fingerprint1534 returns none if there is no fingerprint1535 returns none if there is no match1536 can find a given event1537 #fingerprint1538 is unique scoped to target1539 Push event1540 is expected to eq #<User id:841 @namespace105>1541 #target_title1542 for an issue1543 delegates to issue title1544 for a wiki page1545 delegates to wiki page title1546 #membership_changed?1547 created1548 is expected to be falsey1549 updated1550 is expected to be falsey1551 expired1552 is expected to be truthy1553 left1554 is expected to be truthy1555 joined1556 is expected to be truthy1557 #note?1558 issue note event1559 is expected to be note1560 merge request diff note event1561 is expected to be note1562 #visible_to_user?1563 commit note event1564 has the correct visibility1565 private project1566 when admin mode enabled1567 has the correct visibility1568 when admin mode disabled1569 has the correct visibility1570 issue event1571 for non confidential issues1572 has the correct visibility1573 is expected to eq true1574 is expected to eq true1575 for confidential issues1576 has the correct visibility1577 is expected to eq true1578 is expected to eq true1579 issue note event1580 on non confidential issues1581 has the correct visibility1582 is expected to eq true1583 is expected to eq true1584 on confidential issues1585 has the correct visibility1586 is expected to eq true1587 is expected to eq true1588 confidential note1589 has the correct visibility1590 is expected to eq true1591 private project1592 is expected to eq false1593 is expected to eq false1594 when admin mode enabled1595 has the correct visibility1596 when admin mode disabled1597 has the correct visibility1598 merge request diff note event1599 public project1600 has the correct visibility1601 is expected to eq true1602 private project1603 is expected to eq false1604 when admin mode enabled1605 has the correct visibility1606 when admin mode disabled1607 has the correct visibility1608 milestone event1609 has the correct visibility1610 on public project with private issue tracker and merge requests1611 when admin mode enabled1612 has the correct visibility1613 when admin mode disabled1614 has the correct visibility1615 on private project1616 when admin mode enabled1617 has the correct visibility1618 when admin mode disabled1619 has the correct visibility1620 wiki-page event1621 on private project1622 when admin mode enabled1623 has the correct visibility1624 when admin mode disabled1625 has the correct visibility1626 wiki-page event on public project1627 has the correct visibility1628 project snippet note event1629 has the correct visibility1630 on public project with private snippets1631 is expected to eq false1632 when admin mode enabled1633 has the correct visibility1634 when admin mode disabled1635 has the correct visibility1636 on private project1637 is expected to eq false1638 when admin mode enabled1639 has the correct visibility1640 when admin mode disabled1641 has the correct visibility1642 personal snippet note event1643 has the correct visibility1644 is expected to eq true1645 on internal snippet1646 has the correct visibility1647 on private snippet1648 is expected to eq true1649 when admin mode enabled1650 has the correct visibility1651 when admin mode disabled1652 has the correct visibility1653 design note event1654 has the correct visibility1655 is expected to eq true1656 is expected to eq true1657 the event refers to a design on a confidential issue1658 has the correct visibility1659 is expected to eq true1660 is expected to eq true1661 design event1662 has the correct visibility1663 is expected to eq true1664 is expected to eq true1665 the event refers to a design on a confidential issue1666 has the correct visibility1667 is expected to eq true1668 is expected to eq true1669 wiki_page predicate scopes1670 .for_design1671 only includes design events1672 .for_wiki_page1673 only contains the wiki page events1674 .for_wiki_meta1675 finds events for a given wiki page metadata object1676 categorization1677 passes a sanity check1678 #wiki_page and #wiki_page?1679 for a wiki page event1680 is expected to have attributes {:wiki_page => #<WikiPage:0x00007f7b7664dcc0 @wiki=#<ProjectWiki id:144 >, @page=#<Gitlab::Git::WikiPag...lers={}, @committed_date=2022-07-04 07:26:23 +0000>, @format="markdown">>, :wiki_page? => (be truthy)}1681 title is empty1682 is expected to have attributes {:wiki_page => nil, :wiki_page? => (be truthy)}1683 for any other event1684 has no wiki_page and is not a wiki_page1685 #design and #design?1686 for a design event1687 is expected to have attributes {:design => #<DesignManagement::Design id: namespace142/project163#/designs[homescreen-30.jpg]>, :design? => (be truthy)}1688 for any other event1689 has no design and is not a design1690 .limit_recent1691 without an explicit limit1692 is expected to eq [#<Event project_id: 146, author_id: 895, target_id: 175, created_at: "2022-07-04 07:26:25.803233698 ...241048115 +0000", action: "closed", target_type: "Issue", group_id: nil, fingerprint: nil, id: 542>]1693 with an explicit limit1694 is expected to eq [#<Event project_id: 148, author_id: 899, target_id: 177, created_at: "2022-07-04 07:26:27.111462341 ...111462341 +0000", action: "closed", target_type: "Issue", group_id: nil, fingerprint: nil, id: 545>]1695 #reset_project_activity1696 when a project was updated less than 1 hour ago1697 does not update the project1698 when a project was updated more than 1 hour ago1699 updates the project1700 deletes the redis key for if the project was inactive1701 #authored_by?1702 returns true when the event author and user are the same1703 returns false when passing nil as an argument1704 returns false when the given user is not the author of the event1705 #body?1706 returns true for a push event with commits1707 returns false for a push event without a valid commit range1708 returns true for a Note event1709 returns true if the target responds to #title1710 returns false for a regular event without a target1711 #target1712 eager loads the author of an event target1713 with snippet note1714 #snippet_note?1715 returns true for a project snippet event1716 returns true for a personal snippet event1717 returns false for a other kinds of event1718 #personal_snippet_note?1719 returns false for a project snippet event1720 returns true for a personal snippet event1721 returns false for a other kinds of event1722 #project_snippet_note?1723 returns true for a project snippet event1724 returns false for a personal snippet event1725 returns false for a other kinds of event1726 #action_name1727 handles all valid design events1728 handles correct push_action1729 handles correct base actions1730 trait: :created, action_name: "created"1731 with correct name and method1732 trait: :updated, action_name: "opened"1733 with correct name and method1734 trait: :closed, action_name: "closed"1735 with correct name and method1736 trait: :reopened, action_name: "opened"1737 with correct name and method1738 trait: :commented, action_name: "commented on"1739 with correct name and method1740 trait: :merged, action_name: "accepted"1741 with correct name and method1742 trait: :joined, action_name: "joined"1743 with correct name and method1744 trait: :left, action_name: "left"1745 with correct name and method1746 trait: :destroyed, action_name: "destroyed"1747 with correct name and method1748 trait: :expired, action_name: "removed due to membership expiration from"1749 with correct name and method1750 trait: :approved, action_name: "approved"1751 with correct name and method1752 for created_project_action?1753 returns created for created event1754 returns imported for imported event1755 #has_no_project_and_group1756 with project event1757 returns false when the event has project1758 returns true when the event has no project1759 with group event1760 returns false when the event has group1761 returns true when the event has no group1762Banzai::Filter::RepositoryLinkFilter1763 does not trigger a gitaly n+11764 does not raise an exception on invalid URIs1765 does not raise an exception on URIs containing invalid utf-8 byte sequences1766 does not raise an exception on URIs containing invalid utf-8 byte sequences in context requested path1767 does not raise an exception with a garbled path1768 does not explode with an escaped null byte1769 ignores ref if commit is passed1770 with a wiki1771 does not modify any relative URL in anchor1772 does not modify any relative URL in image1773 does not modify any relative URL in video1774 does not modify any relative URL in audio1775 without a repository1776 does not modify any relative URL in anchor1777 does not modify any relative URL in image1778 does not modify any relative URL in video1779 does not modify any relative URL in audio1780 with an empty repository1781 does not modify any relative URL in anchor1782 does not modify any relative URL in image1783 does not modify any relative URL in video1784 does not modify any relative URL in audio1785 without project repository access1786 does not modify any relative URL in anchor1787 does not modify any relative URL in image1788 does not modify any relative URL in video1789 does not modify any relative URL in audio1790 with a valid commit1791 handles Gitaly unavailable exceptions gracefully1792 handles Gitaly timeout exceptions gracefully1793 rebuilds absolute URL for a file in the repo1794 does not modify relative URLs in system notes1795 ignores absolute URLs with two leading slashes1796 rebuilds relative URL for a file in the repo1797 rebuilds relative URL for a missing file in the repo1798 rebuilds relative URL for a file in the repo with leading ./1799 rebuilds relative URL for a file in the repo up one directory1800 rebuilds relative URL for a file in the repo up multiple directories1801 rebuilds relative URL for a file in the repository root1802 rebuilds relative URL for a file in the repo with an anchor1803 rebuilds relative URL for a directory in the repo1804 rebuilds relative URL for an image in the repo1805 rebuilds relative URL for link to an image in the repo1806 rebuilds relative URL for a video in the repo1807 rebuilds relative URL for audio in the repo1808 does not modify relative URL with an anchor only1809 does not modify absolute URL1810 does not call gitaly1811 supports Unicode filenames1812 when requested path is a file in the repo1813 rebuilds URL relative to the containing directory1814 when requested path is a directory in the repo1815 rebuilds URL relative to the directory1816 when ref name contains percent sign1817 correctly escapes the ref1818 when ref name contains special chars1819 correctly escapes the ref1820 when requested path is a directory with space in the repo1821 does not escape the space twice1822 with a valid ref1823 handles Gitaly unavailable exceptions gracefully1824 handles Gitaly timeout exceptions gracefully1825 rebuilds absolute URL for a file in the repo1826 does not modify relative URLs in system notes1827 ignores absolute URLs with two leading slashes1828 rebuilds relative URL for a file in the repo1829 rebuilds relative URL for a missing file in the repo1830 rebuilds relative URL for a file in the repo with leading ./1831 rebuilds relative URL for a file in the repo up one directory1832 rebuilds relative URL for a file in the repo up multiple directories1833 rebuilds relative URL for a file in the repository root1834 rebuilds relative URL for a file in the repo with an anchor1835 rebuilds relative URL for a directory in the repo1836 rebuilds relative URL for an image in the repo1837 rebuilds relative URL for link to an image in the repo1838 rebuilds relative URL for a video in the repo1839 rebuilds relative URL for audio in the repo1840 does not modify relative URL with an anchor only1841 does not modify absolute URL1842 does not call gitaly1843 supports Unicode filenames1844 when requested path is a file in the repo1845 rebuilds URL relative to the containing directory1846 when requested path is a directory in the repo1847 rebuilds URL relative to the directory1848 when ref name contains percent sign1849 correctly escapes the ref1850 when ref name contains special chars1851 correctly escapes the ref1852 when requested path is a directory with space in the repo1853 does not escape the space twice1854Gitlab::Ci::Config1855 when config is valid1856 #to_hash1857 returns hash created from string1858 #valid?1859 is valid1860 has no errors1861 #stages1862 with default stages1863 is expected to eq [".pre", "build", "test", "deploy", ".post"]1864 with custom stages1865 is expected to eq [".pre", "stage1", "stage2", ".post"]1866 #included_templates1867 is expected to contain exactly "Jobs/Deploy.gitlab-ci.yml" and "Jobs/Build.gitlab-ci.yml"1868 stores includes1869 when using extendable hash1870 correctly extends the hash1871 when config is invalid1872 when yml is incorrect1873 .new1874 raises error1875 when yml is too big1876 .new1877 raises error1878 when config logic is incorrect1879 #valid?1880 is not valid1881 has errors1882 #errors1883 returns an array of strings1884 when invalid extended hash has been provided1885 raises an error1886 when ports have been set1887 in the main image1888 raises an error1889 in the job image1890 raises an error1891 in the services1892 raises an error1893 when yaml uses circular !reference1894 raises error1895 when using 'include' directive1896 when gitlab_ci_yml has valid 'include' defined1897 returns a composed hash1898 stores includes1899 handling variables1900 contains all project variables1901 contains all group variables1902 contains all instance variables1903 overriding a group variable at project level1904 successfully overrides1905 when gitlab_ci.yml has invalid 'include' defined1906 raises ConfigError1907 when gitlab_ci.yml has ambigious 'include' defined1908 raises ConfigError1909 when it takes too long to evaluate includes1910 raises error TimeoutError1911 external file version1912 when external local file SHA is defined1913 is using a defined value1914 when external local file SHA is not defined1915 is using latest SHA on the default branch1916 when both external files and gitlab_ci.yml defined the same key1917 takes precedence1918 when both external files and gitlab_ci.yml define a dictionary of distinct variables1919 merges the variables dictionaries1920 when both external files and gitlab_ci.yml define a dictionary of overlapping variables1921 later declarations should take precedence1922 when both external files and gitlab_ci.yml define a job1923 merges the jobs1924 when the script key is in both1925 uses the script from the gitlab_ci.yml1926 when including file from artifact1927 disallows the use in parent pipelines1928 when used in the context of a child pipeline1929 returns valid config1930 when job key is missing1931 raises an error1932 when artifact key is missing1933 raises an error1934 when including multiple files from a project1935 returns a composed hash1936 when an 'include' has rules1937 when the rule is an if1938 when the rules condition is satisfied1939 includes the file1940 when the rules condition is satisfied1941 does not include the file1942 when the rule is an exists1943 when the exists file does not exist1944 does not include the file1945 when the exists file does exist1946 does include the file1947 when an 'include' has rules with a pipeline variable1948 when a pipeline is passed1949 includes the file1950 when a pipeline is not passed1951 does not include the file1952Integrations::MicrosoftTeams1953 behaves like chat integration1954 Associations1955 is expected to belong to project required: false1956 is expected to have one service_hook1957 Validations1958 when integration is active1959 is expected to validate that :webhook cannot be empty/falsy1960 behaves like issue tracker integration URL attribute1961 is expected to allow :webhook to be ‹"https://example.com"›1962 is expected not to allow :webhook to be ‹"example.com"›1963 is expected not to allow :webhook to be ‹"ftp://example.com"›1964 is expected not to allow :webhook to be ‹"herp-and-derp"›1965 when integration is inactive1966 is expected not to validate that :webhook cannot be empty/falsy1967 .supported_events1968 does not support deployment_events1969 #execute1970 with push events1971 behaves like triggered Microsoft Teams integration1972 calls Microsoft Teams API1973 with default branch1974 when only default branch are to be notified1975 behaves like triggered Microsoft Teams integration1976 calls Microsoft Teams API1977 when only protected branches are to be notified1978 behaves like untriggered Microsoft Teams integration1979 does not call Microsoft Teams API1980 when default and protected branches are to be notified1981 behaves like triggered Microsoft Teams integration1982 calls Microsoft Teams API1983 when all branches are to be notified1984 behaves like triggered Microsoft Teams integration1985 calls Microsoft Teams API1986 with protected branch1987 when only default branch are to be notified1988 behaves like untriggered Microsoft Teams integration1989 does not call Microsoft Teams API1990 when only protected branches are to be notified1991 behaves like triggered Microsoft Teams integration1992 calls Microsoft Teams API1993 when default and protected branches are to be notified1994 behaves like triggered Microsoft Teams integration1995 calls Microsoft Teams API1996 when all branches are to be notified1997 behaves like triggered Microsoft Teams integration1998 calls Microsoft Teams API1999 with neither default nor protected branch2000 when only default branch are to be notified2001 behaves like untriggered Microsoft Teams integration2002 does not call Microsoft Teams API2003 when only protected branches are to be notified2004 behaves like untriggered Microsoft Teams integration2005 does not call Microsoft Teams API2006 when default and protected branches are to be notified2007 behaves like untriggered Microsoft Teams integration2008 does not call Microsoft Teams API2009 when all branches are to be notified2010 behaves like triggered Microsoft Teams integration2011 calls Microsoft Teams API2012 with issue events2013 behaves like triggered Microsoft Teams integration2014 calls Microsoft Teams API2015 with merge events2016 behaves like triggered Microsoft Teams integration2017 calls Microsoft Teams API2018 with wiki page events2019 behaves like triggered Microsoft Teams integration2020 calls Microsoft Teams API2021 with note events2022 with commit comment2023 behaves like triggered Microsoft Teams integration2024 calls Microsoft Teams API2025 with merge request comment2026 behaves like triggered Microsoft Teams integration2027 calls Microsoft Teams API2028 with issue comment2029 behaves like triggered Microsoft Teams integration2030 calls Microsoft Teams API2031 with snippet comment2032 behaves like triggered Microsoft Teams integration2033 calls Microsoft Teams API2034 with pipeline events2035 with failed pipeline2036 behaves like triggered Microsoft Teams integration2037 calls Microsoft Teams API2038 with succeeded pipeline2039 with default notify_only_broken_pipelines2040 does not call Microsoft Teams API2041 when notify_only_broken_pipelines is false2042 behaves like triggered Microsoft Teams integration2043 calls Microsoft Teams API2044 with default branch2045 when only default branch are to be notified2046 behaves like triggered Microsoft Teams integration2047 calls Microsoft Teams API2048 when only protected branches are to be notified2049 behaves like untriggered Microsoft Teams integration2050 does not call Microsoft Teams API2051 when default and protected branches are to be notified2052 behaves like triggered Microsoft Teams integration2053 calls Microsoft Teams API2054 when all branches are to be notified2055 behaves like triggered Microsoft Teams integration2056 calls Microsoft Teams API2057 with protected branch2058 when only default branch are to be notified2059 behaves like untriggered Microsoft Teams integration2060 does not call Microsoft Teams API2061 when only protected branches are to be notified2062 behaves like triggered Microsoft Teams integration2063 calls Microsoft Teams API2064 when default and protected branches are to be notified2065 behaves like triggered Microsoft Teams integration2066 calls Microsoft Teams API2067 when all branches are to be notified2068 behaves like triggered Microsoft Teams integration2069 calls Microsoft Teams API2070 with neither default nor protected branch2071 when only default branch are to be notified2072 behaves like untriggered Microsoft Teams integration2073 does not call Microsoft Teams API2074 when only protected branches are to be notified2075 behaves like untriggered Microsoft Teams integration2076 does not call Microsoft Teams API2077 when default and protected branches are to be notified2078 behaves like untriggered Microsoft Teams integration2079 does not call Microsoft Teams API2080 when all branches are to be notified2081 behaves like triggered Microsoft Teams integration2082 calls Microsoft Teams API2083 deployment events2084 behaves like untriggered Microsoft Teams integration2085 does not call Microsoft Teams API2086 Validations2087 when integration is active2088 is expected to validate that :webhook cannot be empty/falsy2089 behaves like issue tracker integration URL attribute2090 is expected to allow :webhook to be ‹"https://example.com"›2091 is expected not to allow :webhook to be ‹"example.com"›2092 is expected not to allow :webhook to be ‹"ftp://example.com"›2093 is expected not to allow :webhook to be ‹"herp-and-derp"›2094 when integration is inactive2095 is expected not to validate that :webhook cannot be empty/falsy2096 .supported_events2097 does not support deployment_events2098 #execute2099 with push events2100 calls Microsoft Teams API for push events2101 specifies the webhook when it is configured2102 with issue events2103 calls Microsoft Teams API2104 with merge events2105 calls Microsoft Teams API2106 with wiki page events2107 calls Microsoft Teams API2108 Note events2109 when commit comment event executed2110 calls Microsoft Teams API for commit comment events2111 when merge request comment event executed2112 calls Microsoft Teams API for merge request comment events2113 when issue comment event executed2114 calls Microsoft Teams API for issue comment events2115 when snippet comment event executed2116 calls Microsoft Teams API for snippet comment events2117 Pipeline events2118 with failed pipeline2119 behaves like call Microsoft Teams API2120 calls Microsoft Teams API for pipeline events2121 with succeeded pipeline2122 with default to notify_only_broken_pipelines2123 does not call Microsoft Teams API for pipeline events2124 with setting notify_only_broken_pipelines to false2125 behaves like call Microsoft Teams API2126 calls Microsoft Teams API for pipeline events2127 with default branch2128 only notify for the default branch2129 behaves like call Microsoft Teams API2130 calls Microsoft Teams API for pipeline events2131 notify for only protected branches2132 behaves like does not call Microsoft Teams API2133 does not call Microsoft Teams API for pipeline events2134 notify for only default and protected branches2135 behaves like call Microsoft Teams API2136 calls Microsoft Teams API for pipeline events2137 notify for all branches2138 behaves like call Microsoft Teams API2139 calls Microsoft Teams API for pipeline events2140 with protected branch2141 only notify for the default branch2142 behaves like does not call Microsoft Teams API2143 does not call Microsoft Teams API for pipeline events2144 notify for only protected branches2145 behaves like call Microsoft Teams API2146 calls Microsoft Teams API for pipeline events2147 notify for only default and protected branches2148 behaves like call Microsoft Teams API2149 calls Microsoft Teams API for pipeline events2150 notify for all branches2151 behaves like call Microsoft Teams API2152 calls Microsoft Teams API for pipeline events2153 with neither protected nor default branch2154 only notify for the default branch2155 behaves like does not call Microsoft Teams API2156 does not call Microsoft Teams API for pipeline events2157 notify for only protected branches2158 behaves like does not call Microsoft Teams API2159 does not call Microsoft Teams API for pipeline events2160 notify for only default and protected branches2161 behaves like does not call Microsoft Teams API2162 does not call Microsoft Teams API for pipeline events2163 notify for all branches2164 behaves like call Microsoft Teams API2165 calls Microsoft Teams API for pipeline events2166Packages::Debian::GenerateDistributionService2167 #execute2168 for project2169 behaves like Generate Debian Distribution and component files2170 with Debian components and architectures2171 generates Debian distribution and component files2172 without components and architectures2173 generates minimal distribution2174 for group2175 behaves like Generate Debian Distribution and component files2176 with Debian components and architectures2177 generates Debian distribution and component files2178 without components and architectures2179 generates minimal distribution2180MergeRequests::MergeToRefService2181 #execute2182 returns an error when Gitlab::Git::CommandError is raised during merge2183 behaves like successfully merges to ref with merge method2184 writes commit to merge ref2185 cache_merge_to_ref_calls parameter2186 when true2187 caches the response2188 when false2189 does not cache the response2190 behaves like successfully evaluates pre-condition checks2191 returns an error when the failing to process the merge2192 does not send any mail2193 does not change the MR state2194 does not create notes2195 does not delete the source branch2196 commit history comparison with regular MergeService2197 when merge commit2198 behaves like MergeService for target ref2199 target_ref has the same state of target branch2200 when merge commit with squash2201 does not squash before merging2202 behaves like successfully merges to ref with merge method2203 writes commit to merge ref2204 cache_merge_to_ref_calls parameter2205 when true2206 caches the response2207 when false2208 does not cache the response2209 merge pre-condition checks2210 when semi-linear merge method2211 behaves like successfully merges to ref with merge method2212 writes commit to merge ref2213 cache_merge_to_ref_calls parameter2214 when true2215 caches the response2216 when false2217 does not cache the response2218 behaves like successfully evaluates pre-condition checks2219 returns an error when the failing to process the merge2220 does not send any mail2221 does not change the MR state2222 does not create notes2223 does not delete the source branch2224 when fast-forward merge method2225 behaves like successfully merges to ref with merge method2226 writes commit to merge ref2227 cache_merge_to_ref_calls parameter2228 when true2229 caches the response2230 when false2231 does not cache the response2232 behaves like successfully evaluates pre-condition checks2233 returns an error when the failing to process the merge2234 does not send any mail2235 does not change the MR state2236 does not create notes2237 does not delete the source branch2238 when MR is not mergeable to ref2239 returns error2240 does not close related todos2241 is expected not to be done2242 when source is missing2243 returns error2244 when target ref is passed as a parameter2245 behaves like successfully merges to ref with merge method2246 writes commit to merge ref2247 cache_merge_to_ref_calls parameter2248 when true2249 caches the response2250 when false2251 does not cache the response2252 cascading merge refs2253 when first merge happens2254 behaves like successfully merges to ref with merge method2255 writes commit to merge ref2256 cache_merge_to_ref_calls parameter2257 when true2258 caches the response2259 when false2260 does not cache the response2261 when second merge happens2262 behaves like successfully merges to ref with merge method2263 writes commit to merge ref2264 cache_merge_to_ref_calls parameter2265 when true2266 caches the response2267 when false2268 does not cache the response2269 allow conflicts to be merged in diff2270WARNING: You're overriding a previous stub implementation of `merge_to_ref`. Called from /builds/gitlab-org/gitlab/spec/services/merge_requests/merge_to_ref_service_spec.rb:290:in `block (4 levels) in <top (required)>'.. Called from /builds/gitlab-org/gitlab/spec/services/merge_requests/merge_to_ref_service_spec.rb:290:in `block (4 levels) in <top (required)>'.2271 calls merge_to_ref with allow_conflicts param2272Gitlab::Database::ConsistencyChecker2273 #over_time_limit?2274 returns true only if the running time has exceeded MAX_RUNTIME2275 #execute2276 when empty tables2277 returns an empty response2278 when the tables contain matching items2279 does not process more than MAX_BATCHES2280 doesn not exceed the MAX_RUNTIME2281 returns the correct number of matches and batches checked2282 returns the min_id as the next_start_id if the check reaches the last element2283 when some items are missing from the first table2284 reports the missing elements2285 when some items are missing from the second table2286 reports the missing elements2287 when elements are different between the two tables2288 reports the difference between the two tables2289Gitlab::BareRepositoryImport::Importer2290 with subgroups2291 behaves like importing a repository2292 .execute2293 creates a project for a repository in storage2294 skips wiki repos2295 without admin users2296 raises an error2297 #create_project_if_needed2298 starts an import for a project that did not exist2299 skips importing when the project already exists2300 creates a project with the correct path in the database2301 does not schedule an import2302 creates the Git repo on disk2303 hashed storage enabled2304 creates a project with the correct path in the database2305 without subgroups2306 behaves like importing a repository2307 .execute2308 creates a project for a repository in storage2309 skips wiki repos2310 without admin users2311 raises an error2312 #create_project_if_needed2313 starts an import for a project that did not exist2314 skips importing when the project already exists2315 creates a project with the correct path in the database2316 does not schedule an import2317 creates the Git repo on disk2318 hashed storage enabled2319 creates a project with the correct path in the database2320 without groups2321 starts an import for a project that did not exist2322 creates a project with the correct path in the database2323 creates the Git repo in disk2324 with a repository already on disk2325 moves an existing project to the correct path2326 with Wiki2327 creates the Wiki git repo in disk2328 behaves like importing a repository2329 .execute2330 creates a project for a repository in storage2331 skips wiki repos2332 without admin users2333 raises an error2334 #create_project_if_needed2335 starts an import for a project that did not exist2336 skips importing when the project already exists2337 creates a project with the correct path in the database2338 does not schedule an import2339 creates the Git repo on disk2340 hashed storage enabled2341 creates a project with the correct path in the database2342Integrations::HangoutsChat2343 behaves like chat integration2344 Associations2345 is expected to belong to project required: false2346 is expected to have one service_hook2347 Validations2348 when integration is active2349 is expected to validate that :webhook cannot be empty/falsy2350 behaves like issue tracker integration URL attribute2351 is expected to allow :webhook to be ‹"https://example.com"›2352 is expected not to allow :webhook to be ‹"example.com"›2353 is expected not to allow :webhook to be ‹"ftp://example.com"›2354 is expected not to allow :webhook to be ‹"herp-and-derp"›2355 when integration is inactive2356 is expected not to validate that :webhook cannot be empty/falsy2357 .supported_events2358 does not support deployment_events2359 #execute2360 with push events2361 behaves like triggered Hangouts Chat integration2362 calls Hangouts Chat API2363 with default branch2364 when only default branch are to be notified2365 behaves like triggered Hangouts Chat integration2366 calls Hangouts Chat API2367 when only protected branches are to be notified2368 behaves like untriggered Hangouts Chat integration2369 does not call Hangouts Chat API2370 when default and protected branches are to be notified2371 behaves like triggered Hangouts Chat integration2372 calls Hangouts Chat API2373 when all branches are to be notified2374 behaves like triggered Hangouts Chat integration2375 calls Hangouts Chat API2376 with protected branch2377 when only default branch are to be notified2378 behaves like untriggered Hangouts Chat integration2379 does not call Hangouts Chat API2380 when only protected branches are to be notified2381 behaves like triggered Hangouts Chat integration2382 calls Hangouts Chat API2383 when default and protected branches are to be notified2384 behaves like triggered Hangouts Chat integration2385 calls Hangouts Chat API2386 when all branches are to be notified2387 behaves like triggered Hangouts Chat integration2388 calls Hangouts Chat API2389 with neither default nor protected branch2390 when only default branch are to be notified2391 behaves like untriggered Hangouts Chat integration2392 does not call Hangouts Chat API2393 when only protected branches are to be notified2394 behaves like untriggered Hangouts Chat integration2395 does not call Hangouts Chat API2396 when default and protected branches are to be notified2397 behaves like untriggered Hangouts Chat integration2398 does not call Hangouts Chat API2399 when all branches are to be notified2400 behaves like triggered Hangouts Chat integration2401 calls Hangouts Chat API2402 with issue events2403 behaves like triggered Hangouts Chat integration2404 calls Hangouts Chat API2405 with merge events2406 behaves like triggered Hangouts Chat integration2407 calls Hangouts Chat API2408 with wiki page events2409 behaves like triggered Hangouts Chat integration2410 calls Hangouts Chat API2411 with note events2412 with commit comment2413 behaves like triggered Hangouts Chat integration2414 calls Hangouts Chat API2415 with merge request comment2416 behaves like triggered Hangouts Chat integration2417 calls Hangouts Chat API2418 with issue comment2419 behaves like triggered Hangouts Chat integration2420 calls Hangouts Chat API2421 with snippet comment2422 behaves like triggered Hangouts Chat integration2423 calls Hangouts Chat API2424 with pipeline events2425 with failed pipeline2426 behaves like triggered Hangouts Chat integration2427 calls Hangouts Chat API2428 with succeeded pipeline2429 with default notify_only_broken_pipelines2430 does not call Hangouts Chat API2431 when notify_only_broken_pipelines is false2432 behaves like triggered Hangouts Chat integration2433 calls Hangouts Chat API2434 with default branch2435 when only default branch are to be notified2436 behaves like triggered Hangouts Chat integration2437 calls Hangouts Chat API2438 when only protected branches are to be notified2439 behaves like untriggered Hangouts Chat integration2440 does not call Hangouts Chat API2441 when default and protected branches are to be notified2442 behaves like triggered Hangouts Chat integration2443 calls Hangouts Chat API2444 when all branches are to be notified2445 behaves like triggered Hangouts Chat integration2446 calls Hangouts Chat API2447 with protected branch2448 when only default branch are to be notified2449 behaves like untriggered Hangouts Chat integration2450 does not call Hangouts Chat API2451 when only protected branches are to be notified2452 behaves like triggered Hangouts Chat integration2453 calls Hangouts Chat API2454 when default and protected branches are to be notified2455 behaves like triggered Hangouts Chat integration2456 calls Hangouts Chat API2457 when all branches are to be notified2458 behaves like triggered Hangouts Chat integration2459 calls Hangouts Chat API2460 with neither default nor protected branch2461 when only default branch are to be notified2462 behaves like untriggered Hangouts Chat integration2463 does not call Hangouts Chat API2464 when only protected branches are to be notified2465 behaves like untriggered Hangouts Chat integration2466 does not call Hangouts Chat API2467 when default and protected branches are to be notified2468 behaves like untriggered Hangouts Chat integration2469 does not call Hangouts Chat API2470 when all branches are to be notified2471 behaves like triggered Hangouts Chat integration2472 calls Hangouts Chat API2473 deployment events2474 behaves like untriggered Hangouts Chat integration2475 does not call Hangouts Chat API2476Gitlab::Ci::Status::Build::Failed2477 #text2478 does not override status text2479 #icon2480 does not override status icon2481 #group2482 does not override status group2483 #favicon2484 does not override status label2485 #label2486 does not override label2487 #badge_tooltip2488 does override badge_tooltip2489 #status_tooltip2490 does override status_tooltip2491 .matches?2492 with a failed build2493 returns true2494 with any other type of build2495 returns false2496 covers all failure reasons2497 unknown_failure2498 is a valid status2499 script_failure2500 is a valid status2501 api_failure2502 is a valid status2503 stuck_or_timeout_failure2504 is a valid status2505 runner_system_failure2506 is a valid status2507 missing_dependency_failure2508 is a valid status2509 runner_unsupported2510 is a valid status2511 stale_schedule2512 is a valid status2513 job_execution_timeout2514 is a valid status2515 archived_failure2516 is a valid status2517 unmet_prerequisites2518 is a valid status2519 scheduler_failure2520 is a valid status2521 data_integrity_failure2522 is a valid status2523 forward_deployment_failure2524 is a valid status2525 user_blocked2526 is a valid status2527 project_deleted2528 is a valid status2529 ci_quota_exceeded2530 is a valid status2531 pipeline_loop_detected2532 is a valid status2533 no_matching_runner2534 is a valid status2535 trace_size_exceeded2536 is a valid status2537 builds_disabled2538 is a valid status2539 environment_creation_failure2540 is a valid status2541 deployment_rejected2542 is a valid status2543 protected_environment_failure2544 is a valid status2545 insufficient_bridge_permissions2546 is a valid status2547 downstream_bridge_project_not_found2548 is a valid status2549 invalid_bridge_trigger2550 is a valid status2551 upstream_bridge_project_not_found2552 is a valid status2553 insufficient_upstream_permissions2554 is a valid status2555 bridge_pipeline_is_child_pipeline2556 is a valid status2557 downstream_pipeline_creation_failed2558 is a valid status2559 secrets_provider_not_found2560 is a valid status2561 reached_max_descendant_pipelines_depth2562 is a valid status2563 ip_restriction_failure2564 is a valid status2565 invalid failure message2566 is an invalid status2567Gitlab::Database::BackgroundMigration::BatchedMigrationRunner2568 #run_migration_job2569 when the migration has no previous jobs2570 when the migration has batches to process2571 runs the job for the first batch2572 optimizes the migration after executing the job2573 when the batch maximum exceeds the migration maximum2574 clamps the batch maximum to the migration maximum2575 when the migration has no batches to process2576 behaves like it has completed the migration2577 does not create and run a migration job2578 marks the migration as finished2579 when the migration should stop2580 changes the status to failure2581 when the migration has previous jobs2582 when the migration has no batches remaining2583 behaves like it has completed the migration2584 does not create and run a migration job2585 marks the migration as finished2586 when the migration has batches to process2587 runs the migration job for the next batch2588 when the batch minimum exceeds the migration maximum2589 behaves like it has completed the migration2590 does not create and run a migration job2591 marks the migration as finished2592 when migration has failed jobs2593 retries the failed job2594 when failed job has reached the maximum number of attempts2595 marks the migration as failed2596 when migration has stuck jobs2597 retries the stuck job2598 when migration has possible stuck jobs2599 keeps the migration active2600 when the migration has batches to process and failed jobs2601 runs next batch then retries the failed job2602 #run_entire_migration2603 when not in a development or test environment2604 raises an error2605 when the given migration is not active2606 does not create and run migration jobs2607 when the given migration is active2608 runs all jobs inline until finishing the migration2609 #finalize2610 when the migration is not yet completed2611-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2612 -> 0.0018s2613-- create_table(:_test_batched_migrations_test_table, {:id=>false})2614 -> 0.0036s2615-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")2616 -> 0.0019s2617-- execute("SELECT * FROM _test_batched_migrations_test_table WHERE some_id_convert_to_bigint IS NULL")2618 -> 0.0015s2619-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2620 -> 0.0022s2621 completes the migration2622 when migration fails to complete2623-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2624 -> 0.0017s2625-- create_table(:_test_batched_migrations_test_table, {:id=>false})2626 -> 0.0031s2627-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")2628 -> 0.0019s2629-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2630 -> 0.0020s2631 raises an error2632 when the migration is already finished2633-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2634 -> 0.0012s2635-- create_table(:_test_batched_migrations_test_table, {:id=>false})2636 -> 0.0026s2637-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")2638 -> 0.0013s2639-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2640 -> 0.0017s2641 is a no-op2642 when the migration does not exist2643-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2644 -> 0.0021s2645-- create_table(:_test_batched_migrations_test_table, {:id=>false})2646 -> 0.0035s2647-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")2648 -> 0.0014s2649-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})2650 -> 0.0018s2651 is a no-op2652 .finalize2653 when the connection is passed2654 initializes the object with the given connection2655Gitlab::UrlSanitizer2656 .sanitize2657 input: "http://user:pass@test.com/root/repoC.git/", output: "http://*****:*****@test.com/root/repoC.git/"2658 is expected to include "repository 'http://*****:*****@test.com/root/repoC.git/' not found"2659 input: "https://user:pass@test.com/root/repoA.git/", output: "https://*****:*****@test.com/root/repoA.git/"2660 is expected to include "repository 'https://*****:*****@test.com/root/repoA.git/' not found"2661 input: "ssh://user@host.test/path/to/repo.git", output: "ssh://*****@host.test/path/to/repo.git"2662 is expected to include "repository 'ssh://*****@host.test/path/to/repo.git' not found"2663 input: "git://user:pass@host.test/path/to/repo.git", output: "git://*****:*****@host.test/path/to/repo.git"2664 is expected to include "repository 'git://*****:*****@host.test/path/to/repo.git' not found"2665 input: "git://host.test/path/to/repo.git", output: "git://host.test/path/to/repo.git"2666 is expected to include "repository 'git://host.test/path/to/repo.git' not found"2667 input: "user@server:project.git", output: "user@server:project.git"2668 is expected to include "repository 'user@server:project.git' not found"2669 input: "user:pass@server:project.git", output: "user:pass@server:project.git"2670 is expected to include "repository 'user:pass@server:project.git' not found"2671 input: "ssh://", output: ""2672 is expected to include "repository '' not found"2673 .valid?2674 value: false, url: nil2675 is expected to eq false2676 value: false, url: ""2677 is expected to eq false2678 value: false, url: "123://invalid:url"2679 is expected to eq false2680 value: false, url: "valid@project:url.git"2681 is expected to eq false2682 value: false, url: "valid:pass@project:url.git"2683 is expected to eq false2684 value: false, url: ["test", "array"]2685 is expected to eq false2686 value: true, url: "ssh://example.com"2687 is expected to eq true2688 value: true, url: "ssh://:@example.com"2689 is expected to eq true2690 value: true, url: "ssh://foo@example.com"2691 is expected to eq true2692 value: true, url: "ssh://foo:bar@example.com"2693 is expected to eq true2694 value: true, url: "ssh://foo:bar@example.com/group/group/project.git"2695 is expected to eq true2696 value: true, url: "git://example.com/group/group/project.git"2697 is expected to eq true2698 value: true, url: "git://foo:bar@example.com/group/group/project.git"2699 is expected to eq true2700 value: true, url: "http://foo:bar@example.com/group/group/project.git"2701 is expected to eq true2702 value: true, url: "https://foo:bar@example.com/group/group/project.git"2703 is expected to eq true2704 .valid_web?2705 value: false, url: nil2706 is expected to eq false2707 value: false, url: ""2708 is expected to eq false2709 value: false, url: "123://invalid:url"2710 is expected to eq false2711 value: false, url: "valid@project:url.git"2712 is expected to eq false2713 value: false, url: "valid:pass@project:url.git"2714 is expected to eq false2715 value: false, url: ["test", "array"]2716 is expected to eq false2717 value: false, url: "ssh://example.com"2718 is expected to eq false2719 value: false, url: "ssh://:@example.com"2720 is expected to eq false2721 value: false, url: "ssh://foo@example.com"2722 is expected to eq false2723 value: false, url: "ssh://foo:bar@example.com"2724 is expected to eq false2725 value: false, url: "ssh://foo:bar@example.com/group/group/project.git"2726 is expected to eq false2727 value: false, url: "git://example.com/group/group/project.git"2728 is expected to eq false2729 value: false, url: "git://foo:bar@example.com/group/group/project.git"2730 is expected to eq false2731 value: true, url: "http://foo:bar@example.com/group/group/project.git"2732 is expected to eq true2733 value: true, url: "https://foo:bar@example.com/group/group/project.git"2734 is expected to eq true2735 #sanitized_url2736 credentials in hash2737 username: "foo", password: "bar"2738 is expected to eq "http://example.com"2739 username: "foo", password: ""2740 is expected to eq "http://example.com"2741 username: "foo", password: nil2742 is expected to eq "http://example.com"2743 username: "", password: "bar"2744 is expected to eq "http://example.com"2745 username: "", password: ""2746 is expected to eq "http://example.com"2747 username: "", password: nil2748 is expected to eq "http://example.com"2749 username: nil, password: "bar"2750 is expected to eq "http://example.com"2751 username: nil, password: ""2752 is expected to eq "http://example.com"2753 username: nil, password: nil2754 is expected to eq "http://example.com"2755 credentials in URL2756 userinfo: "foo:bar@"2757 is expected to eq "http://example.com"2758 userinfo: "foo@"2759 is expected to eq "http://example.com"2760 userinfo: ":bar@"2761 is expected to eq "http://example.com"2762 userinfo: ":@"2763 is expected to eq "http://example.com"2764 userinfo: "@"2765 is expected to eq "http://example.com"2766 userinfo: nil2767 is expected to eq "http://example.com"2768 #credentials2769 credentials in hash2770 overrides URL-provided credentials2771 credentials in URL2772 url: "http://foo:bar@example.com", credentials: {:user=>"foo", :password=>"bar"}2773 is expected to eq {:password=>"bar", :user=>"foo"}2774 url: "http://foo:bar:baz@example.com", credentials: {:user=>"foo", :password=>"bar:baz"}2775 is expected to eq {:password=>"bar:baz", :user=>"foo"}2776 url: "http://:bar@example.com", credentials: {:user=>nil, :password=>"bar"}2777 is expected to eq {:password=>"bar", :user=>nil}2778 url: "http://foo:@example.com", credentials: {:user=>"foo", :password=>nil}2779 is expected to eq {:password=>nil, :user=>"foo"}2780 url: "http://foo@example.com", credentials: {:user=>"foo", :password=>nil}2781 is expected to eq {:password=>nil, :user=>"foo"}2782 url: "http://:@example.com", credentials: {:user=>nil, :password=>nil}2783 is expected to eq {:password=>nil, :user=>nil}2784 url: "http://@example.com", credentials: {:user=>nil, :password=>nil}2785 is expected to eq {:password=>nil, :user=>nil}2786 url: "http://example.com", credentials: {:user=>nil, :password=>nil}2787 is expected to eq {:password=>nil, :user=>nil}2788 url: nil, credentials: {:user=>nil, :password=>nil}2789 is expected to eq {:password=>nil, :user=>nil}2790 url: "", credentials: {:user=>nil, :password=>nil}2791 is expected to eq {:password=>nil, :user=>nil}2792 url: "no", credentials: {:user=>nil, :password=>nil}2793 is expected to eq {:password=>nil, :user=>nil}2794 with mixed credentials2795 url: "http://a@example.com", credentials: {:password=>"d"}, result: {:user=>"a", :password=>"d"}2796 is expected to eq {:password=>"d", :user=>"a"}2797 url: "http://a:b@example.com", credentials: {:password=>"d"}, result: {:user=>"a", :password=>"d"}2798 is expected to eq {:password=>"d", :user=>"a"}2799 url: "http://:b@example.com", credentials: {:password=>"d"}, result: {:user=>nil, :password=>"d"}2800 is expected to eq {:password=>"d", :user=>nil}2801 url: "http://a@example.com", credentials: {:user=>"c"}, result: {:user=>"c", :password=>nil}2802 is expected to eq {:password=>nil, :user=>"c"}2803 url: "http://a:b@example.com", credentials: {:user=>"c"}, result: {:user=>"c", :password=>"b"}2804 is expected to eq {:password=>"b", :user=>"c"}2805 url: "http://a:b@example.com", credentials: {:user=>""}, result: {:user=>"a", :password=>"b"}2806 is expected to eq {:password=>"b", :user=>"a"}2807 #user2808 credentials in hash2809 overrides URL-provided user2810 credentials in URL2811 url: "http://foo:bar@example.com", user: "foo"2812 is expected to eq "foo"2813 url: "http://foo:bar:baz@example.com", user: "foo"2814 is expected to eq "foo"2815 url: "http://:bar@example.com", user: nil2816 is expected to eq nil2817 url: "http://foo:@example.com", user: "foo"2818 is expected to eq "foo"2819 url: "http://foo@example.com", user: "foo"2820 is expected to eq "foo"2821 url: "http://:@example.com", user: nil2822 is expected to eq nil2823 url: "http://@example.com", user: nil2824 is expected to eq nil2825 url: "http://example.com", user: nil2826 is expected to eq nil2827 url: nil, user: nil2828 is expected to eq nil2829 url: "", user: nil2830 is expected to eq nil2831 url: "no", user: nil2832 is expected to eq nil2833 #full_url2834 credentials in hash2835 credentials: {:user=>"foo", :password=>"bar"}, userinfo: "foo:bar@"2836 is expected to eq "http://foo:bar@example.com"2837 credentials: {:user=>"foo", :password=>""}, userinfo: "foo@"2838 is expected to eq "http://foo@example.com"2839 credentials: {:user=>"foo", :password=>nil}, userinfo: "foo@"2840 is expected to eq "http://foo@example.com"2841 credentials: {:user=>"", :password=>"bar"}, userinfo: ":bar@"2842 is expected to eq "http://:bar@example.com"2843 credentials: {:user=>"", :password=>""}, userinfo: nil2844 is expected to eq "http://example.com"2845 credentials: {:user=>"", :password=>nil}, userinfo: nil2846 is expected to eq "http://example.com"2847 credentials: {:user=>nil, :password=>"bar"}, userinfo: ":bar@"2848 is expected to eq "http://:bar@example.com"2849 credentials: {:user=>nil, :password=>""}, userinfo: nil2850 is expected to eq "http://example.com"2851 credentials: {:user=>nil, :password=>nil}, userinfo: nil2852 is expected to eq "http://example.com"2853 credentials in URL2854 input: nil, output: ""2855 is expected to eq ""2856 input: "", output: :same2857 is expected to eq ""2858 input: "git@example.com", output: :same2859 is expected to eq "git@example.com"2860 input: "http://example.com", output: :same2861 is expected to eq "http://example.com"2862 input: "http://foo@example.com", output: :same2863 is expected to eq "http://foo@example.com"2864 input: "http://foo:@example.com", output: "http://foo@example.com"2865 is expected to eq "http://foo@example.com"2866 input: "http://:bar@example.com", output: :same2867 is expected to eq "http://:bar@example.com"2868 input: "http://foo:bar@example.com", output: :same2869 is expected to eq "http://foo:bar@example.com"2870 input: "http://foo:g p@example.com", output: "http://foo:g%20p@example.com"2871 is expected to eq "http://foo:g%20p@example.com"2872 input: "http://foo:s/h@example.com", output: "http://foo:s%2Fh@example.com"2873 is expected to eq "http://foo:s%2Fh@example.com"2874 input: "http://t u:a#b@example.com", output: "http://t%20u:a%23b@example.com"2875 is expected to eq "http://t%20u:a%23b@example.com"2876 input: "http://t+u:a#b@example.com", output: "http://t%2Bu:a%23b@example.com"2877 is expected to eq "http://t%2Bu:a%23b@example.com"2878 when credentials contains special chars2879 parses the URL without errors2880Gitlab::Ci::Build::Rules::Rule::Clause::Exists2881 #satisfied_by?2882 when context is Build::Context::Build2883 behaves like an exists rule with a context2884 behaves like a glob matching rule2885 exact top-level match2886 is expected to eq true2887 exact top-level no match2888 is expected to eq false2889 pattern top-level match2890 is expected to eq true2891 pattern top-level no match2892 is expected to eq false2893 exact nested match2894 is expected to eq true2895 exact nested no match2896 is expected to eq false2897 pattern nested match2898 is expected to eq true2899 pattern nested no match2900 is expected to eq false2901 ext top-level match2902 is expected to eq true2903 ext nested no match2904 is expected to eq false2905 ext slash no match2906 is expected to eq false2907 after pattern comparision limit is reached2908 is expected to be truthy2909 when context is Build::Context::Global2910 behaves like an exists rule with a context2911 behaves like a glob matching rule2912 exact top-level match2913 is expected to eq true2914 exact top-level no match2915 is expected to eq false2916 pattern top-level match2917 is expected to eq true2918 pattern top-level no match2919 is expected to eq false2920 exact nested match2921 is expected to eq true2922 exact nested no match2923 is expected to eq false2924 pattern nested match2925 is expected to eq true2926 pattern nested no match2927 is expected to eq false2928 ext top-level match2929 is expected to eq true2930 ext nested no match2931 is expected to eq false2932 ext slash no match2933 is expected to eq false2934 after pattern comparision limit is reached2935 is expected to be truthy2936 when context is Config::External::Context2937 behaves like an exists rule with a context2938 behaves like a glob matching rule2939 exact top-level match2940 is expected to eq true2941 exact top-level no match2942 is expected to eq false2943 pattern top-level match2944 is expected to eq true2945 pattern top-level no match2946 is expected to eq false2947 exact nested match2948 is expected to eq true2949 exact nested no match2950 is expected to eq false2951 pattern nested match2952 is expected to eq true2953 pattern nested no match2954 is expected to eq false2955 ext top-level match2956 is expected to eq true2957 ext nested no match2958 is expected to eq false2959 ext slash no match2960 is expected to eq false2961 after pattern comparision limit is reached2962 is expected to be truthy2963PushEventPayloadService2964 #execute2965 creates a new PushEventPayload row2966 sets the push_event_payload association of the used event2967 #commit_title2968 returns nil if no commits were pushed2969 returns a String limited to 70 characters2970 does not truncate the commit message if it is shorter than 70 characters2971 includes the first line of a commit message if the message spans multiple lines2972 #commit_from_id2973 returns nil when creating a new ref2974 returns the ID of the first commit when pushing to an existing ref2975 #commit_to_id2976 returns nil when removing an existing ref2977 #commit_count2978 returns the number of commits2979 raises when the push data does not contain the commits count2980 #ref2981 returns the name of the ref2982 raises when the push data does not contain the ref name2983 #revision_before2984 returns the revision from before the push2985 raises when the push data does not contain the before revision2986 #revision_after2987 returns the revision from after the push2988 raises when the push data does not contain the after revision2989 #trimmed_ref2990 returns the ref name without its prefix2991 #create?2992 returns true when creating a new ref2993 returns false when pushing to an existing ref2994 #remove?2995 returns true when removing an existing ref2996 returns false pushing to an existing ref2997 #action2998 returns :created when creating a ref2999 returns :removed when removing an existing ref3000 returns :pushed when pushing to an existing ref3001 #ref_type3002 returns :tag for a tag3003 returns :branch for a branch3004Banzai::Filter::References::SnippetReferenceFilter3005 requires project context3006 ignores valid references contained inside 'pre' element3007 ignores valid references contained inside 'code' element3008 ignores valid references contained inside 'a' element3009 ignores valid references contained inside 'style' element3010 internal reference3011 links to a valid reference3012 links with adjacent text3013 ignores invalid snippet IDs3014 includes a title attribute3015 escapes the title attribute3016 includes default classes3017 includes a data-project attribute3018 includes a data-snippet attribute3019 supports an :only_path context3020 cross-project / cross-namespace complete reference3021 links to a valid reference3022 link has valid text3023 has valid text3024 ignores invalid snippet IDs on the referenced project3025 cross-project / same-namespace complete reference3026 links to a valid reference3027 link has valid text3028 has valid text3029 ignores invalid snippet IDs on the referenced project3030 cross-project shorthand reference3031 links to a valid reference3032 link has valid text3033 has valid text3034 ignores invalid snippet IDs on the referenced project3035 cross-project URL reference3036 links to a valid reference3037 links with adjacent text3038 ignores invalid snippet IDs on the referenced project3039 group context3040 links to a valid reference3041 ignores internal references3042 checking N+13043 does not have N+1 per multiple references per project3044List3045 behaves like having unique enum values3046 has unique values in "list_type"3047 behaves like boards listable model3048 associations3049 is expected to validate that :position cannot be empty/falsy3050 is expected to validate that :position looks like an integer greater than or equal to 03051 when list_type is set to closed3052 is expected not to validate that :label cannot be empty/falsy3053 is expected not to validate that :position cannot be empty/falsy3054 scopes3055 .ordered3056 returns lists ordered by type and position3057 .without_types3058 excludes lists of given types3059 #destroyable?3060 returns true when list_type is set to label3061 returns false when list_type is set to closed3062 #movable?3063 returns true when list_type is set to label3064 returns false when list_type is set to closed3065 #title3066 returns label name when list_type is set to label3067 returns Open when list_type is set to backlog3068 returns Closed when list_type is set to closed3069 #destroy3070 can be destroyed when list_type is set to label3071 can not be destroyed when list_type is set to closed3072 behaves like list_preferences_for user3073 #preferences_for3074 when user is nil3075 returns not persisted preferences3076 when a user preference already exists3077 loads preference for user3078 when preferences for user does not exist3079 returns not persisted preferences3080 #update_preferences_for3081 when user is present3082 when there are no preferences for user3083 creates new user preferences3084 when there are preferences for user3085 updates user preferences3086 when user is nil3087 does not create user preferences3088 relationships3089 is expected to belong to board required: false3090 is expected to belong to label required: false3091 validations3092 is expected to validate that :board cannot be empty/falsy3093 is expected to validate that :label cannot be empty/falsy3094 is expected to validate that :list_type cannot be empty/falsy3095Operations::FeatureFlag3096 behaves like includes Limitable concern3097 #exceeds_limits?3098 without plan limits configured3099 is expected to eq false3100 without plan limits configured3101 is expected to eq false3102 with an existing model3103 is expected to eq true3104 validations3105 is expected to be a kind of Limitable3106 without plan limits configured3107 can create new models3108 with plan limits configured3109 can create new models3110 with an existing model3111 cannot create new models exceeding the plan limits3112 associations3113 is expected to belong to project required: false3114 is expected to have many strategies3115 .reference_pattern3116 is expected to match "[feature_flag:123]"3117 is expected to match "[feature_flag:gitlab-org/gitlab/123]"3118 .link_reference_pattern3119 is expected to match "http://localhost/gitlab-org/gitlab/-/feature_flags/123/edit"3120 is expected not to match "http://localhost/gitlab-org/gitlab/issues/123/edit"3121 is expected not to match "gitlab-org/gitlab/-/feature_flags/123/edit"3122 #to_reference3123 returns feature flag id3124 returns complete path to the feature flag with full: true3125 validations3126 is expected to validate that :project cannot be empty/falsy3127 is expected to validate that :name cannot be empty/falsy3128 is expected to validate that :name is case-sensitively unique within the scope of :project_id3129 is expected to define :version as an enum backed by an integer with values ‹{new_version_flag: 2}›3130 a version 2 feature flag3131 is valid if associated with Operations::FeatureFlags::Strategy models3132 behaves like AtomicInternalId3133 .has_internal_id3134 Module inclusion3135 is expected to includes the AtomicInternalId module3136 Validation3137 when presence validation is required3138 when creating an object3139 raises an error if the internal id is blank3140 when updating an object3141 raises an error if the internal id is blank3142 when presence validation is not required3143 when creating an object3144 does not raise an error if the internal id is blank (PENDING: No reason given)3145 when updating an object3146 does not raise an error if the internal id is blank (PENDING: No reason given)3147 Creating an instance3148 saves a new instance properly3149 internal id generation3150 calls InternalId.generate_next and sets internal id attribute3151 does not overwrite an existing internal id3152 when the instance has an internal ID set3153 calls InternalId.update_last_value and sets the `last_value` to that of the instance3154 unsetting the instance internal id on rollback3155 when the internal id has been changed3156 when the internal id is automatically set3157 clears it on the instance3158 when the internal id is manually set3159 does not clear it on the instance3160 when the internal id has not been changed3161 preserves the value on the instance3162 supply of internal ids3163 provides a persistent supply of IID values, sensitive to the current state3164 #reset_scope_internal_id_attribute3165 rewinds the allocated IID3166 allocates the same IID3167 .enabled3168 when the feature flag is active3169 returns the flag3170 when the feature flag is inactive3171 does not return the flag3172 .disabled3173 when the feature flag is active3174 does not return the flag3175 when the feature flag is inactive3176 returns the flag3177 .for_unleash_client3178 matches wild cards in the scope3179 matches wild cards case sensitively3180 returns feature flags ordered by id3181 #hook_attrs3182 includes expected attributes3183EnvironmentSerializer3184 behaves like avoid N+1 on environments serialization3185 avoids N+1 database queries with grouping3186 avoids N+1 database queries without grouping3187 does not preload for environments that does not exist in the page3188 when there is a collection of objects provided3189 contains important elements of environment3190 generates payload for collection3191 when representing environments within folders3192 when there is a single environment3193 represents one standalone environment3194 when there are multiple environments in folder3195 represents one item that is a folder3196 when there are multiple folders and standalone environments3197 represents multiple items grouped within folders3198 when used with pagination3199 creates a paginated serializer3200 when resource is paginatable relation3201 when there is a single environment object in relation3202 serializes environments3203 when multiple environment objects are serialized3204 serializes appropriate number of objects3205 appends relevant headers3206 when grouping environments within folders3207 paginates grouped items including ordering3208 appends correct total page count header3209 appends correct page count headers3210 batching loading3211 uses the custom preloader service3212 fetches the last and upcoming deployment correctly3213AlertManagement::CreateAlertIssueService3214 #execute3215 when a user is allowed to create an issue3216 checks permissions3217 with alert severity3218 alert_severity: "critical", incident_severity: "critical"3219 sets the correct severity level3220 alert_severity: "high", incident_severity: "high"3221 sets the correct severity level3222 alert_severity: "medium", incident_severity: "medium"3223 sets the correct severity level3224 alert_severity: "low", incident_severity: "low"3225 sets the correct severity level3226 alert_severity: "info", incident_severity: "unknown"3227 sets the correct severity level3228 alert_severity: "unknown", incident_severity: "unknown"3229 sets the correct severity level3230 when the alert is prometheus alert3231 behaves like creating an alert issue3232 creates an issue3233 returns a created issue3234 has a successful status3235 sets alert.issue_id in the same ActiveRecord query execution3236 creates a system note3237 behaves like setting an issue attributes3238 sets issue author to the current user3239 sets the issue title3240 sets the issue description3241 when the alert is generic3242 behaves like creating an alert issue3243 creates an issue3244 returns a created issue3245 has a successful status3246 sets alert.issue_id in the same ActiveRecord query execution3247 creates a system note3248 behaves like setting an issue attributes3249 sets issue author to the current user3250 sets the issue title3251 sets the issue description3252 when alert title matches the default title exactly3253 updates issue title with the IID3254 when the alert title contains the default title3255 does not change issue title3256 when issue cannot be created3257 has an unsuccessful status3258 when alert cannot be updated3259 responds with error3260 when alert already has an attached issue3261 does not create yet another issue3262 responds with error3263 when a user is not allowed to create an issue3264 checks permissions3265 responds with error3266Gitlab::ImportExport::Project::ObjectBuilder3267 request store is not active3268 ignore cache initialize3269 request store is active3270 initialize cache in memory3271 cache object when first time find the object3272 read from cache when object has been cached3273 labels3274 finds the existing group label3275 finds the existing group label in root ancestor3276 creates a new label3277 milestones3278 finds the existing group milestone3279 finds the existing group milestone in root ancestor3280 creates a new milestone3281 with clashing iid3282 creates milestone and claims iid for the new milestone3283 merge_request3284 finds the existing merge_request3285 creates a new merge_request3286 merge request diff commit users3287 finds the existing user3288 creates a new user3289 merge request diff commits3290 when the "committer" object is present3291 uses this object as the committer3292 when the "committer" object is missing3293 creates one from the committer name and Email3294 when the "commit_author" object is present3295 uses this object as the author3296 when the "commit_author" object is missing3297 creates one from the author name and Email3298 #find_or_create_diff_commit_user3299 caches the results3300 when the user already exists3301 returns the existing user3302 when the user does not exist3303 creates the user3304StubFeatureFlags3305 #stub_feature_flags3306 subsquent run changes state3307 when checking global state3308 feature_actors: false, expected_result: false3309 is expected to eq false3310 is expected not to eq false3311 default_enabled_if_undefined does not impact feature state3312 is expected to eq false3313 is expected not to eq false3314 feature_actors: true, expected_result: true3315 is expected to eq true3316 is expected not to eq true3317 default_enabled_if_undefined does not impact feature state3318 is expected to eq true3319 is expected not to eq true3320 feature_actors: :A, expected_result: false3321 is expected to eq false3322 is expected not to eq false3323 default_enabled_if_undefined does not impact feature state3324 is expected to eq false3325 is expected not to eq false3326 feature_actors: [:A], expected_result: false3327 is expected to eq false3328 is expected not to eq false3329 default_enabled_if_undefined does not impact feature state3330 is expected to eq false3331 is expected not to eq false3332 feature_actors: [:A, :B], expected_result: false3333 is expected to eq false3334 is expected not to eq false3335 default_enabled_if_undefined does not impact feature state3336 is expected to eq false3337 is expected not to eq false3338 when checking scoped state3339 feature_actors: false, tested_actor: nil, expected_result: false3340 is expected to eq false3341 is expected not to eq false3342 default_enabled_if_undefined does not impact feature state3343 is expected to eq false3344 is expected not to eq false3345 feature_actors: true, tested_actor: nil, expected_result: true3346 is expected to eq true3347 is expected not to eq true3348 default_enabled_if_undefined does not impact feature state3349 is expected to eq true3350 is expected not to eq true3351 feature_actors: false, tested_actor: :A, expected_result: false3352 is expected to eq false3353 is expected not to eq false3354 default_enabled_if_undefined does not impact feature state3355 is expected to eq false3356 is expected not to eq false3357 feature_actors: true, tested_actor: :A, expected_result: true3358 is expected to eq true3359 is expected not to eq true3360 default_enabled_if_undefined does not impact feature state3361 is expected to eq true3362 is expected not to eq true3363 feature_actors: :A, tested_actor: nil, expected_result: false3364 is expected to eq false3365 is expected not to eq false3366 default_enabled_if_undefined does not impact feature state3367 is expected to eq false3368 is expected not to eq false3369 feature_actors: :A, tested_actor: :A, expected_result: true3370 is expected to eq true3371 is expected not to eq true3372 default_enabled_if_undefined does not impact feature state3373 is expected to eq true3374 is expected not to eq true3375 feature_actors: :A, tested_actor: :B, expected_result: false3376 is expected to eq false3377 is expected not to eq false3378 default_enabled_if_undefined does not impact feature state3379 is expected to eq false3380 is expected not to eq false3381 feature_actors: [:A], tested_actor: nil, expected_result: false3382 is expected to eq false3383 is expected not to eq false3384 default_enabled_if_undefined does not impact feature state3385 is expected to eq false3386 is expected not to eq false3387 feature_actors: [:A], tested_actor: :A, expected_result: true3388 is expected to eq true3389 is expected not to eq true3390 default_enabled_if_undefined does not impact feature state3391 is expected to eq true3392 is expected not to eq true3393 feature_actors: [:A], tested_actor: :B, expected_result: false3394 is expected to eq false3395 is expected not to eq false3396 default_enabled_if_undefined does not impact feature state3397 is expected to eq false3398 is expected not to eq false3399 feature_actors: [:A, :B], tested_actor: nil, expected_result: false3400 is expected to eq false3401 is expected not to eq false3402 default_enabled_if_undefined does not impact feature state3403 is expected to eq false3404 is expected not to eq false3405 feature_actors: [:A, :B], tested_actor: :A, expected_result: true3406 is expected to eq true3407 is expected not to eq true3408 default_enabled_if_undefined does not impact feature state3409 is expected to eq true3410 is expected not to eq true3411 feature_actors: [:A, :B], tested_actor: :B, expected_result: true3412 is expected to eq true3413 is expected not to eq true3414 default_enabled_if_undefined does not impact feature state3415 is expected to eq true3416 is expected not to eq true3417 type handling3418 raises error3419 feature_actors: "string"3420 is expected to raise ArgumentError with message matching /accepts only/3421 feature_actors: 13422 is expected to raise ArgumentError with message matching /accepts only/3423 feature_actors: 1.03424 is expected to raise ArgumentError with message matching /accepts only/3425 feature_actors: #<Object:0x00007f7b756144f8>3426 is expected to raise ArgumentError with message matching /accepts only/3427 does not raise error3428 feature_actors: true3429 is expected not to raise Exception3430 feature_actors: false3431 is expected not to raise Exception3432 feature_actors: nil3433 is expected not to raise Exception3434 feature_actors: #<StubFeatureFlags::StubFeatureGate:0x00007f7b87d9f1e8 @flipper_id=100>3435 is expected not to raise Exception3436 feature_actors: #<User id: @>3437 is expected not to raise Exception3438 stub timing3439 let_it_be variable3440 is expected to eq true3441 before_all variable3442 is expected to eq true3443 before(:all) variable3444 is expected to eq true3445 with stub_feature_flags meta3446 as true3447 is expected to eq true3448 as false3449 is expected to eq false3450WikiPage::Meta3451 Associations3452 is expected to belong to project required: false3453 is expected to have many slugs3454 is expected to have many events3455 can find slugs3456 Validations3457 is expected to validate that :project_id cannot be empty/falsy3458 is expected to validate that the length of :title is at most 2553459 is expected not to allow :title to be ‹nil›3460 is forbidden to have two records for the same project with the same canonical_slug3461 #canonical_slug3462 can be set on initialization3463 there are no slugs3464 is expected to have attributes {:canonical_slug => (be nil)}3465 we have some non-canonical slugs3466 is expected to have attributes {:canonical_slug => (be nil)}3467 issues at most one query3468 issues no queries if we already know the slug3469 we have a canonical slug3470 has the correct value3471 canonical_slug=3472 the slug is not known to us3473 changes it to the correct value3474 ensures the slug is in the db3475 issues at most N queries3476 issues fewer queries if we already know the current slug3477 the slug is already in the DB (but not canonical)3478 changes it to the correct value3479 ensures the slug is in the db3480 issues at most N queries3481 issues fewer queries if we already know the current slug3482 the slug is already in the DB (and canonical)3483 changes it to the correct value3484 ensures the slug is in the db3485 issues at most N queries3486 issues fewer queries if we already know the current slug3487 the slug is up to date and in the DB3488 changes it to the correct value3489 ensures the slug is in the db3490 issues at most N queries3491 issues fewer queries if we already know the current slug3492 .find_or_create3493 there are problems3494 the slug is too long3495 raises an error3496 a conflicting record exists3497 raises an error3498 the wiki page is not valid3499 raises an error3500 no existing record exists3501 establishes the correct state3502 makes a reasonable number of DB queries3503 the commit happened a day ago3504 establishes the correct state3505 makes a reasonable number of DB queries3506 the last_known_slug is the same as the current slug, as on creation3507 establishes the correct state3508 makes a reasonable number of DB queries3509 a record exists in the DB in the correct state3510 establishes the correct state3511 makes a reasonable number of DB queries3512 a record exists in the DB, but we need to update timestamps3513 establishes the correct state3514 makes a reasonable number of DB queries3515 we need to update the slug, but not the title3516 establishes the correct state3517 makes a reasonable number of DB queries3518 we need to update the title, but not the slug3519 establishes the correct state3520 makes a reasonable number of DB queries3521 we want to change the slug back to a previous version3522 establishes the correct state3523 makes a reasonable number of DB queries3524 we want to change the slug a bunch of times3525 establishes the correct state3526 makes a reasonable number of DB queries3527 we need to update the title and the slug3528 establishes the correct state3529 makes a reasonable number of DB queries3530ProcessCommitWorker3531 #perform3532 does not process the commit when the project does not exist3533 does not process the commit when the user does not exist3534 is labeled as idempotent3535 performs multiple times sequentially without raising an exception3536 processes the commit message3537 updates the issue metrics3538 #process_commit_message3539 when pushing to the default branch3540 closes issues that should be closed per the commit message3541 creates cross references3542 when pushing to a non-default branch3543 does not close any issues3544 does not create cross references3545 when commit is a merge request merge commit to the default branch3546 does not close any issues from the commit message3547 still creates cross references3548 #close_issues3549 when the user can update the issues3550 closes the issues3551 when the user can not update the issues3552 does not close the issues3553 #update_issue_metrics3554 when commit has issue reference3555 when issue has no first_mentioned_in_commit_at set3556 updates issue metrics3557 when issue has first_mentioned_in_commit_at earlier than given committed_date3558 doesn't update issue metrics3559 when issue has first_mentioned_in_commit_at later than given committed_date3560 doesn't update issue metrics3561 when commit has no issue references3562 doesn't execute any queries with false conditions3563 #build_commit3564 returns a Commit3565 parses date strings into Time instances3566CacheMarkdownField3567 for Active record classes3568 behaves like a class with cached markdown fields3569 #cached_html_up_to_date?3570 returns false when the version is absent3571 returns false when the version is too early3572 returns false when the version is too late3573 returns false when the local version was bumped3574 returns true when the local version is default3575 returns true when the cached version is just right3576 #latest_cached_markdown_version3577 returns default version3578 #refresh_markdown_cache3579 fills all html fields3580 does not save the result3581 updates the markdown cache version3582 #refresh_markdown_cache!3583 fills all html fields3584 saves the changes3585 #banzai_render_context3586 sets project to nil if the object lacks a project3587 excludes author if the object lacks an author3588 raises if the context for an unrecognised field is requested3589 includes the pipeline3590 returns copies of the context template3591 with a project3592 sets the project in the context3593 with an author3594 sets the author in the context3595 with a parent_user3596 sets the user in the context3597 when the personal_snippet_reference_filters flag is disabled3598 does not set the user in the context3599 #updated_cached_html_for3600 when the markdown cache is outdated3601 calls #refresh_markdown_cache!3602 when the markdown field does not exist3603 returns nil3604 when the markdown cache is up to date3605 does not call #refresh_markdown_cache!3606 #rendered_field_content3607 when a field can be cached3608 returns the html3609 when a field cannot be cached3610 returns nil3611 behaves like a class with mentionable markdown fields3612 when klass is a Mentionable3613 #mentionable_attributes_changed?3614 returns true with key string3615 returns false with key symbol3616 returns false when no attr_mentionable keys3617 #save3618 when cache is outdated3619 when the markdown field also a mentionable attribute3620 calls #store_mentions!3621 when the markdown field is not mentionable attribute3622 does not call #store_mentions!3623 when the markdown field does not exist3624 does not call #store_mentions!3625 #attribute_invalidated?3626 returns true when cached_markdown_version is different3627 returns true when markdown is changed3628 returns true when both markdown and HTML are changed3629 returns false when there are no changes3630 returns false if skip_markdown_cache_validation is true3631 when cache version is updated3632 correctly updates cached HTML even if refresh_markdown_cache is called before updating the attribute3633 for other classes3634 behaves like a class with cached markdown fields3635 #cached_html_up_to_date?3636 returns false when the version is absent3637 returns false when the version is too early3638 returns false when the version is too late3639 returns false when the local version was bumped3640 returns true when the local version is default3641 returns true when the cached version is just right3642 #latest_cached_markdown_version3643 returns default version3644 #refresh_markdown_cache3645 fills all html fields3646 does not save the result3647 updates the markdown cache version3648 #refresh_markdown_cache!3649 fills all html fields3650 saves the changes3651 #banzai_render_context3652 sets project to nil if the object lacks a project3653 excludes author if the object lacks an author3654 raises if the context for an unrecognised field is requested3655 includes the pipeline3656 returns copies of the context template3657 with a project3658 sets the project in the context3659 with an author3660 sets the author in the context3661 with a parent_user3662 sets the user in the context3663 when the personal_snippet_reference_filters flag is disabled3664 does not set the user in the context3665 #updated_cached_html_for3666 when the markdown cache is outdated3667 calls #refresh_markdown_cache!3668 when the markdown field does not exist3669 returns nil3670 when the markdown cache is up to date3671 does not call #refresh_markdown_cache!3672 #rendered_field_content3673 when a field can be cached3674 returns the html3675 when a field cannot be cached3676 returns nil3677MembersFinder#execute3678 returns members for project and parent groups3679 returns owners and maintainers3680 returns active users and excludes invited users3681 does not return members of parent group with minimal access3682 includes only non-invite members if user do not have amdin permissions on project3683 includes invited members if user have admin permissions on project3684 includes nested group members if asked3685 returns only members of project if asked3686 returns only inherited members of project if asked3687 returns only inherited members of a personal project3688 returns the members.access_level when the user is invited3689 returns the highest access_level for the user3690 returns searched members if requested3691 returns members sorted by id_desc3692 when :invited_groups is passed3693 behaves like with invited_groups param3694 includes all the invited_groups members including members inherited from ancestor groups3695 includes all the invited_groups members3696 excludes group_members not visible to the user3697 when the user is a member of invited group and ancestor groups3698 returns the highest access_level for the user limited by project_group_link.group_access3699DevOpsReport::Metric3700 validations3701 is expected to validate that :leader_issues cannot be empty/falsy3702 is expected to validate that :leader_issues looks like a number greater than or equal to 03703 is expected to validate that :instance_issues cannot be empty/falsy3704 is expected to validate that :instance_issues looks like a number greater than or equal to 03705 is expected to validate that :percentage_issues cannot be empty/falsy3706 is expected to validate that :percentage_issues looks like a number greater than or equal to 03707 is expected to validate that :leader_notes cannot be empty/falsy3708 is expected to validate that :leader_notes looks like a number greater than or equal to 03709 is expected to validate that :instance_notes cannot be empty/falsy3710 is expected to validate that :instance_notes looks like a number greater than or equal to 03711 is expected to validate that :percentage_notes cannot be empty/falsy3712 is expected to validate that :percentage_notes looks like a number greater than or equal to 03713 is expected to validate that :leader_milestones cannot be empty/falsy3714 is expected to validate that :leader_milestones looks like a number greater than or equal to 03715 is expected to validate that :instance_milestones cannot be empty/falsy3716 is expected to validate that :instance_milestones looks like a number greater than or equal to 03717 is expected to validate that :percentage_milestones cannot be empty/falsy3718 is expected to validate that :percentage_milestones looks like a number greater than or equal to 03719 is expected to validate that :leader_boards cannot be empty/falsy3720 is expected to validate that :leader_boards looks like a number greater than or equal to 03721 is expected to validate that :instance_boards cannot be empty/falsy3722 is expected to validate that :instance_boards looks like a number greater than or equal to 03723 is expected to validate that :percentage_boards cannot be empty/falsy3724 is expected to validate that :percentage_boards looks like a number greater than or equal to 03725 is expected to validate that :leader_merge_requests cannot be empty/falsy3726 is expected to validate that :leader_merge_requests looks like a number greater than or equal to 03727 is expected to validate that :instance_merge_requests cannot be empty/falsy3728 is expected to validate that :instance_merge_requests looks like a number greater than or equal to 03729 is expected to validate that :percentage_merge_requests cannot be empty/falsy3730 is expected to validate that :percentage_merge_requests looks like a number greater than or equal to 03731 is expected to validate that :leader_ci_pipelines cannot be empty/falsy3732 is expected to validate that :leader_ci_pipelines looks like a number greater than or equal to 03733 is expected to validate that :instance_ci_pipelines cannot be empty/falsy3734 is expected to validate that :instance_ci_pipelines looks like a number greater than or equal to 03735 is expected to validate that :percentage_ci_pipelines cannot be empty/falsy3736 is expected to validate that :percentage_ci_pipelines looks like a number greater than or equal to 03737 is expected to validate that :leader_environments cannot be empty/falsy3738 is expected to validate that :leader_environments looks like a number greater than or equal to 03739 is expected to validate that :instance_environments cannot be empty/falsy3740 is expected to validate that :instance_environments looks like a number greater than or equal to 03741 is expected to validate that :percentage_environments cannot be empty/falsy3742 is expected to validate that :percentage_environments looks like a number greater than or equal to 03743 is expected to validate that :leader_deployments cannot be empty/falsy3744 is expected to validate that :leader_deployments looks like a number greater than or equal to 03745 is expected to validate that :instance_deployments cannot be empty/falsy3746 is expected to validate that :instance_deployments looks like a number greater than or equal to 03747 is expected to validate that :percentage_deployments cannot be empty/falsy3748 is expected to validate that :percentage_deployments looks like a number greater than or equal to 03749 is expected to validate that :leader_projects_prometheus_active cannot be empty/falsy3750 is expected to validate that :leader_projects_prometheus_active looks like a number greater than or equal to 03751 is expected to validate that :instance_projects_prometheus_active cannot be empty/falsy3752 is expected to validate that :instance_projects_prometheus_active looks like a number greater than or equal to 03753 is expected to validate that :percentage_projects_prometheus_active cannot be empty/falsy3754 is expected to validate that :percentage_projects_prometheus_active looks like a number greater than or equal to 03755 is expected to validate that :leader_service_desk_issues cannot be empty/falsy3756 is expected to validate that :leader_service_desk_issues looks like a number greater than or equal to 03757 is expected to validate that :instance_service_desk_issues cannot be empty/falsy3758 is expected to validate that :instance_service_desk_issues looks like a number greater than or equal to 03759 is expected to validate that :percentage_service_desk_issues cannot be empty/falsy3760 is expected to validate that :percentage_service_desk_issues looks like a number greater than or equal to 03761 #percentage_score3762 returns stored percentage score3763Gitlab::Json3764 .parse3765 legacy_mode is disabled by default3766 parses an object3767 parses an array3768 parses a string3769 parses a true bool3770 parses a false bool3771 legacy_mode is enabled3772 parses an object3773 parses an array3774 raises an error on a string3775 raises an error on a true bool3776 raises an error on a false bool3777 feature flag is disabled3778 parses an object3779 parses an array3780 parses a string3781 parses a true bool3782 parses a false bool3783 .parse!3784 legacy_mode is disabled by default3785 parses an object3786 parses an array3787 parses a string3788 parses a true bool3789 parses a false bool3790 legacy_mode is enabled3791 parses an object3792 parses an array3793 raises an error on a string3794 raises an error on a true bool3795 raises an error on a false bool3796 feature flag is disabled3797 parses an object3798 parses an array3799 parses a string3800 parses a true bool3801 parses a false bool3802 .dump3803 dumps an object3804 dumps an array3805 dumps a string3806 dumps a true bool3807 dumps a false bool3808 .generate3809 generates JSON3810 allows you to customise the output3811 .pretty_generate3812 generates pretty JSON3813 allows you to customise the output3814 the feature table is missing3815 skips legacy mode handling3816 the database is missing3817 still parses json3818 still generates json3819 Gitlab::Json::GrapeFormatter3820 generates JSON3821 uses Gitlab::Json3822 precompiled JSON3823 renders the string directly3824 calls #to_s on the object3825 doesn't run the JSON formatter3826 Gitlab::Json::PrecompiledJson3827 #to_s3828 obj is a string3829 returns a string3830 obj is an array3831 returns a string3832 obj is an array of un-stringables3833 raises an error3834 obj is something else3835 raises an error3836 Gitlab::Json::LimitedEncoder3837 when object size is acceptable3838 returns json string3839 when object is too big3840 raises LimitExceeded error3841 when object contains ASCII-8BIT encoding3842 does not raise encoding error3843Gitlab::Redis::SidekiqStatus3844 .config_file_name3845 when there is no config file anywhere3846 is expected to be nil3847 but resque.yml exists3848 is expected to eq "/tmp/redis_shared_examples20220704-464-5x1jlq/config/resque.yml"3849 returns a path that exists3850 and there is a global env override3851 is expected to eq "global override"3852 and there is an instance specific config file3853 is expected to eq "/tmp/redis_shared_examples20220704-464-h5bd9k/config/redis.shared_state.yml"3854 returns a path that exists3855 and there is a specific env override3856 is expected to eq "instance specific override"3857 .store3858 with old format3859 behaves like redis store3860 instantiates Redis::Store3861 with the namespace3862 uses specified namespace3863 with new format3864 behaves like redis store3865 instantiates Redis::Store3866 with the namespace3867 uses specified namespace3868 .params3869 withstands mutation3870 when url contains unix socket reference3871 with old format3872 returns path key instead3873 with new format3874 returns path key instead3875 when url is host based3876 with old format3877 returns hash with host, port, db, and password3878 with new format3879 rails_env: "development", host: "development-host"3880 returns hash with host, port, db, and password3881 rails_env: "test", host: "test-host"3882 returns hash with host, port, db, and password3883 rails_env: "production", host: "production-host"3884 returns hash with host, port, db, and password3885 .url3886 withstands mutation3887 when yml file with env variable3888 reads redis url from env variable3889 .version3890 returns a version3891 ._raw_config3892 is frozen3893 returns false when the file does not exist3894 returns false when the filename can't be determined3895 .with3896 when running on single-threaded runtime3897 instantiates a connection pool with size 53898 when running on multi-threaded runtime3899 instantiates a connection pool with a size based on the concurrency of the worker3900 when there is no config at all3901 can run an empty block3902 #db3903 with old format3904 returns the correct db3905 with new format3906 returns the correct db3907 #sentinels3908 when sentinels are defined3909 rails_env: "development", hosts: ["development-replica1", "development-replica2"]3910 returns an array of hashes with host and port keys3911 rails_env: "test", hosts: ["test-replica1", "test-replica2"]3912 returns an array of hashes with host and port keys3913 rails_env: "production", hosts: ["production-replica1", "production-replica2"]3914 returns an array of hashes with host and port keys3915 when sentinels are not defined3916 returns nil3917 #sentinels?3918 when sentinels are defined3919 returns true3920 when sentinels are not defined3921 returns false3922 #raw_config_hash3923 returns old-style single url config in a hash3924 #fetch_config3925 returns false when no config file is present3926 returns false when config file is present but has invalid YAML3927 has a value for the legacy default URL3928 #pool3929 instantiates an instance of MultiStore3930 behaves like multi store feature flags3931 with feature flag :use_primary_and_secondary_stores_for_sidekiq_status is enabled3932 multi store is enabled3933 with feature flag :use_primary_and_secondary_stores_for_sidekiq_status is disabled3934 multi store is disabled3935 with feature flag :use_primary_store_as_default_for_sidekiq_status is enabled3936 primary store is enabled3937 with feature flag :use_primary_store_as_default_for_sidekiq_status is disabled3938 primary store is disabled3939 #raw_config_hash3940 has a legacy default URL3941 #store_name3942 returns the name of the SharedState store3943Gitlab::Ci::Variables::Builder3944 #scoped_variables3945 is expected to be an instance of Gitlab::Ci::Variables::Collection3946 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_JOB_STAGE", :masked...=>"user924"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones2326"}]3947 variables ordering3948 returns variables in order depending on resource hierarchy3949 overrides duplicate keys depending on resource hierarchy3950 with schedule variables3951 includes schedule variables3952 #user_variables3953 with user3954 is expected to eq {"GITLAB_USER_EMAIL"=>"user2326@example.org", "GITLAB_USER_ID"=>"2196", "GITLAB_USER_LOGIN"=>"user924", "GITLAB_USER_NAME"=>"Sidney Jones2326"}3955 without user3956 is expected to be empty3957 #kubernetes_variables3958 is expected to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}3959 includes #deployment_variables and merges the KUBECONFIG values3960 generated config is invalid3961 is expected not to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}3962 #deployment_variables3963 environment is nil3964 is expected to be empty3965 #secret_instance_variables3966 when ref is branch3967 when ref is protected3968 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b76751248 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b76750be0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3969 when ref is not protected3970 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b762f2e18 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3971 when ref is tag3972 when ref is protected3973 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b87a2d5f0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b87a2cd30 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3974 when ref is not protected3975 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b8644da50 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3976 when ref is merge request3977 when ref is protected3978 does not return protected variables as it is not supported for merge request pipelines3979 when ref is not protected3980 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b9477ba20 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3981 #secret_group_variables3982 when ref is branch3983 when ref is protected3984 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b93a61c18 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b93a60f48 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3985 when ref is not protected3986 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b921dcb70 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3987 when ref is tag3988 when ref is protected3989 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b8fee1260 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b8feda988 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3990 when ref is not protected3991 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b94e72c70 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3992 when ref is merge request3993 when ref is protected3994 does not return protected variables as it is not supported for merge request pipelines3995 when ref is not protected3996 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b5acac970 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>3997 variables memoization3998 with protected environments3999 memoizes the result by environment4000 with unprotected environments4001 memoizes the result by environment4002 #secret_project_variables4003 when ref is branch4004 when ref is protected4005 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b57b20280 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b57b1bdc0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4006 when ref is not protected4007 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b586c5c48 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4008 when ref is tag4009 when ref is protected4010 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b562c3070 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b562c2990 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4011 when ref is not protected4012 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b56bfb3b8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4013 when ref is merge request4014 when ref is protected4015 does not return protected variables as it is not supported for merge request pipelines4016 when ref is not protected4017 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f7b56030100 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4018 variables memoization4019 with protected environments4020 memoizes the result by environment4021 with unprotected environments4022 memoizes the result by environment4023 #config_variables4024 without project4025 is expected to eq 04026 without repository4027 is expected to be nil4028 with protected variables4029 does not include protected variables4030 with scoped variables4031 does not include scoped variables4032 variables ordering4033 returns variables in order depending on resource hierarchy4034 overrides duplicate keys depending on resource hierarchy4035TestHooks::ProjectService4036 #execute4037 allows to set a custom project4038 hook with not implemented test4039 returns error message4040 push_events4041 executes hook4042 tag_push_events4043 executes hook4044 note_events4045 returns error message if not enough data4046 executes hook4047 issues_events4048 behaves like a test webhook that operates on issues4049 returns error message if not enough data4050 executes hook4051 confidential_issues_events4052 behaves like a test webhook that operates on issues4053 returns error message if not enough data4054 executes hook4055 merge_requests_events4056 returns error message if not enough data4057 executes hook4058 job_events4059 returns error message if not enough data4060 executes hook4061 pipeline_events4062 returns error message if not enough data4063 executes hook4064 wiki_page_events4065 returns error message if wiki disabled4066 returns error message if not enough data4067 executes hook4068 releases_events4069 returns error message if not enough data4070 executes hook4071TodosHelper4072 #todos_count_format4073 shows fuzzy count for 100 or more items4074 shows exact count for 99 or fewer items4075 #todo_target_link4076 when given a design4077 produces a good link4078 #todo_target_title4079 when the target does not exist4080 returns an empty string4081 when given a design todo4082 returns an empty string4083 when given a non-design todo4084 returns the title4085 #todo_target_path4086 when given a design4087 responds with an appropriate path4088 when given an alert4089 responds with an appropriate path4090 when given a task4091 responds with an appropriate path4092 #todo_target_type_name4093 when given a design todo4094 is expected to eq "design"4095 when given an alert todo4096 is expected to eq "alert"4097 when given a task todo4098 is expected to eq "task"4099 when given an issue todo4100 is expected to eq "issue"4101 when given a merge request todo4102 is expected to eq "merge request"4103 #todo_types_options4104 includes a match for a design todo4105 #todo_target_state_pill4106 merge request todo4107 behaves like no state pill4108 is expected to eq nil4109 closed MR4110 behaves like a rendered state pill4111 returns expected html4112 merged MR4113 behaves like a rendered state pill4114 returns expected html4115 issue todo4116 behaves like no state pill4117 is expected to eq nil4118 closed issue4119 behaves like a rendered state pill4120 returns expected html4121 alert todo4122 behaves like no state pill4123 is expected to eq nil4124 resolved alert4125 behaves like a rendered state pill4126 returns expected html4127 #todo_author_display?4128 action: 3, result: false4129 is expected to eq false4130 action: 6, result: false4131 is expected to eq false4132 action: 1, result: true4133 is expected to eq true4134Gitlab::Ci::Badge::Release::Metadata4135 behaves like badge metadata4136 #to_html4137 points to link4138 contains clickable image4139 #to_markdown4140 is expected to include "http://localhost/namespace1135/project799/-/badges/release.svg"4141 is expected to include "http://localhost/namespace1136/project800/-/releases"4142 #to_asciidoc4143 is expected to include "http://localhost/namespace1137/project801/-/badges/release.svg"4144 is expected to include "http://localhost/namespace1138/project802/-/releases"4145 is expected to include "image:"4146 is expected to include "link="4147 is expected to include "title="4148 #title4149 returns latest release title4150 #image_url4151 returns valid url4152 #link_url4153 returns valid link4154MembersHelper4155 #remove_member_message4156 is expected to eq "Are you sure you want to remove Sidney Jones2414 from the Sidney Jones2413 / project809 project?"4157 is expected to eq "Are you sure you want to revoke the invitation for to join the Sidney Jones2416 / project811 project?"4158 is expected to eq "Are you sure you want to deny Sidney Jones2420's request to join the Sidney Jones2419 / project813 project?"4159 is expected to eq "Are you sure you want to withdraw your access request for the Sidney Jones2421 / project814 project?"4160 is expected to eq "Are you sure you want to remove Sidney Jones2423 from the group133 group and any subresources?"4161 is expected to eq "Are you sure you want to revoke the invitation for to join the group135 group?"4162 is expected to eq "Are you sure you want to deny Sidney Jones2425's request to join the group137 group?"4163 is expected to eq "Are you sure you want to withdraw your access request for the group138 group?"4164 an accepted user invitation with no user associated4165 logs an exception and shows orphaned status4166 a pending member invitation with no user associated4167 does not error when there is an invitation for the requestor4168 #remove_member_title4169 is expected to eq "Remove user from project"4170 is expected to eq "Deny access request from project"4171 is expected to eq "Remove user from group and any subresources"4172 is expected to eq "Deny access request from group"4173 #leave_confirmation_message4174 is expected to eq "Are you sure you want to leave the \"Sidney Jones2438 / project820\" project?"4175 is expected to eq "Are you sure you want to leave the \"group144\" group?"4176 #localized_tasks_to_be_done_choices4177 has a translation for all `TASKS_TO_BE_DONE` keys4178Ci::ResourceGroups::AssignResourceFromResourceGroupService4179 #execute4180 when there is an available resource4181 requests resource4182 when failed to request resource4183 has a build waiting for resource4184 when the build has already retained a resource4185 has a pending build4186 when process mode is oldest_first4187 requests resource4188 when the other job exists in the newer pipeline4189 requests resource for the job in the oldest pipeline4190 when build is not `waiting_for_resource` state4191 attempts to request a resource4192 does not change the job status4193 when process mode is newest_first4194 requests resource4195 when the other job exists in the newer pipeline4196 requests resource for the job in the newest pipeline4197 when build is not `waiting_for_resource` state4198 attempts to request a resource4199 does not change the job status4200 when there are no available resources4201 does not request resource4202 when there is a stale build assigned to a resource4203 releases the resource from the stale build and assignes to the waiting build4204Gitlab::QuickActions::Extractor4205 #extract_commands4206 extracts command with multiple arguments and various prefixes4207 extracts command case insensitive4208 does not extract noop commands4209 extracts and performs substitution commands4210 extracts and performs substitution commands4211 extracts and performs multiple substitution commands4212 does not extract substitution command in inline code4213 extracts and performs substitution commands case insensitive4214 extracts and performs substitution commands with comments4215 extracts multiple commands4216 does not alter original content if no command is found4217 does not get confused if command comes before an inline code4218 does not get confused if command comes before a blockcode4219 does not extract commands inside a blockcode4220 does not extract commands inside a blockquote4221 does not extract commands inside a HTML tag4222 does not extract commands in multiline inline code on seperated rows4223 does not extract commands in multiline inline code starting from text4224 does not extract commands in inline code4225 limits to passed commands when they are passed4226 fails fast for strings with many newlines4227 command with no argument4228 at the start of content4229 behaves like command with no argument4230 extracts command4231 in the middle of content4232 behaves like command with no argument4233 extracts command4234 in the middle of a line4235 does not extract command4236 at the end of content4237 behaves like command with no argument4238 extracts command4239 command with a single argument4240 at the start of content4241 allows slash in command arguments4242 behaves like command with a single argument4243 extracts command4244 in the middle of content4245 behaves like command with a single argument4246 extracts command4247 in the middle of a line4248 does not extract command4249 at the end of content4250 behaves like command with a single argument4251 extracts command4252 when argument is not separated with a space4253 does not extract command4254 command with multiple arguments4255 at the start of content4256 behaves like command with multiple arguments4257 extracts command4258 in the middle of content4259 behaves like command with multiple arguments4260 extracts command4261 in the middle of a line4262 does not extract command4263 at the end of content4264 behaves like command with multiple arguments4265 extracts command4266 when argument is not separated with a space4267 does not extract command4268 #redact_commands4269 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"4270 encloses quick actions with code span markdown4271 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"4272 encloses quick actions with code span markdown4273 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"4274 encloses quick actions with code span markdown4275 text: "/reopen\nworld", expected: "`/reopen`\nworld"4276 encloses quick actions with code span markdown4277 text: "hello\n/open", expected: "hello\n`/open`"4278 encloses quick actions with code span markdown4279DesignManagement::DesignPolicy4280 when DesignManagement is not enabled4281 behaves like design abilities not available4282 for owners4283 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4284 for admins4285 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4286 for maintainers4287 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4288 for developers4289 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4290 for reporters4291 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4292 for guests4293 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4294 for anonymous users4295 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4296 when the feature is available4297 behaves like design abilities available for members4298 for owners4299 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4300 for admins4301 when admin mode enabled4302 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4303 when admin mode disabled4304 behaves like read-only design abilities4305 is expected to be allowed :read_design4306 is expected to be disallowed :create_design, :destroy_design, and :move_design4307 for maintainers4308 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4309 for developers4310 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4311 for reporters4312 behaves like read-only design abilities4313 is expected to be allowed :read_design4314 is expected to be disallowed :create_design, :destroy_design, and :move_design4315 for guests in private projects4316 behaves like read-only design abilities4317 is expected to be allowed :read_design4318 is expected to be disallowed :create_design, :destroy_design, and :move_design4319 for anonymous users in public projects4320 behaves like read-only design abilities4321 is expected to be allowed :read_design4322 is expected to be disallowed :create_design, :destroy_design, and :move_design4323 when the issue is confidential4324 behaves like design abilities available for members4325 for owners4326 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4327 for admins4328 when admin mode enabled4329 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4330 when admin mode disabled4331 behaves like read-only design abilities4332 is expected to be allowed :read_design4333 is expected to be disallowed :create_design, :destroy_design, and :move_design4334 for maintainers4335 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4336 for developers4337 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4338 for reporters4339 behaves like read-only design abilities4340 is expected to be allowed :read_design4341 is expected to be disallowed :create_design, :destroy_design, and :move_design4342 for guests4343 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4344 for anonymous users4345 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4346 when the project is archived4347 behaves like read-only design abilities4348 is expected to be allowed :read_design4349 is expected to be disallowed :create_design, :destroy_design, and :move_design4350Gitlab::Prometheus::Queries::AdditionalMetricsEnvironmentQuery4351 queries using specific time4352 metrics query context4353 project has Kubernetes service4354 when user configured kubernetes from CI/CD > Clusters4355 query context contains kube_namespace4356 behaves like query context containing environment slug and filter4357 contains ci_environment_slug4358 contains environment filter4359 project without Kubernetes service4360 query context contains empty kube_namespace4361 behaves like query context containing environment slug and filter4362 contains ci_environment_slug4363 contains environment filter4364 with one group where two metrics is found4365 some queries return results4366 return group data only for queries with results4367 with two groups with one metric each4368 both queries return results4369 return group data both queries4370 one query returns result4371 return group data only for query with results4372 when start and end time parameters are provided4373 as unix timestamps4374 queries using the provided times4375 as Date/Time objects4376 queries using the provided times converted to unix4377MergeRequests::RequestAttentionService4378 #execute4379 when current user cannot update merge request4380 returns an error4381 when user is not a reviewer nor assignee4382 returns an error4383 when user is a reviewer4384 returns success4385 updates reviewers state4386 adds who toggled attention4387 creates a new todo for the reviewer4388 sends email to reviewer4389 removes attention requested state4390 behaves like invalidates attention request cache4391 invalidates the merge requests requiring attention count4392 when user is an assignee4393 returns success4394 updates assignees state4395 creates a new todo for the reviewer4396 creates a request attention system note4397 removes attention requested state4398 behaves like invalidates attention request cache4399 invalidates the merge requests requiring attention count4400 when user is an assignee and reviewer at the same time4401 updates reviewers and assignees state4402 when state is attention_requested4403 does not change state4404 does not create a new todo for the reviewer4405Gitlab::ExclusiveLease4406 #try_obtain4407 cannot obtain twice before the lease has expired4408 can obtain after the lease has expired4409 .redis_shared_state_key4410 provides a namespaced key4411 .ensure_prefixed_key4412 does not double prefix a key4413 raises errors when there is no key4414 #renew4415 returns true when we have the existing lease4416 returns false when we dont have a lease4417 #exists?4418 returns true for an existing lease4419 returns false for a lease that does not exist4420 .get_uuid4421 gets the uuid if lease with the key associated exists4422 returns false if the lease does not exist4423 cancellation4424 .cancel4425 does not raise errors when given a nil key4426 when called with the unprefixed key4427 behaves like cancelling a lease4428 releases the held lease4429 when called with the prefixed key4430 behaves like cancelling a lease4431 releases the held lease4432 #cancel4433 is safe to call even if the lease was never obtained4434 behaves like cancelling a lease4435 releases the held lease4436 #ttl4437 returns the TTL of the Redis key4438 returns nil when the lease does not exist4439 .reset_all!4440 removes all existing lease keys from redis4441 .throttle4442 prevents repeated execution of the block4443 is distinct by block4444 is distinct by key4445 allows a group to be passed4446 defaults to a 60min timeout4447 allows count to be specified4448 allows period to be specified4449 allows period and count to be specified4450Issues::ExportCsvService4451 renders csv to string4452 #email4453 emails csv4454 renders with a target filesize4455 includes4456 includes the columns required for import4457 returns two issues4458 iid4459 url4460 title4461 state4462 description4463 author name4464 author username4465 assignee name4466 assignee username4467 confidential4468 milestone4469 labels4470 due_date4471 created_at4472 updated_at4473 closed_at4474 discussion_locked4475 weight4476 time estimate4477 time spent4478 with issues filtered by labels and project4479 returns only filtered objects4480 with label links4481 does not run a query for each label link4482 returns the labels in sorted order4483 with minimal details4484 renders labels as nil4485Ci::CreatePipelineService#execute4486 with resource group4487 creates bridge job with resource group4488 when sidekiq processes the job4489 transitions to pending status and triggers a downstream pipeline4490 when the resource is occupied by the other bridge4491 stays waiting for resource4492Snippets::BulkDestroyService4493 #execute4494 deletes the snippets in bulk4495 when snippets is empty4496 returns a ServiceResponse success response4497 when user does not have access to remove the snippet4498 behaves like error is raised4499 returns error4500 no record is deleted4501 when hard_delete option is passed4502 returns a ServiceResponse success response4503 deletes all the snippets that belong to the user4504 when an error is raised deleting the repository4505 behaves like error is raised4506 returns error4507 no record is deleted4508 when an error is raised deleting the records4509 behaves like error is raised4510 returns error4511 no record is deleted4512 when snippet does not have a repository attached4513 returns success4514Import::GithubService4515 when remove_legacy_github_client feature flag is enabled4516 raises an exception for unknown error causes4517 do not raise an exception on input error4518 logs the original error4519 returns an error with message and code4520 repository size validation4521 when there is no repository size limit defined4522 skips the check and succeeds4523 when the target namespace repository size limit is defined4524 succeeds when the repository is smaller than the limit4525 returns error when the repository is larger than the limit4526 when target namespace repository limit is not defined4527 when application size limit is defined4528 succeeds when the repository is smaller than the limit4529 returns error when the repository is larger than the limit4530 when import source is disabled4531 returns forbidden4532 when a blocked/local URL is used as github_hostname4533 url: "https://localhost"4534 returns and logs an error4535 url: "https://10.0.0.1"4536 returns and logs an error4537 when remove_legacy_github_client feature flag is enabled4538 raises an exception for unknown error causes4539 do not raise an exception on input error4540 logs the original error4541 returns an error with message and code4542 repository size validation4543 when there is no repository size limit defined4544 skips the check and succeeds4545 when the target namespace repository size limit is defined4546 succeeds when the repository is smaller than the limit4547 returns error when the repository is larger than the limit4548 when target namespace repository limit is not defined4549 when application size limit is defined4550 succeeds when the repository is smaller than the limit4551 returns error when the repository is larger than the limit4552 when import source is disabled4553 returns forbidden4554 when a blocked/local URL is used as github_hostname4555 url: "https://localhost"4556 returns and logs an error4557 url: "https://10.0.0.1"4558 returns and logs an error4559Gitlab::Zentao::Client4560 #new4561 if integration is nil4562 raises ConfigError4563 integration is provided4564 is initialized successfully4565 #fetch_product4566 with valid product4567 fetches the product4568 with invalid product4569 fetches the empty product4570 with invalid response4571 fetches the empty product4572 #ping4573 with valid resource4574 responds with success4575 with deleted resource4576 responds with unsuccess4577 #fetch_issue4578 with invalid id4579 returns empty object4580 with valid id4581 fetches current issue4582 #url4583 api url4584 no ends slash4585 verify url4586 ends slash4587 verify url4588 no api url4589 joins url correctly4590Ci::DagPipelineEntity4591 #as_json4592 when pipeline is empty4593 contains stages4594 behaves like matches schema4595 matches schema4596 when pipeline has jobs4597 contains 3 stages4598 behaves like matches schema4599 matches schema4600 when pipeline has parallel jobs, DAG needs and GenericCommitStatus4601 performs the smallest number of queries4602 contains all the data4603 behaves like matches schema4604 matches schema4605MergeRequests::ResolvedDiscussionNotificationService4606 #execute4607 when not all discussions are resolved4608 doesn't add a system note4609 doesn't send a notification email4610 doesn't send a webhook4611 when all discussions are resolved4612 adds a system note4613 sends a notification email4614 sends a webhook4615Gitlab::Ci::Pipeline::Expression::Lexeme::And4616 .build4617 creates a new instance of the token4618 with non-evaluable operands4619 raises an operator error4620 .type4621 is an operator4622 .precedence4623 has a precedence4624 #evaluate4625 when left and right are truthy4626 left_value: true, right_value: 14627 is expected to be truthy4628 is expected to eq 14629 left_value: true, right_value: "a"4630 is expected to be truthy4631 is expected to eq "a"4632 left_value: 1, right_value: true4633 is expected to be truthy4634 is expected to eq true4635 left_value: 1, right_value: "a"4636 is expected to be truthy4637 is expected to eq "a"4638 left_value: "a", right_value: true4639 is expected to be truthy4640 is expected to eq true4641 left_value: "a", right_value: 14642 is expected to be truthy4643 is expected to eq 14644 when left or right is falsey4645 left_value: true, right_value: false4646 is expected to be falsey4647 left_value: true, right_value: nil4648 is expected to be falsey4649 left_value: false, right_value: true4650 is expected to be falsey4651 left_value: false, right_value: nil4652 is expected to be falsey4653 left_value: nil, right_value: true4654 is expected to be falsey4655 left_value: nil, right_value: false4656 is expected to be falsey4657 when left and right are falsey4658 left_value: false, right_value: nil4659 is expected to be falsey4660 is expected to eq false4661 left_value: nil, right_value: false4662 is expected to be falsey4663 is expected to eq nil4664Clusters::AgentsFinder4665 #execute4666 is expected to contain exactly #<Clusters::Agent id: 1, created_at: "2022-07-04 07:40:38.397281703 +0000", updated_at: "2022-07-04 0...1703 +0000", project_id: 868, name: "agent-1", created_by_user_id: 2422, has_vulnerabilities: false>4667 user does not have permission4668 is expected to be empty4669 filtering by name4670 name does not match4671 is expected to be empty4672 name does match4673 is expected to contain exactly #<Clusters::Agent id: 7, created_at: "2022-07-04 07:40:42.074779708 +0000", updated_at: "2022-07-04 0...9708 +0000", project_id: 874, name: "agent-7", created_by_user_id: 2437, has_vulnerabilities: false>4674Gitlab::TemplateParser::AST::Identifier4675 #evaluate4676 evaluates a selector4677 returns nil if the key is not set4678 returns nil if the input is not a Hash4679 returns the current data when using the special identifier "it"4680Gitlab::TemplateParser::AST::Integer4681 #evaluate4682 evaluates a selector4683 returns nil if the index is not set4684 returns nil if the input is not an Array4685Gitlab::TemplateParser::AST::Selector4686 #evaluate4687 evaluates a selector4688 evaluates a selector that returns nil4689Gitlab::TemplateParser::AST::Variable4690 #evaluate4691 evaluates a variable4692 evaluates an undefined variable4693 evaluates the special variable "it"4694Gitlab::TemplateParser::AST::Expressions4695 #evaluate4696 evaluates all expressions4697Gitlab::TemplateParser::AST::Text4698 #evaluate4699 returns the text4700Gitlab::TemplateParser::AST::If4701 #evaluate4702 evaluates a truthy if expression without an else clause4703 evaluates a falsy if expression without an else clause4704 evaluates a falsy if expression with an else clause4705 #truthy?4706 returns true for a non-empty String4707 returns true for a non-empty Array4708 returns true for a Boolean true4709 returns false for an empty String4710 returns true for an empty Array4711 returns false for a Boolean false4712Gitlab::TemplateParser::AST::Each4713 #evaluate4714 evaluates the expression4715 returns an empty string when the input is not a collection4716 disallows too many nested loops4717Banzai::Filter::References::DesignReferenceFilter4718 does not error when we add redaction to the pipeline4719 .call4720 requires project context4721 #call4722 feature flags4723 design management is not enabled4724 behaves like a no-op filter4725 does nothing4726 wrapped in a <pre/>4727 behaves like a no-op filter4728 does nothing4729 wrapped in a <code/>4730 behaves like a no-op filter4731 does nothing4732 wrapped in a <a/>4733 behaves like a no-op filter4734 does nothing4735 wrapped in a <style/>4736 behaves like a no-op filter4737 does nothing4738 .identifier4739 filename: "simple.png"4740 can parse the reference4741 filename: "SIMPLE.PNG"4742 can parse the reference4743 filename: "has-hyphen.jpg"4744 can parse the reference4745 filename: "snake_case.svg"4746 can parse the reference4747 static properties4748 is expected to eq :design4749 #data_attributes_for4750 is expected to include {:issue => 247, :original => "Added http://localhost/namespace1241/project900/-/issues/10/designs/homescreen-66.jpg", :project => 876, :design => 48}4751 internal reference4752 behaves like a reference containing an element node4753 does not escape inner html4754 behaves like a good link reference4755 produces a good link4756 the filename contains invalid characters4757 filename: "with some spaces.png"4758 behaves like a no-op filter4759 does nothing4760 filename: "with <script>console.log(\"pwded\")<%2Fscript>.png"4761 behaves like a no-op filter4762 does nothing4763 filename: "foo\"bar.png"4764 behaves like a no-op filter4765 does nothing4766 filename: "A \"very\" good file.png"4767 behaves like a no-op filter4768 does nothing4769 the reference is to a non-existant design4770 behaves like a no-op filter4771 does nothing4772 design management is disabled for the referenced project4773 behaves like a no-op filter4774 does nothing4775 link pattern4776 matches4777 cross-project / cross-namespace complete reference4778 links to a valid reference4779 link has valid text4780 includes default classes4781 behaves like a reference containing an element node4782 does not escape inner html4783 behaves like a good link reference4784 produces a good link4785 design management is disabled for that project4786 behaves like a no-op filter4787 does nothing4788 the reference is invalid4789 behaves like a no-op filter4790 does nothing4791 performance4792 is linear in the number of projects with design management enabled each design refers to4793Gitaly::Server4794 is expected to respond to #server_version4795 is expected to respond to #git_binary_version4796 is expected to respond to #up_to_date?4797 is expected to respond to #address4798 is expected to respond to #replication_factor4799 .all4800 includes all storages4801 readable?4802 when the storage is readable4803 returns true4804 when the storage is not readable4805 returns false4806 writeable?4807 when the storage is writeable4808 returns true4809 when the storage is not writeable4810 returns false4811 #filesystem_type4812 is expected to be present4813 request memoization4814 when requesting multiple properties4815 uses memoization for the info request4816 when examining disk statistics for a given server4817 #disk_available4818 is expected to be present4819 returns disk available for the storage of the instantiated server4820 #disk_used4821 is expected to be present4822 returns disk used for the storage of the instantiated server4823 #disk_stats4824 is expected to be present4825 returns the storage of the instantiated server4826 #expected_version?4827 expected_version: "1.1.1", server_version: "1.1.1", result: true4828 is expected to eq true4829 expected_version: "1.1.2", server_version: "1.1.1", result: false4830 is expected to eq false4831 expected_version: "1.73.0", server_version: "1.73.0-18-gf756ebe2", result: false4832 is expected to eq false4833 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-45-g594c3ea3", result: true4834 is expected to eq true4835 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-46-gabc123ff", result: false4836 is expected to eq false4837 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6", result: false4838 is expected to eq false4839 replication_factor4840 when examining for a given server4841 is expected to eq 24842Ci::Variable4843 behaves like CI variable4844 is expected to includes the Ci::HasVariable module4845 strips whitespaces when assigning key4846 can convert to runner variable4847 variable type4848 defines variable types4849 defaults variable type to env_var4850 supports variable type file4851 validations4852 is expected to includes the Presentable module4853 is expected to includes the Ci::Maskable module4854 is expected to includes the HasEnvironmentScope module4855 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure4856 .by_environment_scope4857 is expected to contain exactly #<Ci::Variable id: 36, key: [FILTERED], value: nil, encrypted_value: "sMul19cAlxER5q+Qg9QZzQ==\n", en...otected: false, environment_scope: "production", masked: false, variable_type: "env_var", raw: true>4858 .unprotected4859 when variable is protected4860 returns nothing4861 when variable is not protected4862 returns the variable4863 loose foreign key on ci_variables.project_id4864 behaves like cleanup by a loose foreign key4865 cleans up (delete or nullify) the model4866DraftNotes::CreateService4867 creates a simple draft note4868 tracks the start event when the draft is persisted4869 does not track the start event when the draft is not persisted4870 cannot resolve when there is nothing to resolve4871 creates a draft note with a position in a diff4872 in a thread4873 creates a draft note with discussion_id4874 creates a draft that resolves the thread4875 diff highlight cache clearing4876 when diff file is unfolded and it is not a reply4877 clears diff highlighting cache4878 when diff file is not unfolded and it is not a reply4879 clears diff highlighting cache4880RepositoryCheck::BatchWorker4881 prefers projects that have never been checked4882 sorts projects by last_repository_check_at4883 excludes projects that were checked recently4884 excludes projects on another shard4885 does nothing when repository checks are disabled4886 does nothing when shard is unhealthy4887 skips projects created less than 24 hours ago4888 does not run if the exclusive lease is taken4889RequireEmailVerification4890 feature_flag_enabled: false, two_factor_enabled: false, overridden: false4891 #lock_access!4892 sends Devise unlock instructions unless overridden and always sets locked_at4893 #attempts_exceeded?4894 when failed_attempts is LT overridden amount4895 is expected to eq false4896 when failed_attempts is GTE overridden amount but LT Devise default amount4897 is expected to eq false4898 when failed_attempts is GTE Devise default amount4899 is expected to eq true4900 #lock_expired?4901 when locked shorter ago than Devise default time4902 is expected to eq false4903 when locked longer ago than Devise default time but shorter ago than overriden time4904 is expected to eq true4905 when locked longer ago than overriden time4906 is expected to eq true4907 feature_flag_enabled: false, two_factor_enabled: true, overridden: false4908 #lock_access!4909 sends Devise unlock instructions unless overridden and always sets locked_at4910 #attempts_exceeded?4911 when failed_attempts is LT overridden amount4912 is expected to eq false4913 when failed_attempts is GTE overridden amount but LT Devise default amount4914 is expected to eq false4915 when failed_attempts is GTE Devise default amount4916 is expected to eq true4917 #lock_expired?4918 when locked shorter ago than Devise default time4919 is expected to eq false4920 when locked longer ago than Devise default time but shorter ago than overriden time4921 is expected to eq true4922 when locked longer ago than overriden time4923 is expected to eq true4924 feature_flag_enabled: true, two_factor_enabled: false, overridden: true4925 #lock_access!4926 sends Devise unlock instructions unless overridden and always sets locked_at4927 #attempts_exceeded?4928 when failed_attempts is LT overridden amount4929 is expected to eq false4930 when failed_attempts is GTE overridden amount but LT Devise default amount4931 is expected to eq true4932 when failed_attempts is GTE Devise default amount4933 is expected to eq true4934 #lock_expired?4935 when locked shorter ago than Devise default time4936 is expected to eq false4937 when locked longer ago than Devise default time but shorter ago than overriden time4938 is expected to eq false4939 when locked longer ago than overriden time4940 is expected to eq true4941 feature_flag_enabled: true, two_factor_enabled: true, overridden: false4942 #lock_access!4943 sends Devise unlock instructions unless overridden and always sets locked_at4944 #attempts_exceeded?4945 when failed_attempts is LT overridden amount4946 is expected to eq false4947 when failed_attempts is GTE overridden amount but LT Devise default amount4948 is expected to eq false4949 when failed_attempts is GTE Devise default amount4950 is expected to eq true4951 #lock_expired?4952 when locked shorter ago than Devise default time4953 is expected to eq false4954 when locked longer ago than Devise default time but shorter ago than overriden time4955 is expected to eq true4956 when locked longer ago than overriden time4957 is expected to eq true4958Issues::ReorderService4959 #execute4960 when ordering issues in a project4961 behaves like issues reorder service4962 when reordering issues4963 returns false with no params4964 returns false with both invalid params4965 sorts issues4966 sorts issues if only given one neighbour, on the left4967 sorts issues if only given one neighbour, on the right4968 when ordering issues in a group4969 behaves like issues reorder service4970 when reordering issues4971 returns false with no params4972 returns false with both invalid params4973 sorts issues4974 sorts issues if only given one neighbour, on the left4975 sorts issues if only given one neighbour, on the right4976 when ordering in a group issue list4977 sorts issues4978IncidentManagement::IssuableEscalationStatuses::AfterUpdateService4979 with status attributes4980 updates the alert with the new alert status4981 behaves like adds a status change system note4982 is expected to change `issue.reload.notes.count` by 14983 behaves like adds a status change timeline event4984 is expected to change `issue.reload.incident_management_timeline_events.count` by 14985 when incident is not associated with an alert4986 behaves like does not attempt to update the alert4987 is expected to be success4988 behaves like adds a status change system note4989 is expected to change `issue.reload.notes.count` by 14990 behaves like adds a status change timeline event4991 is expected to change `issue.reload.incident_management_timeline_events.count` by 14992 when new status matches the current status4993 is expected not to change `issue.reload.notes.count`4994 is expected not to change `issue.reload.incident_management_timeline_events.count`4995 behaves like does not attempt to update the alert4996 is expected to be success4997API::Support::GitAccessActor4998 .from_params4999 with params that are valid5000 returns an instance of API::Support::GitAccessActor5001 with params that are invalid5002 returns an instance of API::Support::GitAccessActor5003 when passing an identifier used gitaly5004 finds the user based on an identifier5005 attributes5006 #user5007 when initialized with a User5008 returns the User5009 when initialized with a Key5010 returns the User associated to the Key5011 #key_or_user5012 when params contains a :key_id5013 is an instance of Key5014 when params contains a :user_id5015 is an instance of User5016 when params contains a :username5017 is an instance of User (via UserFinder)5018 #username5019 when initialized with a User5020 returns the username5021 when initialized with a Key5022 that has no User associated5023 returns nil5024 that has a User associated5025 returns the username of the User associated to the Key5026 #key_details5027 when initialized with a User5028 returns an empty Hash5029 when initialized with a Key5030 that has no User associated5031 returns a Hash5032 that has a User associated5033 returns a Hash5034 when initialized with a DeployKey5035 returns a Hash5036 #update_last_used_at!5037 when initialized with a User5038 does nothing5039 when initialized with a Key5040 updates update_last_used_at5041 does not update `last_used_at` when the functionality is disabled5042Users::InProductMarketingEmail5043 associations5044 is expected to belong to user required: false5045 validations5046 is expected to validate that :user cannot be empty/falsy5047 for a track+series email5048 is expected to validate that :track cannot be empty/falsy5049 is expected to validate that :series cannot be empty/falsy5050 is expected to validate that :user_id is case-sensitively unique within the scope of :track and :series, producing a custom validation error on failure5051 for a campaign email5052 is expected to validate that :campaign cannot be empty/falsy5053 is expected not to validate that :track cannot be empty/falsy5054 is expected not to validate that :series cannot be empty/falsy5055 is expected to validate that :user_id is case-sensitively unique within the scope of :campaign, producing a custom validation error on failure5056 is expected to validate that :campaign is ‹"build_ios_app_guide"›5057 when mixing campaign and track+series5058 is not valid5059 .without_track_and_series5060 when given track and series already exists5061 is expected to be empty5062 when track does not exist5063 is expected to eq [#<User id:2487 @user1077>]5064 when series does not exist5065 is expected to eq [#<User id:2487 @user1077>]5066 when no track or series for a user exists5067 is expected to eq [#<User id:2488 @user1078>]5068 .without_campaign5069 when record for campaign already exists5070 is expected to contain exactly #<User id:2490 @user1080>5071 when record for campaign does not exist5072 is expected to contain exactly #<User id:2489 @user1079> and #<User id:2490 @user1080>5073 .for_user_with_track_and_series5074 when record for user with given track and series exists5075 is expected to eq #<Users::InProductMarketingEmail id: 16, user_id: 2491, cta_clicked_at: nil, track: "create", series:...2-07-04 07:41:28.082168287 +0000", updated_at: "2022-07-04 07:41:28.082168287 +0000", campaign: nil>5076 when user is different5077 is expected to be nil5078 when track is different5079 is expected to be nil5080 when series is different5081 is expected to be nil5082 .save_cta_click5083 when there is no record5084 does not error5085 when there is no record for the track and series5086 does not perform an update5087 when there is a record for the track and series5088 saves the cta click date5089 cta_clicked_at is already set5090 does not update5091 .ACTIVE_TRACKS5092 has an entry for every track5093 does not include INACTIVE_TRACK_NAMES5094Gitlab::ImportExport::Base::RelationFactory5095 #create5096 when relation is invalid5097 returns without creating new relations5098 when the relation is predefined5099 returns without creating a new relation5100 when author relation5101 returns author hash unchanged5102 when #setup_models is not implemented5103 raises NotImplementedError5104 when #setup_models is implemented5105 creates imported object5106 when relation contains user references5107 maps the right author to the imported note5108 when relation contains token attributes5109 removes token attributes5110 when relation contains encrypted attributes5111 removes encrypted attributes5112 .relation_class5113 when relation name is pluralized5114 returns constantized class5115 when relation name is singularized5116 returns constantized class5117notify/pipeline_failed_email.html.haml5118 behaves like pipeline status changes email5119 when the pipeline contains a failed job5120 behaves like renders the pipeline status changes email correctly5121 pipeline with user5122 renders the email correctly5123 behaves like correct pipeline information for pipelines for merge requests5124 when pipeline for merge request5125 renders a source ref of the pipeline5126 pipeline without user5127 renders the email correctly5128 when the latest failed job is a bridge job5129 behaves like renders the pipeline status changes email correctly5130 pipeline with user5131 renders the email correctly5132 behaves like correct pipeline information for pipelines for merge requests5133 when pipeline for merge request5134 renders a source ref of the pipeline5135 pipeline without user5136 renders the email correctly5137Gitlab::Ci::Reports::CodequalityReportsComparer5138 #status5139 when head report has an error5140 returns status failed5141 when head report does not have errors5142 returns status success5143 when head report does not exist5144 returns status not found5145 when base report does not exist5146 returns status success5147 #errors_count5148 when head report has an error5149 returns the number of new errors5150 when head report does not have an error5151 returns zero5152 #resolved_count5153 when base report has an error and head has a different error5154 counts the base report error as resolved5155 when base report has errors head has no errors5156 counts the base report errors as resolved5157 when base report has errors and head has the same error5158 returns zero5159 when base report does not have errors and head has errors5160 returns zero5161 when base report is nil5162 returns zero5163 #total_count5164 when base report has an error5165 returns zero5166 when head report has an error5167 includes the head report error in the count5168 when base report has errors and head report has errors5169 includes errors in the count5170 when base report has errors and head report has the same error5171 includes errors in the count5172 when base report is nil5173 returns zero5174 #existing_errors5175 when base report has errors and head has the same error5176 includes the base report errors sorted by severity5177 when base report has errors and head has a different error5178 returns an empty array5179 when base report does not have errors and head has errors5180 returns an empty array5181 when base report is nil5182 returns an empty array5183 #new_errors5184 when base report has errors and head has more errors5185 includes errors not found in the base report sorted by severity5186 when base report has an error and head has no errors5187 returns an empty array5188 when base report does not have errors and head has errors5189 returns the head report error5190 when base report is nil5191 returns an empty array5192 #resolved_errors5193 when base report errors are still found in the head report5194 returns an empty array5195 when base report has errors and head has a different error5196 returns the base report errors not found in the head report, sorted by severity5197 when base report does not have errors and head has errors5198 returns an empty array5199 when base report is nil5200 returns an empty array5201Groups::UpdateSharedRunnersService5202 #execute5203 when current_user is not the group owner5204 results error and does not call any method5205 when current_user is the group owner5206 enable shared Runners5207 group that its ancestors have shared runners disabled5208 results error5209 root group with shared runners disabled5210 receives correct method and succeeds5211 when group has pending builds5212 updates pending builds for the group5213 when shared runners is not toggled5214 does not update pending builds for the group5215 disable shared Runners5216 receives correct method and succeeds5217 when group has pending builds5218 updates pending builds for the group5219 allow descendants to override5220 top level group5221 receives correct method and succeeds5222 when parent does not allow5223 results error5224Gitlab::GitalyClient::ObjectPoolService5225 #create5226 exists on disk5227 when the pool already exists5228 returns an error5229 #delete5230 removes the repository from disk5231 when called twice5232 doesn't raise an error5233 #fetch5234 restores the pool repository objects5235 when called twice5236 doesn't raise an error5237Packages::Conan::SearchService5238 #execute5239 with wildcard5240 makes a wildcard query5241 with only wildcard5242 returns empty5243 with no wildcard5244 makes a search using the beginning of the recipe5245 with full recipe match5246 makes an exact search5247 with malicious query5248 returns empty5249Gitlab::Utils::Override5250 #override5251 when instance is klass.new(0)5252 when STATIC_VERIFICATION is set5253 when subject is a class5254 behaves like checking as intended5255 checks ok for overriding method5256 checks ok for overriding method using negative arity5257 raises NotImplementedError when it is not overriding anything5258 raises NotImplementedError when overriding a method with different arity5259 when subject is a module, and class is prepending it5260 behaves like checking as intended5261 checks ok for overriding method5262 checks ok for overriding method using negative arity5263 raises NotImplementedError when it is not overriding anything5264 raises NotImplementedError when overriding a method with different arity5265 when subject is a module, and class is including it5266 behaves like checking as intended, nothing was overridden5267 raises NotImplementedError because it is not overriding it5268 raises NotImplementedError when it is not overriding anything5269 when ActiveSupport::Concern and class_methods are used5270 when it is defining a overriding method5271 verifies5272 when it is not defining a overriding method5273 raises NotImplementedError5274 when STATIC_VERIFICATION is not set5275 when subject is a class5276 behaves like nothing happened5277 does not complain when it is overriding something5278 does not complain when it is not overriding anything5279 when subject is a module, and class is prepending it5280 behaves like nothing happened5281 does not complain when it is overriding something5282 does not complain when it is not overriding anything5283 when subject is a module, and class is including it5284 does not complain when it is overriding something5285 does not complain when it is not overriding anything5286 when instance is klass5287 when STATIC_VERIFICATION is set5288 when subject is a module, and class is prepending it5289 behaves like checking as intended5290 checks ok for overriding method5291 checks ok for overriding method using negative arity5292 raises NotImplementedError when it is not overriding anything5293 raises NotImplementedError when overriding a method with different arity5294 when subject is a module, and class is extending it5295 behaves like checking as intended, nothing was overridden5296 raises NotImplementedError because it is not overriding it5297 raises NotImplementedError when it is not overriding anything5298Boards::Lists::GenerateService5299 #execute5300 when board lists is empty5301 creates the default lists5302 when board lists is not empty5303 does not creates the default lists5304 when project labels does not contains any list label5305 creates labels5306 when project labels contains some of list label5307 creates the missing labels5308Email5309 normalize email value5310 modules5311 is expected to includes the AsyncDeviseEmail module5312 validations5313 behaves like an object with email-formatted attributes5314 specifically its :email attribute5315 with a value of 'info@example.com'5316 is valid5317 with a value of 'info+test@example.com'5318 is valid5319 with a value of 'o'reilly@example.com'5320 is valid5321 with a value of 'mailto:test@example.com'5322 is valid5323 with a value of 'lol!'+=?><#$%^&*()@gmail.com'5324 is valid5325 with a value of 'foobar'5326 is invalid5327 with a value of 'test@test@example.com'5328 is invalid5329 when the email conflicts with the primary email of a different user5330 is invalid5331 #update_invalid_gpg_signatures5332 synchronizes the gpg keys when the email is updated5333 scopes5334 scopes confirmed emails5335 delegations5336 is expected to delegate #can? to the #user object5337 is expected to delegate #username to the #user object5338 is expected to delegate #pending_invitations to the #user object5339 is expected to delegate #accept_pending_invitations! to the #user object5340 Devise emails5341 behaviour5342 sends emails asynchronously5343 #confirm5344 when the confirmation period has expired5345 does not confirm the email5346 behaves like unconfirmed email5347 returns unconfirmed5348 when the confirmation period has not expired5349 confirms the email5350 behaves like unconfirmed email5351 returns unconfirmed5352 #force_confirm5353 when the confirmation period has expired5354 behaves like unconfirmed email5355 returns unconfirmed5356 behaves like confirms the email on force_confirm5357 confirms an email5358 when the confirmation period has not expired5359 behaves like unconfirmed email5360 returns unconfirmed5361 behaves like confirms the email on force_confirm5362 confirms an email5363Clusters::Agents::CreateService5364 #execute5365 without user permissions5366 returns errors when user does not have permissions5367 with user permissions5368 creates a new clusters_agent5369 returns success status5370 returns agent values5371 generates an error message when name is invalid5372Gitlab::DeployKeyAccess5373 #can_create_tag?5374 push tag that matches a protected tag pattern via a deploy key5375 still pushes that tag5376 #can_push_for_ref?5377 push to a protected branch of this project via a deploy key5378 when the project has active deploy key owned by this user5379 returns true5380 when the project has active deploy keys, but not by this user5381 returns false5382 when there is another branch no one can push to5383 returns false when trying to push to that other branch5384 and the deploy key added for the first protected branch is also added for this other branch5385 returns true for both protected branches5386Gitlab::Ci::Config::Entry::Key5387 validations5388 behaves like key entry validations5389 when entry value contains slash5390 behaves like key with slash5391 is invalid5392 reports errors with config value5393 when entry value contains URI encoded slash (%2F)5394 behaves like key with slash5395 is invalid5396 reports errors with config value5397 when entry value is a dot5398 behaves like key with only dots5399 is invalid5400 reports errors with config value5401 when entry value is two dots5402 behaves like key with only dots5403 is invalid5404 reports errors with config value5405 when entry value is a URI encoded dot (%2E)5406 behaves like key with only dots5407 is invalid5408 reports errors with config value5409 when entry value is two URI encoded dots (%2E)5410 behaves like key with only dots5411 is invalid5412 reports errors with config value5413 when entry value is one dot and one URI encoded dot5414 behaves like key with only dots5415 is invalid5416 reports errors with config value5417 when key is a string5418 #value5419 returns key value5420 #valid?5421 is valid5422 when entry config value is correct5423 when key is a hash5424 #value5425 returns key value5426 #valid?5427 is valid5428 when key is a symbol5429 #value5430 returns key value5431 #valid?5432 is valid5433 when entry value is not correct5434 #errors5435 saves errors5436 .default5437 returns default key5438Gitlab::Ci::Pipeline::Chain::EnsureResourceGroups5439 #perform!5440 when a pipeline contains a job that requires a resource group5441 ensures the resource group existence5442 when a resource group has already been existed5443 ensures the resource group existence5444 when a resource group key contains an invalid character5445 does not create any resource groups5446 when a pipeline does not contain a job that requires a resource group5447 does not create any resource groups5448Gitlab::Ci::Pipeline::Chain::CreateDeployments5449 #perform!5450 when a pipeline contains a deployment job5451 creates a deployment record5452 when the corresponding environment does not exist5453 does not create a deployment record5454 when a pipeline contains a teardown job5455 does not create a deployment record5456 when a pipeline does not contain a deployment job5457 does not create any deployments5458Gitlab::Ci::Config::External::File::Local5459 #matching?5460 when a local is specified5461 returns true5462 with a missing local5463 returns false5464 with a missing local key5465 returns false5466 #valid?5467 when is a valid local path5468 is expected to be truthy5469 when it is not a valid local path5470 is expected to be falsy5471 when it is not a yaml file5472 is expected to be falsy5473 when it is an empty file5474 returns false and adds an error message about an empty file5475 when the given sha is not valid5476 returns false and adds an error message stating that included file does not exist5477 #content5478 with a valid file5479 returns the content of the file5480 with an invalid file5481 is nil5482 #error_message5483 returns an error message5484 #expand_context5485 inherits project, user and sha5486 #to_hash5487 properly includes another local file in the same repository5488 does expand hash to include the template5489 #metadata5490 is expected to eq {:blob=>"http://localhost/namespace1362/project1025/-/blob/12345/lib/gitlab/ci/templates/existent-fil...ost/namespace1362/project1025/-/raw/12345/lib/gitlab/ci/templates/existent-file.yml", :type=>:local}5491Tree5492 #readme5493 returns nil when repository does not contains a README file5494 returns nil when repository does not contains a previewable README file5495 returns README when repository contains a previewable README file5496 returns first previewable README when repository contains more than one5497 returns first plain text README when repository contains more than one5498 prioritizes previewable README file over one in plain text5499 #cursor5500 is expected to be an instance of Gitaly::PaginationCursor5501Discussions::CaptureDiffNotePositionService5502 image note on diff5503 is note affected by the service5504 when empty paths are passed as a param5505 does not calculate positons5506 when position tracer returned position5507 which is nil5508 does not create diff note position5509 which does not have a corresponding line5510 does not create diff note position5511Gitlab::OmniauthInitializer5512 .arguments_for5513 when there are no args at all5514 returns an empty array5515 when there is an app_id and an app_secret5516 includes both of them, in positional order5517 when there is an app_id and an app_secret, and an array of args5518 concatenates the args on the end5519 when there is an app_id and an app_secret, and an array of args, and default values5520 concatenates the args on the end5521 when there is an app_id and an app_secret, and a hash of args5522 concatenates the args on the end5523 when there is an app_id and an app_secret, and a hash of args, and default arguments5524 concatenates the args on the end5525 when there is an app_id and an app_secret, no args, and default values5526 concatenates the args on the end5527 when there are args, of an unsupported type5528 when there are default arguments5529 tracks a configuration error5530 when there are no default arguments5531 tracks a configuration error5532 #execute5533 configures providers from array5534 allows "args" array for app_id and app_secret5535 passes app_id and app_secret as additional arguments5536 passes "args" hash as symbolized hash argument5537 normalizes a String strategy_class5538 allows a class to be specified in strategy_class5539 throws an error for an invalid strategy_class5540 configures fail_with_empty_uid for shibboleth5541 configures remote_sign_out_handler proc for authentiq5542 configures on_single_sign_out proc for cas35543 configures defaults for google_oauth25544 configures defaults for gitlab5545 configures defaults for gitlab, when arguments are not provided5546 configures defaults for gitlab, when array arguments are provided5547 tracks a configuration error if the arguments are neither a hash nor an array5548 .full_host5549 is expected to eq "http://localhost/test"5550Gitlab::Ci::Pipeline::Chain::Seed5551 #perform!5552 allocates next IID5553 ensures ci_ref5554 sets the seeds in the command object5555 when no ref policy is specified5556 correctly fabricates stages and builds5557 when refs policy is specified5558 returns pipeline seed with jobs only assigned to master5559 when source policy is specified5560 returns pipeline seed with jobs only assigned to schedules5561 when kubernetes policy is specified5562 when kubernetes is active5563 when user configured kubernetes from CI/CD > Clusters5564 returns seeds for kubernetes dependent job5565 when kubernetes is not active5566 does not return seeds for kubernetes dependent job5567 when variables policy is specified5568 returns stage seeds only when variables expression is truthy5569 when there is seeds_block5570 does not execute the block5571 #root_variables5572 sends root variable with overridden by rules5573 N+1 queries5574 avoids N+1 queries when calculating variables of jobs5575Projects::MoveLfsObjectsProjectsService5576 #execute5577 links the lfs objects from existent in source project5578 does not link existent lfs_object in the current project5579 rollbacks changes if transaction fails5580 when remove_remaining_elements is false5581 does not remove remaining lfs objects5582Packages::Go::PackageFinder5583 #exists?5584 with a valid name and version5585 executes SELECT 15586 is expected to eq true5587 with an invalid name5588 is expected to eq false5589 with an invalid version5590 is expected to eq false5591 #execute5592 with a valid name and version5593 executes a single query5594 is expected to eq #<Packages::Package id: 62, project_id: 1016, created_at: "2022-07-04 07:43:07.713891000 +0000", upda...pace1377/my-go-lib", version: "v1.0.1", package_type: "golang", creator_id: 2652, status: "default">5595 with an uninstallable package5596 is expected to eq nil5597 with an invalid name5598 is expected to eq nil5599 with an invalid version5600 is expected to eq nil5601Gitlab::Git::User5602 .from_gitaly5603 is expected to eq #<Gitlab::Git::User:0x00007f7b73fbc0c0 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">5604 .from_gitlab5605 when no commit_email has been set5606 is expected to eq #<Gitlab::Git::User:0x00007f7b73c79660 @username="user1158", @name="Sidney Jones2886", @email="alice@example.com", @gl_id="user-", @timezone="Asia/Shanghai">5607 when commit_email has been set5608 is expected to eq #<Gitlab::Git::User:0x00007f7b739862c8 @username="user1159", @name="Sidney Jones2887", @email="bob@example.com", @gl_id="user-", @timezone="Asia/Shanghai">5609 #==5610 is expected to eq #<Gitlab::Git::User:0x00007f7b6e3b3058 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">5611 is expected not to eq #<Gitlab::Git::User:0x00007f7b7325f440 @username=nil, @name=nil, @email=nil, @gl_id=nil, @timezone="Asia/Shanghai">5612 is expected not to eq #<Gitlab::Git::User:0x00007f7b7288d700 @username="janedoex", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">5613 is expected not to eq #<Gitlab::Git::User:0x00007f7b724ac140 @username="janedoe", @name="Jane Doéx", @email="janedoé@example.com", @gl_id="user-123", @timezone="Asia/Shanghai">5614 is expected not to eq #<Gitlab::Git::User:0x00007f7b721d1038 @username="janedoe", @name="Jane Doé", @email="janedoé@example.comx", @gl_id="user-123", @timezone="Asia/Shanghai">5615 is expected not to eq #<Gitlab::Git::User:0x00007f7b71eccfb8 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123x", @timezone="Asia/Shanghai">5616 is expected not to eq #<Gitlab::Git::User:0x00007f7b71a9e270 @username="janedoe", @name="Jane Doé", @email="janedoé@example.com", @gl_id="user-123", @timezone="Etc/UTC">5617 when add_timezone_to_web_operations is disabled5618 ignores timezone arg and sets Etc/UTC by default5619 #to_gitaly5620 creates a Gitaly::User with the correct data5621Gitlab::Ci::Reports::Security::Scanner5622 #initialize5623 when all params are given5624 initializes an instance5625 when attribute external_id is missing5626 raises an error5627 when attribute name is missing5628 raises an error5629 #key5630 returns external_id5631 #to_hash5632 returns expected hash5633 when vendor is not defined5634 returns expected hash5635 #==5636 when external_id is equal5637 returns true5638 when external_id is different5639 returns false5640 #<=>5641 when the `external_id` of the scanners are different5642 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -15643 is expected to eq -15644 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -15645 is expected to eq -15646 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 15647 is expected to eq 15648 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -15649 is expected to eq -15650 scanner_1_attributes: {:external_id=>"spotbugs", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -15651 is expected to eq -15652 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -15653 is expected to eq -15654 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 15655 is expected to eq 15656 when the `external_id` of the scanners are equal5657 when the `name` of the scanners are different5658 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -15659 is expected to eq -15660 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 15661 is expected to eq 15662 when the `name` of the scanners are equal5663 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 05664 is expected to eq 05665 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -15666 is expected to eq -15667 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 15668 is expected to eq 15669Gitlab::Metrics::Samplers::RubySampler5670 behaves like metrics sampler5671 when sampling interval is passed explicitly5672 is expected to eq 425673 when sampling interval is passed through the environment5674 is expected to eq 425675 when no sampling interval is passed anywhere5676 uses the hardcoded default5677 #start5678 calls the sample method on the sampler thread5679 with warmup set to true5680 calls the sample method first on the caller thread5681 #safe_sample5682 calls #sample once5683 when sampling fails with error5684 recovers from errors5685 with logger5686 logs errors5687 #initialize5688 sets process_start_time_seconds5689 when not setting a prefix5690 does not prepend metrics with that prefix5691 when using custom prefix5692 prepends metrics with that prefix5693 #sample5694 adds a metric containing the process resident memory bytes5695 adds a metric containing the process unique and proportional memory bytes5696 adds a metric containing the amount of open file descriptors5697 adds a metric containing the process total cpu time5698 adds a metric containing the process max file descriptors5699 clears any GC profiles5700 when USS+PSS sampling is disabled via environment5701 does not sample USS or PSS5702 #sample_gc5703 re-enables GC::Profiler if needed5704 observes GC cycles time5705 adds a metric containing garbage collection statistics5706UsersStatistics5707 scopes5708 .order_created_at_desc5709 returns the entries ordered by created at descending5710 .latest5711 returns the latest entry5712 .create_current_stats!5713 when successful5714 creates an entry with the current statistics values5715 when unsuccessful5716 raises an ActiveRecord::RecordInvalid exception5717 #active5718 sums users statistics values without the value for blocked5719 #total5720 sums all users statistics values5721Gitlab::JiraImport::StuckJiraImportJobsWorker5722 with scheduled Jira import5723 behaves like stuck import job detection5724 when the job has completed5725 when the import status was already updated5726 does not mark the import as failed5727 when the import status was not updated5728 marks the import as failed5729 when the job is still in Sidekiq5730 does not mark the import as failed5731 with started jira import5732 behaves like stuck import job detection5733 when the job has completed5734 when the import status was already updated5735 does not mark the import as failed5736 when the import status was not updated5737 marks the import as failed5738 when the job is still in Sidekiq5739 does not mark the import as failed5740 with failed jira import5741 detects no stuck jobs5742GroupImportState5743 validations5744 is expected to belong to user required: true5745 is expected to validate that :group cannot be empty/falsy5746 is expected to validate that :status cannot be empty/falsy5747 can be created without a jid5748 cannot be started without a jid5749 cannot be finished without a jid5750 can fail without a jid5751 #in_progress?5752 when the import is 'created'5753 returns true5754 when the import is 'started'5755 returns true5756 when the import is 'finished'5757 returns false5758 when the import is 'failed'5759 returns false5760 when import failed5761 when error message is present5762 truncates error message5763 when error message is missing5764 has no error message5765IssueAssignee5766 associations5767 is expected to belong to issue class_name => Issue required: false5768 is expected to belong to assignee class_name => User required: false5769 validations5770 is expected to validate that :assignee is case-sensitively unique within the scope of :issue_id5771 scopes5772 in_projects5773 returns issue assignees for given project5774 on_issues5775 returns issue assignees for given issues5776ReleaseSerializer5777 #represent5778 when a single object is being serialized5779 serializes the label object5780 does not expose git-sha as sensitive information5781 when multiple objects are being serialized5782 serializes the array of releases5783Packages::BuildInfo5784 relationships5785 is expected to belong to package required: false5786 is expected to belong to pipeline required: false5787 with some build infos5788 .pluck_pipeline_ids5789 is expected to eq [159, 160, 161]5790 .without_empty_pipelines5791 is expected to contain exactly #<Packages::BuildInfo id: 1, package_id: 63, pipeline_id: 159>, #<Packages::BuildInfo id: 2, package_id: 63, pipeline_id: 160>, and #<Packages::BuildInfo id: 3, package_id: 63, pipeline_id: 161>5792 .order_by_pipeline_id asc5793 is expected to eq [#<Packages::BuildInfo id: 1, package_id: 63, pipeline_id: 159>, #<Packages::BuildInfo id: 2, package_id: 63, pipeline_id: 160>, #<Packages::BuildInfo id: 3, package_id: 63, pipeline_id: 161>]5794 .order_by_pipeline_id desc5795 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 63, pipeline_id: 161>, #<Packages::BuildInfo id: 2, package_id: 63, pipeline_id: 160>, #<Packages::BuildInfo id: 1, package_id: 63, pipeline_id: 159>]5796 .with_pipeline_id_less_than5797 is expected to contain exactly #<Packages::BuildInfo id: 1, package_id: 63, pipeline_id: 159>5798 .with_pipeline_id_greater_than5799 is expected to contain exactly #<Packages::BuildInfo id: 3, package_id: 63, pipeline_id: 161>5800ReactiveCachingWorker5801 behaves like reactive cacheable worker5802 #perform5803 when reactive cache worker class is found5804 calls #exclusively_update_reactive_cache!5805 when ReactiveCaching::ExceededReactiveCacheLimit is raised5806 avoids failing the job and tracks via Gitlab::ErrorTracking5807 when reactive cache worker class is not found5808 raises no error5809 when reactive cache worker class is invalid5810 raises no error5811 worker context5812 sets the related class on the job5813 sets the related class on the job when it was passed as a class5814Gitlab::ContentSecurityPolicy::ConfigLoader5815 .default_enabled5816 is enabled5817 when in production5818 is disabled5819 .default_directives5820 returns default directives5821 adds all websocket origins to support Safari5822 with insecure domain5823 with secure domain5824 with custom port5825 with custom port and secure domain5826 when CDN host is defined5827 adds CDN host to CSP5828 when sentry is configured5829 adds sentry path to CSP without user5830 when CUSTOMER_PORTAL_URL is set5831 adds CUSTOMER_PORTAL_URL to CSP5832 letter_opener application URL5833 when in production5834 does not add letter_opener to CSP5835 when in development5836 adds letter_opener to CSP5837 Snowplow Micro event collector5838 when in production5839 does not add Snowplow Micro URL to connect-src5840 when in development5841 adds Snowplow Micro URL with trailing slash to connect-src5842 when not enabled using ENV[SNOWPLOW_MICRO_ENABLE]5843 does not add Snowplow Micro URL to connect-src5844 when REVIEW_APPS_ENABLED is set5845 adds gitlab-org/gitlab merge requests API endpoint to CSP5846 #load5847 sets the policy properly5848 ignores malformed policy statements5849 returns default values for directives not defined by the user or with <default_value> and disables directives set to false5850Gitlab::Diff::Parser5851 #parse5852 is expected to eq 305853 lines5854 first line5855 is expected to eq "match"5856 is expected to eq 65857 is expected to eq 65858 is expected to eq "@@ -6,12 +6,18 @@ module Popen"5859 removal line5860 is expected to eq "old"5861 is expected to eq 145862 is expected to eq 135863 is expected to eq "- options = { chdir: path }"5864 addition line5865 is expected to eq "new"5866 is expected to eq 155867 is expected to eq 185868 is expected to eq "+ options = {"5869 unchanged line5870 is expected to eq nil5871 is expected to eq 245872 is expected to eq 315873 is expected to eq " @cmd_output << stderr.read"5874 \ No newline at end of file5875 parses nonewline in one file correctly5876 parses nonewline in two files correctly5877 when lines is empty5878 is expected to eq []5879 is expected to eq []5880 when it is a binary notice5881 is expected to eq []5882 tolerates special diff markers in a content5883 counts lines correctly5884Snippets::CountService5885 #new5886 raises an error if no author or project5887 uses the SnippetsFinder to scope snippets by user5888 allows scoping to project5889 #execute5890DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5891 returns a hash of counts5892DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5893 only counts snippets the user has access to5894 returns an empty hash if select returns nil5895AuthorizedProjectUpdate::ProjectRecalculatePerUserService#execute5896 returns success5897 when there are no changes to be made5898 does not change authorizations5899 when there are changes to be made5900 when addition is required5901 adds a new authorization record for the specific user5902 does not add a new authorization record for the other user5903 adds a new authorization record with the correct access level for the specific user5904 when removal is required5905 removes the authorization record for the specific user5906 does not remove the authorization record for the other user5907 when an update in access level is required5908 updates the authorization of the specific user to the correct access level5909 does not update the authorization of the other user to the correct access level5910shared/deploy_tokens/_form.html.haml5911 when the subject is a project5912 packages_enabled: true, feature_enabled: true, role: :maintainer, shows_package_registry_permissions: true5913 behaves like display deploy token settings5914 correctly renders the form5915 packages_enabled: false, feature_enabled: true, role: :maintainer, shows_package_registry_permissions: false5916 behaves like display deploy token settings5917 correctly renders the form5918 packages_enabled: true, feature_enabled: false, role: :maintainer, shows_package_registry_permissions: false5919 behaves like display deploy token settings5920 correctly renders the form5921 packages_enabled: false, feature_enabled: false, role: :maintainer, shows_package_registry_permissions: false5922 behaves like display deploy token settings5923 correctly renders the form5924 when the subject is a group5925 packages_enabled: true, role: :owner, shows_package_registry_permissions: true5926 behaves like display deploy token settings5927 correctly renders the form5928 packages_enabled: false, role: :owner, shows_package_registry_permissions: false5929 behaves like display deploy token settings5930 correctly renders the form5931 packages_enabled: true, role: :maintainer, shows_package_registry_permissions: true5932 behaves like display deploy token settings5933 correctly renders the form5934 packages_enabled: false, role: :maintainer, shows_package_registry_permissions: false5935 behaves like display deploy token settings5936 correctly renders the form5937Milestones::IssuesCountService5938 counts all issues including confidential5939 behaves like a counter caching service5940 #count5941 caches the count5942 #refresh_cache5943 refreshes the cache5944 #delete_cache5945 removes the cache5946 #uncached_count5947 does not cache the count5948Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuted5949 behaves like deduplicating jobs when scheduling5950 #schedule5951 checks for duplicates before yielding5952 checks worker options for scheduled jobs5953 job marking5954 adds the jid of the existing job to the job hash5955 scheduled jobs5956 scheduled in the past5957 adds the jid of the existing job to the job hash5958 scheduled in the future5959 adds the jid of the existing job to the job hash5960 when the job is not duplicate5961 does not return false nor drop the job5962 when the job is droppable5963 updates latest wal location5964 returns false to drop the job5965 logs that the job was dropped5966 logs the deduplication options of the worker5967 #perform5968 updates job hash with dedup_wal_locations5969 when latest_wal_location is empty5970 does not update job hash with dedup_wal_locations5971 #perform5972 deletes the lock after executing5973 deletes the lock even if an error occurs5974 does not reschedule the job even if deduplication happened5975 when job is reschedulable5976 reschedules the job if deduplication happened5977 does not reschedule the job if an error occurs5978Resolvers::PaginatedTreeResolver5979 is expected to have nullable GraphQL type TreeConnection5980 #resolve5981 resolves to a collection with a tree object5982 with recursive option5983 resolve to a recursive tree5984 with limited max_page_size5985 resolves to a pagination collection with a tree object5986 when repository does not exist5987 returns nil5988 Cursor pagination5989 returns all tree entries during cursor pagination5990 when cursor is invalid5991 generates an error5992ProtectedBranches::CreateService5993 #execute5994 creates a new protected branch5995 when protecting a branch with a name that contains HTML tags5996 creates a new protected branch5997 when user does not have permission5998 creates a new protected branch if we skip authorization step5999 raises Gitlab::Access:AccessDeniedError6000 when a policy restricts rule creation6001 prevents creation of the protected branch rule6002Mutations::Groups::Update6003 is expected to require graphql authorizations :admin_group6004 #resolve6005 changing shared runners setting6006 user_role: :owner, shared_examples_name: "updating the group shared runners setting"6007 behaves like updating the group shared runners setting6008 updates the group shared runners setting6009 returns no errors6010 with invalid params6011 doesn't update the shared_runners_setting6012 returns an error6013 user_role: :developer, shared_examples_name: "denying access to group shared runners setting"6014 behaves like denying access to group shared runners setting6015 raises Gitlab::Graphql::Errors::ResourceNotAvailable6016 user_role: :reporter, shared_examples_name: "denying access to group shared runners setting"6017 behaves like denying access to group shared runners setting6018 raises Gitlab::Graphql::Errors::ResourceNotAvailable6019 user_role: :guest, shared_examples_name: "denying access to group shared runners setting"6020 behaves like denying access to group shared runners setting6021 raises Gitlab::Graphql::Errors::ResourceNotAvailable6022 user_role: :anonymous, shared_examples_name: "denying access to group shared runners setting"6023 behaves like denying access to group shared runners setting6024 raises Gitlab::Graphql::Errors::ResourceNotAvailable6025Gitlab::Metrics::Subscribers::ExternalHttp6026 .detail_store6027 when external HTTP detail store is empty6028 returns an empty array6029 when the performance bar is not enabled6030 returns an empty array6031 when external HTTP detail store has some values6032 returns the external http detailed store6033 .payload6034 when SafeRequestStore does not have any item from external HTTP6035 returns an empty array6036 when external HTTP recorded some values6037 returns the external http detailed store6038 #request6039 tracks external HTTP request count6040 tracks external HTTP duration6041 tracks external HTTP exceptions6042 stores per-request counters6043 stores a portion of events into the detail store6044 when the performance bar is not enabled6045 does not capture detail store6046Gitlab::LocalAndRemoteStorageMigration::ArtifactMigrater6047 behaves like local and remote storage migration6048 start_store: 1, end_store: 2, method: :migrate_to_remote_storage6049 successfully migrates6050 start_store: 2, end_store: 2, method: :migrate_to_remote_storage6051 successfully migrates6052 start_store: 2, end_store: 1, method: :migrate_to_local_storage6053 successfully migrates6054 start_store: 1, end_store: 1, method: :migrate_to_local_storage6055 successfully migrates6056 when migration fails6057 prints error6058Gitlab::Git::Conflict::Parser6059 .parse6060 when the file has valid conflicts6061 sets our lines as new lines6062 sets their lines as old lines6063 sets non-conflicted lines as both6064 sets consecutive line numbers for line_obj_index, line_old, and line_new6065 when the file contents include conflict delimiters6066 raises MissingEndDelimiter when there is no end delimiter at the end6067 when there is a non-start delimiter first6068 raises UnexpectedDelimiter when there is a middle delimiter first6069 raises UnexpectedDelimiter when there is an end delimiter first6070 does not raise when there is an end delimiter for a different path first6071 when a start delimiter is followed by a non-middle delimiter6072 raises UnexpectedDelimiter when it is followed by an end delimiter6073 raises UnexpectedDelimiter when it is followed by another start delimiter6074 does not raise when it is followed by a start delimiter for a different path6075 when a middle delimiter is followed by a non-end delimiter6076 raises UnexpectedDelimiter when it is followed by another middle delimiter6077 raises UnexpectedDelimiter when it is followed by a start delimiter6078 does not raise when it is followed by a start delimiter for another path6079 other file types6080 raises UnmergeableFile when lines is blank, indicating a binary file6081 raises UnmergeableFile when the file is over 200 KB6082 when the file contains UTF-8 characters6083 does not raise6084Pajamas::RadioComponent6085 with default options6086 renders unchecked radio6087 does not render help text6088 with custom options6089 renders help text6090 renders checked radio6091 adds CSS class to label6092 with `label` slot6093 renders unchecked radio6094 with `help_text` slot6095 renders unchecked radio6096 renders help text6097 with `label` and `help_text` slots6098 renders unchecked radio6099 renders help text6100RuboCop::Formatter::TodoFormatter6101 with offenses detected6102 outputs its actions6103 creates YAML files6104 when cop previously not explicitly disabled6105 does not disable cop6106 when cop previously explicitly disabled in rubocop_todo/6107 keeps cop disabled6108 when cop previously explicitly disabled in rubocop_todo.yml6109 keeps cop disabled6110 with cop configuration in both .rubocop_todo/ and .rubocop_todo.yml6111 raises an error6112 without offenses detected6113 does not output anything6114 does not write any YAML files6115 without files to inspect6116 does not output anything6117 does not write any YAML files6118OmniAuth::Strategies::Jwt6119 #decoded6120 when the RS256 algorithm is used6121 decodes the user information6122 when the RS384 algorithm is used6123 decodes the user information6124 when the RS512 algorithm is used6125 decodes the user information6126 when the ES256 algorithm is used6127 decodes the user information6128 when the ES384 algorithm is used6129 decodes the user information6130 when the ES512 algorithm is used6131 decodes the user information6132 when the HS256 algorithm is used6133 decodes the user information6134 when the HS384 algorithm is used6135 decodes the user information6136 when the HS512 algorithm is used6137 decodes the user information6138 required claims is missing6139 raises error6140 when valid_within is specified but iat attribute is missing in response6141 raises error6142 when timestamp claim is too skewed from present6143 raises error6144MergeRequestsHelper6145 #format_mr_branch_names6146 within the same project6147 is expected to eq ["master", "feature"]6148 within different projects6149 is expected to eq ["group169/project1098:master", "namespace1426/project1097:feature"]6150 #tab_link_for6151 supports the :force_link option6152 removes the data-toggle attributes6153 #user_merge_requests_counts6154 mr_attention_requests disabled6155 returns assigned, review requested and total merge request counts6156 mr_attention_requests enabled6157 returns assigned, review requested, attention requests and total merge request counts6158 #reviewers_label6159 when multiple reviewers exist6160 returns reviewer label with reviewer names6161 returns reviewer label only with include_value: false6162 when the name contains a URL6163 returns sanitized name6164 when one reviewer exists6165 returns reviewer label with no names6166 returns reviewer label only with include_value: false6167 when no reviewers exist6168 returns reviewer label with no names6169 returns reviewer label only with include_value: false6170CustomEmojiPolicy6171 custom emoji permissions6172 when user is6173 a developer6174 is expected to be allowed :create_custom_emoji6175 is maintainer6176 is expected to be allowed :delete_custom_emoji6177 is owner6178 is expected to be allowed :delete_custom_emoji6179 is developer and emoji creator6180 is expected to be allowed :delete_custom_emoji6181 is emoji creator but not a member of the group6182 is expected not to be allowed :delete_custom_emoji6183EnvironmentsHelper6184 #metrics_data6185 returns data6186 without admin_operations permission6187 is expected to include {"can_access_operations_settings" => "false"}6188 with metrics_setting6189 adds external_dashboard_url6190 when the environment is not available6191 is expected to include {"environment_state" => "stopped"}6192 when request is from project scoped metrics path6193 /:namespace/:project/-/metrics6194 uses correct path for metrics_dashboard_base_path6195 /:namespace/:project/-/metrics/some_custom_dashboard.yml6196 uses correct path for metrics_dashboard_base_path6197 #custom_metrics_available?6198 returns true6199 #environment_logs_data6200 returns logs data6201 #environment_data6202 returns the environment as JSON6203Git::WikiPushService::Change6204 #page6205 the page does not exist6206 the operation is added6207 is expected to have attributes {:page => (be nil)}6208 the operation is deleted6209 is expected to have attributes {:page => (be nil)}6210 the operation is renamed6211 is expected to have attributes {:page => (be nil)}6212 the operation is modified6213 is expected to have attributes {:page => (be nil)}6214 the page can be found6215 is expected to have attributes {:page => #<Double "WikiPage">}6216 is expected to have attributes {:page => #<Double "WikiPage">}6217 is expected to have attributes {:page => #<Double "WikiPage">}6218 the page has been deleted6219 is expected to have attributes {:page => #<Double "WikiPage">}6220 #last_known_slug6221 the page has been created6222 is expected to have attributes {:last_known_slug => "Page_10"}6223 the operation is renamed6224 is expected to have attributes {:last_known_slug => "Page_12"}6225 the operation is modified6226 is expected to have attributes {:last_known_slug => "Page_13"}6227 the operation is deleted6228 is expected to have attributes {:last_known_slug => "Page_14"}6229 #event_action6230 the page is deleted6231 is expected to have attributes {:event_action => :destroyed}6232 the page is added6233 is expected to have attributes {:event_action => :created}6234 the page is renamed6235 is expected to have attributes {:event_action => :updated}6236 the page is modified6237 is expected to have attributes {:event_action => :updated}6238Gitlab::Email::Message::InProductMarketing6239 .for6240 when track exists6241 track: :create, expected_class: Gitlab::Email::Message::InProductMarketing::Create6242 is expected to eq Gitlab::Email::Message::InProductMarketing::Create6243 track: :team_short, expected_class: Gitlab::Email::Message::InProductMarketing::TeamShort6244 is expected to eq Gitlab::Email::Message::InProductMarketing::TeamShort6245 track: :trial_short, expected_class: Gitlab::Email::Message::InProductMarketing::TrialShort6246 is expected to eq Gitlab::Email::Message::InProductMarketing::TrialShort6247 track: :admin_verify, expected_class: Gitlab::Email::Message::InProductMarketing::AdminVerify6248 is expected to eq Gitlab::Email::Message::InProductMarketing::AdminVerify6249 track: :verify, expected_class: Gitlab::Email::Message::InProductMarketing::Verify6250 is expected to eq Gitlab::Email::Message::InProductMarketing::Verify6251 track: :trial, expected_class: Gitlab::Email::Message::InProductMarketing::Trial6252 is expected to eq Gitlab::Email::Message::InProductMarketing::Trial6253 track: :team, expected_class: Gitlab::Email::Message::InProductMarketing::Team6254 is expected to eq Gitlab::Email::Message::InProductMarketing::Team6255 track: :experience, expected_class: Gitlab::Email::Message::InProductMarketing::Experience6256 is expected to eq Gitlab::Email::Message::InProductMarketing::Experience6257 when track does not exist6258 raises error6259Gitlab::Changelog::Release6260 #to_markdown6261 when there are no entries6262 includes a notice about the lack of entries6263 when all data is present6264 includes all data6265 when no merge request is present6266 doesn't include a merge request link6267 when the author is not a contributor6268 doesn't include the author6269 when the author should always be credited6270 includes the author6271 when a category has no entries6272 isn't included in the output6273 when template parser raises an error6274 raises a Changelog error6275 #header_start_position6276 returns a regular expression for finding the start of a release section6277Gitlab::SafeRequestLoader6278 .execute6279 gets data from the store and returns it6280 #execute6281 without a block6282 raises an error6283 when a resource_id is nil6284 contains resource_data with nil key6285 with SafeRequestStore considerations6286 when request store is active6287 gets data from the store6288 with already loaded resource_ids6289 does not re-fetch data if resource_id already exists6290 with mixture of new and existing resource_ids6291 when block does not filter for only the missing resource_ids6292 overwrites existing keyed data with results from the block6293 when passing the missing resource_ids to a block that filters for them6294 only updates resource_data with keyed items that did not exist6295 with default_value for resource_ids that did not exist in the results6296 when default_value is provided6297 populates a default value6298 when default_value is not provided6299 populates a default_value of nil6300 when request store is not active6301 has no data added from the store6302 with mixture of new and existing resource_ids6303 when block does not filter out existing resource_data keys6304 overwrites existing keyed data with results from the block6305 when passing the missing resource_ids to a block that filters for them6306 only updates resource_data with keyed items that did not exist6307 with default_value for resource_ids that did not exist in the results6308 when default_value is provided6309 populates a default value6310 when default_value is not provided6311 populates a default_value of nil6312Packages::MarkPackageForDestructionService6313 #execute6314 when the user is authorized6315 when it is successful6316 marks the package and package files as pending destruction6317 returns a success ServiceResponse6318 when it is not successful6319 returns an error ServiceResponse6320 when the user is not authorized6321 returns an error ServiceResponse6322gitlab:setup namespace rake tasks6323 setup6324 sets up the application6325 when an environment variable is set to force execution6326 sets up the application without prompting the user6327 when the gitaly connection check raises an error6328 exits the task without setting up the database6329 when the task is aborted6330 exits without setting up the database6331 when in the production environment6332 sets up the database without terminating connections6333API::Helpers::PaginationStrategies6334 #paginate_with_strategies6335 yields paginated relation6336 calls #finalize with first value returned from block6337 returns whatever the block returns6338 #paginator6339 offset pagination6340 when keyset pagination is available for the relation6341 when a request scope is given6342 when the scope limit is exceeded6343 renders a 405 error6344 when the scope limit is not exceeded6345 delegates to OffsetPagination6346 when a request scope is not given6347 when the default limits are exceeded6348 renders a 405 error6349 when the default limits are not exceeded6350 delegates to OffsetPagination6351 when keyset pagination is not available for the relation6352 delegates to OffsetPagination6353 for keyset pagination6354 when keyset pagination is available6355 delegates to Pager6356 when keyset pagination is not available6357 renders a 501 error6358Packages::Cleanup::Policy6359 relationships6360 is expected to belong to project required: false6361 validations6362 is expected to validate that :project cannot be empty/falsy6363 is expected to validate that :keep_n_duplicated_package_files is either ‹"all"›, ‹"1"›, ‹"10"›, ‹"20"›, ‹"30"›, ‹"40"›, or ‹"50"›, producing a custom validation error on failure6364 .active6365 is expected to contain exactly #<Packages::Cleanup::Policy created_at: "2022-07-04 07:44:27.436037402 +0000", updated_at: "2022-07-0...id: 1070, next_run_at: "2022-07-04 19:44:27.435908272 +0000", keep_n_duplicated_package_files: "10">6366Boards::Issues::CreateService6367 #execute6368 delegates the create proceedings to Issues::CreateService6369 creates a new issue6370 adds the label of the list to the issue6371Gitlab::Kubernetes::ServiceAccountToken6372 is expected to eq "token-name"6373 is expected to eq "a_service_account"6374 is expected to eq "a_namespace"6375 #generate6376 builds a Kubeclient Resource6377Gitlab::UsageDataCounters::EditorUniqueCounter6378 can return the count of actions per user deduplicated6379 for web IDE edit actions6380 behaves like tracks and counts action6381 is expected to eq 36382 does not track edit actions if author is not present6383 for SFE edit actions6384 behaves like tracks and counts action6385 is expected to eq 36386 does not track edit actions if author is not present6387 for snippet editor edit actions6388 behaves like tracks and counts action6389 is expected to eq 36390 does not track edit actions if author is not present6391Gitlab::JiraImport::LabelsImporter6392 #execute6393 when label is missing from jira import6394 raises error6395 when jira import label exists6396 when labels are returned from jira6397 caches import label6398 calls Gitlab::JiraImport::HandleLabelsService6399 when there are no labels to be handled6400 when the labels field is empty6401 behaves like no labels handling6402 does not call Gitlab::JiraImport::HandleLabelsService6403 when the labels field is missing6404 behaves like no labels handling6405 does not call Gitlab::JiraImport::HandleLabelsService6406 when the isLast argument is missing6407 behaves like no labels handling6408 does not call Gitlab::JiraImport::HandleLabelsService6409LegacyDiffDiscussion6410 #reply_attributes6411 includes line_code6412 #merge_request_version_params6413 when the discussion is active6414 returns an empty hash, which will end up showing the latest version6415 when the discussion is outdated6416 returns nil6417ProtectedBranch::PushAccessLevel6418 is expected to validate that :access_level is either ‹40›, ‹30›, or ‹0›6419 associations6420 is expected to belong to deploy_key required: false6421 validations6422 is not valid when a record exists with the same access level6423 is not valid when a record exists with the same access level6424 checks that a deploy key is enabled for the same project as the protected branch's6425 #check_access6426 when this push_access_level is tied to a deploy key6427 when the deploy key is among the active keys for this project6428 is expected to be truthy6429 when the deploy key is not among the active keys of this project6430 is false6431 #type6432 returns :deploy_key when a deploy key is tied to the protected branch6433 returns :role by default6434JiraConnectInstallation6435 associations6436 is expected to have many subscriptions class_name => JiraConnectSubscription6437 validations6438 is expected to validate that :client_key cannot be empty/falsy6439 is expected to validate that :client_key is case-sensitively unique6440 is expected to validate that :shared_secret cannot be empty/falsy6441 is expected to validate that :base_url cannot be empty/falsy6442 is expected to allow :base_url to be ‹"https://test.atlassian.net"›6443 is expected not to allow :base_url to be ‹"not/a/url"›6444 is expected to allow :instance_url to be ‹"https://test.atlassian.net"›6445 is expected not to allow :instance_url to be ‹"not/a/url"›6446 .for_project6447 returns installations with subscriptions for project6448 returns distinct installations6449Sidebars::Projects::Menus::MonitorMenu6450 #render?6451 when operations feature is disabled6452 returns false6453 when operation feature is enabled6454 when menu does not have any renderable menu items6455 returns false6456 when menu has menu items6457 returns true6458 #title6459 returns "Monitor"6460 #extra_container_html_options6461 returns "shortcuts-monitor"6462 Menu items6463 Metrics Dashboard6464 behaves like access rights checks6465 is expected not to be nil6466 when the user does not have access6467 is expected to be nil6468 Error Tracking6469 behaves like access rights checks6470 is expected not to be nil6471 when the user does not have access6472 is expected to be nil6473 Alert Management6474 behaves like access rights checks6475 is expected not to be nil6476 when the user does not have access6477 is expected to be nil6478 Incidents6479 behaves like access rights checks6480 is expected not to be nil6481 when the user does not have access6482 is expected to be nil6483 Product Analytics6484 is expected not to be nil6485 when feature flag :product_analytics is disabled6486 is expected to be nil6487Ci::CommitStatusesFinder#execute6488 tag refs6489 no pipelines6490 returns nil6491 when multiple tags exist6492 all relevant commit statuses are received6493 when a tag has multiple pipelines6494 chooses the latest to determine status6495 branch refs6496 no pipelines6497 returns nil6498 when a branch has multiple pipelines6499 chooses the latest to determine status6500 when multiple branches exist6501 all relevant commit statuses are received6502 CI pipelines visible to6503 everyone6504 returns something6505 project members only6506 returns a blank hash6507 when not a member of a private project6508 returns a blank hash6509Gitlab::Git::KeepAround6510 does not fail if we attempt to reference bad commit6511 stores a reference to the specified commit sha so it isn't garbage collected6512 attempting to call keep around on truncated ref does not fail6513 for multiple SHAs6514 skips non-existent SHAs6515 skips already-kept-around SHAs6516Gitlab::Git::RemoteRepository6517 #empty?6518 repository: #<Gitlab::Git::Repository:0x00007f7b9572a2a0 @storage="default", @relative_path="gitlab-git-test.git", @gl_repository="", @gl_project_path="group/project", @name="gitlab-git-test.git">, result: false6519 is expected to eq false6520 repository: #<Gitlab::Git::Repository:0x00007f7b95729a30 @storage="default", @relative_path="does-not-exist.git", @gl_repository="", @gl_project_path="group/project", @name="does-not-exist.git">, result: true6521 is expected to eq true6522 #commit_id6523 returns an OID if the revision exists6524 is nil when the revision does not exist6525 #branch_exists?6526 branch: "master", result: true6527 is expected to eq true6528 branch: "does-not-exist", result: false6529 is expected to eq false6530 #same_repository?6531 other_repository: #<Gitlab::Git::Repository:0x00007f7b9565e858 @storage="default", @relative_path="gitlab-git-test.git", @gl_repository="", @gl_project_path="group/project", @name="gitlab-git-test.git">, result: true6532 is expected to eq true6533 other_repository: #<Gitlab::Git::Repository:0x00007f7b9565d548 @storage="default", @relative_path="gitlab-git-test.git", @gl_repository="", @gl_project_path="group/project", @name="gitlab-git-test.git">, result: true6534 is expected to eq true6535 other_repository: #<Gitlab::Git::Repository:0x00007f7b9565c8c8 @storage="broken", @relative_path="gitlab-git-test.git", @gl_repository="", @gl_project_path="group/project", @name="gitlab-git-test.git">, result: false6536 is expected to eq false6537 other_repository: #<Gitlab::Git::Repository:0x00007f7b9565c080 @storage="default", @relative_path="wrong/relative-path.git", @gl_repository="", @gl_project_path="group/project", @name="relative-path.git">, result: false6538 is expected to eq false6539 other_repository: #<Gitlab::Git::Repository:0x00007f7b9564e610 @storage="broken", @relative_path="wrong/relative-path.git", @gl_repository="", @gl_project_path="group/project", @name="relative-path.git">, result: false6540 is expected to eq false6541SystemCheck::App::GitUserDefaultSSHConfigCheck6542 only whitelists safe files6543 #skip?6544 user_exists: true, home_dir_exists: true6545 is expected to eq false6546 user_exists: true, home_dir_exists: false6547 is expected to eq true6548 user_exists: false, home_dir_exists: true6549 is expected to eq true6550 user_exists: false, home_dir_exists: false6551 is expected to eq true6552 #check?6553 fails if a forbidden file exists6554 succeeds if the SSH directory doesn't exist6555 succeeds if all the whitelisted files exist6556 #show_error6557 outputs error information6558RuboCop::Cop::Gitlab::EventStoreSubscriber6559 when an event store subscriber overrides #perform6560 registers an offense6561 when an event store subscriber does not override #perform6562 does not register an offense6563 when an event store subscriber does not implement #handle_event6564 registers an offense6565 when a Sidekiq worker overrides #perform6566 does not register an offense6567 when a Sidekiq worker implements #handle_event6568 does not register an offense6569 a non worker class6570 does not register an offense6571Mutations::CustomerRelations::Organizations::Update6572 is expected to require graphql authorizations :admin_crm_organization6573 #resolve6574 when the user does not have permission to update an organization6575 raises an error6576 when the organization does not exist6577 raises an error6578 when the user has permission to update an organization6579 updates the organization with correct values6580 when the feature is disabled6581 raises an error6582Resolvers::Ci::TemplateResolver6583 #resolve6584 when template exists6585 returns the found template6586 when template does not exist6587 returns nil6588Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker6589 #import6590 imports the issues and diff notes6591 #importers6592 when project group is present6593 when feature flag github_importer_single_endpoint_notes_import is enabled6594 includes single endpoint diff notes importer6595 when feature flag github_importer_single_endpoint_notes_import is disabled6596 includes default diff notes importer6597 when project group is missing6598 includes default diff notes importer6599BulkImports::Groups::Pipelines::SubgroupEntitiesPipeline6600 #run6601 creates entities for the subgroups6602 #load6603 creates entities for the given data6604 pipeline parts6605 is expected to includes the BulkImports::Pipeline module6606 is expected to includes the BulkImports::Pipeline::Runner module6607 has extractors6608 has transformers6609SystemNoteMetadata6610 associations6611 is expected to belong to note required: false6612 is expected to belong to description_version required: false6613 validation6614 is expected to validate that :note cannot be empty/falsy6615 when action type is invalid6616 is expected to be invalid6617 when action type is valid6618 is expected to be valid6619 when action type is valid6620 is expected to be valid6621 when importing6622 is expected to be valid6623MergeRequest::MetricsFinder6624 when target project is missing6625 is expected to be empty6626 when the user is not part of the project6627 is expected to be empty6628 when user is part of the project6629 returns merge request records6630 excludes not merged records6631 when only merged_before is given6632 is expected to eq [#<MergeRequest::Metrics id: 283, merge_request_id: 226, latest_build_started_at: nil, latest_build_f...d_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 1099>]6633 when only merged_after is given6634 is expected to eq [#<MergeRequest::Metrics id: 283, merge_request_id: 226, latest_build_started_at: nil, latest_build_f...d_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 1099>]6635 when no records matching the date range6636 is expected to be empty6637Gitlab::PhabricatorImport::ProjectCreator6638 #execute6639 creates a project correctly and schedule an import6640 when import params are missing6641 returns nil6642 when import params are invalid6643 returns an unpersisted project6644Branches::CreateService6645 #execute6646 logs and returns an error if there is a PreReceiveError exception6647 when repository is empty6648 creates master branch6649 creates another-feature branch6650 when branch already exists6651 returns an error6652 when incorrect reference is provided6653 returns an error with a reference name6654 when an ambiguous branch name is provided6655 returns an error that branch could not be created6656User6657 types consistency checks6658 scopes & predicates6659 .humans6660 includes humans only6661 .bots6662 includes all bots6663 .without_bots6664 includes everyone except bots6665 .bots_without_project_bot6666 includes all bots except project_bot6667 .non_internal6668 includes all non_internal users6669 .without_ghosts6670 includes everyone except ghosts6671 .without_project_bot6672 includes everyone except project_bot6673 #bot?6674 is true for all bot user types and false for others6675 #human?6676 is true for humans only6677 #internal?6678 is true for all internal user types and false for others6679Gitlab::GithubImport::Representation::User6680 .from_api_response6681 behaves like a User6682 returns an instance of User6683 the returned User6684 includes the user ID6685 includes the username6686 .from_json_hash6687 behaves like a User6688 returns an instance of User6689 the returned User6690 includes the user ID6691 includes the username6692Analytics::UsageTrends::CountJobTriggerWorker6693 behaves like an idempotent worker6694 is labeled as idempotent6695 performs multiple times sequentially without raising an exception6696 triggers a job for each measurement identifiers6697 triggers CounterJobWorker jobs6698Gitlab::LegacyGithubImport::UserFormatter6699 #gitlab_id6700 returns nil when GitHub user is not a GitLab user6701 when GitHub user is a GitLab user6702 return GitLab user id when user associated their account with GitHub6703 returns GitLab user id when user primary email matches GitHub email6704 returns GitLab user id when any of user linked emails matches GitHub email6705ClusterProvisionWorker6706 #perform6707 when provider type is gcp6708 provision a cluster6709 when provider type is aws6710 provision a cluster6711 when provider type is user6712 does not provision a cluster6713 when cluster does not exist6714 does not provision a cluster6715MergeRequests::BaseService6716 #execute_hooks6717 with a Jira subscription6718 MR contains Jira issue key6719 behaves like enqueues Jira sync worker6720 aggregate_failures6721 MR does not contain Jira issue key6722 behaves like does not enqueue Jira sync worker6723 is expected not to change `Array#size`6724 without a Jira subscription6725 behaves like does not enqueue Jira sync worker6726 is expected not to change `Array#size`6727Gitlab::Ci::Build::Credentials::Registry::DependencyProxy6728 contains valid dependency proxy credentials6729 .valid?6730 when dependency proxy is enabled6731 is expected to be truthy6732 when dependency proxy is disabled6733 is expected to be falsey6734Gitlab::Graphql::Loaders::IssuableLoader6735 #find_all6736 factory: :project, param_name: :project_id6737 assignes the parent parameter, and batching_find_alls the finder6738 factory: :group, param_name: :group_id6739 assignes the parent parameter, and batching_find_alls the finder6740 the parent is of an unexpected type6741 raises an error if we pass an unexpected parent6742 #batching_find_all6743 the finder params are anything other than [iids]6744 batching_find_alls the finder, setting the correct parent parameter6745 allows a post-process block6746 the finder params are exactly [iids]6747 batches requests6748Gitlab::ColorSchemes6749 .body_classes6750 returns a space-separated list of class names6751 .by_id6752 returns a scheme by its ID6753 .default6754 returns the default scheme6755 .each6756 passes the block to the SCHEMES Array6757 .for_user6758 returns default when user is nil6759 returns user's preferred color scheme6760Gitlab::Kubernetes::RolloutInstances6761 #pod_instances6762 returns an instance for a deployment with one pod6763 returns a pending pod for a missing replica6764 returns instances when there are two stable deployments6765 returns instances for two deployments with different tracks6766 sorts stable tracks after canary tracks6767Projects::FetchStatisticsIncrementService6768 #execute6769 creates a new record for today with count == 16770 doesn't increment previous days statistics6771 when the record already exists for today6772 increments the today record count by 16773Gitlab::DependencyLinker::GemfileLinker6774 .support?6775 supports Gemfile6776 supports gems.rb6777 does not support other files6778 #link6779 links sources6780 links dependencies6781 links to external dependencies6782 links GitHub repos6783 links Git repos6784Gitlab::QueryLimiting::Middleware6785 #call6786 runs the application with query limiting in place6787 #action_name6788 using a Rails request6789 returns the name of the controller and action6790 includes the content type if this is not text/html6791 using a Grape API request6792 returns the name of the request method and endpoint path6793 returns nil if the route can not be retrieved6794Gitlab::SetupHelper::Praefect6795 .configuration_toml6796 defaults to in memory queue6797 provides database details if wanted6798 fails when pghost is missing6799 uses the provided pghost6800 fails when pgport is missing6801 uses the provided pgport6802 fails when pguser is missing6803 uses the provided pguser6804 defaults to praefect_test if dbname is missing6805 uses the provided dbname6806 .get_config_path6807 defaults to praefect.config.toml6808 takes the provided config_filename6809Gitlab::DataBuilder::FeatureFlag6810 .build6811 is expected to be a kind of Hash6812 is expected to eq "feature_flag"6813 contains the correct object attributes6814Gitlab::Graphql::GenericTracing6815 updates graphql histogram with expected labels6816 when labkit tracing is enabled6817 yields with labkit tracing6818 when labkit tracing is disabled6819 yields without measurement6820PersonalAccessTokens::ExpiredNotificationWorker6821 #perform6822 when a token has expired6823 uses notification service to send email to the user6824 updates notified column6825 when token has expired in the past6826 behaves like expiry notification is not required to be sent for the token6827 is expected not to receive access_token_expired(#<User id:2868 @user1297>) 0 times6828 when token is impersonated6829 behaves like expiry notification is not required to be sent for the token6830 is expected not to receive access_token_expired(#<User id:2869 @user1298>) 0 times6831 when token is revoked6832 behaves like expiry notification is not required to be sent for the token6833 is expected not to receive access_token_expired(#<User id:2870 @user1299>) 0 times6834Gitlab::Graphql::BatchKey6835 is equal to keys of the same object, regardless of lookahead or object name6836 delegates attribute lookup methods to the inner object6837 allows the object to be named more meaningfully6838 works as a hash key6839 #requires?6840 returns false if the lookahead was not provided6841 lookahead was provided6842 returns false if the path is empty6843 it selects the field6844 returns true6845 it does not select the field6846 returns false6847Ci::CreatePipelineService6848 .pre/.post stages6849 when pipeline contains a build except .pre/.post6850 creates a pipeline6851 when pipeline does not contain any other build except .pre/.post6852 does not create a pipeline6853Gitlab::Ci::Config::Entry::Include::Rules6854 .new6855 with an "if"6856 behaves like a valid config6857 is expected to be valid6858 when composed6859 is expected to be valid6860 with a "changes"6861 when composed6862 behaves like an invalid config6863 is expected not to be valid6864 has errors6865 with a list of two rules6866 behaves like a valid config6867 is expected to be valid6868 when composed6869 is expected to be valid6870 without an array6871 behaves like an invalid config6872 is expected not to be valid6873 has errors6874 #value6875 with an "if"6876 is expected to eq [{:if=>"$THIS == \"that\""}]6877 with a list of two rules6878 is expected to eq [{:if=>"$THIS == \"that\""}, {:if=>"$SKIP"}]6879Gitlab::Memory::Jemalloc6880 when jemalloc is loaded6881 with JSON format6882 .stats6883 returns stats JSON6884 .dump_stats6885 writes stats JSON file6886 with text format6887 .stats6888 returns a text report6889 .dump_stats6890 writes stats text file6891 with unsupported format6892 .stats6893 raises an error6894 .dump_stats6895 raises an error6896 when jemalloc is not loaded6897 .stats6898 returns nil6899 .dump_stats6900 does nothing6901Gitlab::GitalyClient::CleanupService6902 #apply_bfg_object_map_stream6903 sends an apply_bfg_object_map_stream message6904ErrorTracking::SentryClient6905 is expected to respond to #projects6906 is expected to respond to #list_issues6907 is expected to respond to #issue_details6908 is expected to respond to #issue_latest_event6909 is expected to respond to #repos6910 is expected to respond to #create_issue_link6911SystemCheck::Orphans::RepositoryCheck6912 #multi_check6913 all orphans6914 prints list of all orphaned namespaces except @hashed6915 few orphans with existing namespace6916 prints list of orphaned namespaces6917 few orphans with existing namespace and parents with same name as orphans6918 prints list of orphaned namespaces ignoring parents with same namespace as orphans6919 no orphans6920 prints an empty list ignoring @hashed6921Milestones::UpdateService6922 #execute6923 valid params6924 is expected to be valid6925 is expected to eq "new_title"6926 state_event is activate6927 calls ReopenService6928 state_event is close6929 calls ReopenService6930Uploads::Fog6931 #available?6932 when object storage is enabled6933 is expected to be truthy6934 when object storage is disabled6935 is expected to be falsy6936 model with uploads6937 #keys6938 returns keys6939 #delete_keys6940 deletes multiple data6941 when one of keys is missing6942 deletes only existing keys6943ErrorTracking::Collector::PayloadValidator6944 #valid?6945 with event fixtures6946 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/python_event.json"6947 behaves like valid payload6948 is expected to be valid6949 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/parsed_event.json"6950 behaves like valid payload6951 is expected to be valid6952 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/browser_event.json"6953 behaves like valid payload6954 is expected to be valid6955 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/parsed_event_nullbytes.json"6956 behaves like valid payload6957 is expected to be valid6958 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/python_event_repl.json"6959 behaves like valid payload6960 is expected to be valid6961 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/go_two_exception_event.json"6962 behaves like valid payload6963 is expected to be valid6964 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/go_parsed_event.json"6965 behaves like valid payload6966 is expected to be valid6967 when empty6968 behaves like invalid payload6969 is expected not to be valid6970 when invalid6971 behaves like invalid payload6972 is expected not to be valid6973RuboCop::QAHelpers6974 #in_qa_file?6975 returns true for a node in the qa/ directory6976 returns false for a node outside the qa/ directory6977Packages::Composer::PackagesPresenter6978 #package_versions6979 returns the packages json6980 #provider6981 returns the provider json6982 #root6983 returns the provider json6984 with a client version 26985 returns the provider json6986Mutations::DependencyProxy::GroupSettings::Update6987 is expected to require graphql authorizations :admin_dependency_proxy6988 #resolve6989 user_role: :maintainer, shared_examples_name: "updating the dependency proxy group settings"6990 behaves like updating the dependency proxy group settings6991 returns the dependency proxy settings no errors6992 behaves like updating the dependency proxy group settings attributes6993 updates the dependency proxy settings6994 user_role: :developer, shared_examples_name: "denying access to dependency proxy group settings"6995 behaves like denying access to dependency proxy group settings6996 raises Gitlab::Graphql::Errors::ResourceNotAvailable6997 user_role: :reporter, shared_examples_name: "denying access to dependency proxy group settings"6998 behaves like denying access to dependency proxy group settings6999 raises Gitlab::Graphql::Errors::ResourceNotAvailable7000 user_role: :guest, shared_examples_name: "denying access to dependency proxy group settings"7001 behaves like denying access to dependency proxy group settings7002 raises Gitlab::Graphql::Errors::ResourceNotAvailable7003 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy group settings"7004 behaves like denying access to dependency proxy group settings7005 raises Gitlab::Graphql::Errors::ResourceNotAvailable7006Types::ReleaseAssetsType7007 is expected to require graphql authorizations :read_release7008 has the expected fields7009 links field7010 is expected to have graphql type #<Class:0x00007f7b9db6fc40>7011 sources field7012 is expected to have graphql type #<Class:0x00007f7b9db66b68>7013RuboCop::Cop::UsageData::DistinctCountByLargeForeignKey7014 when counting by disallowed key7015 registers an offense7016 does not register an offense when batch is false7017 registers an offense when batch is true7018 when calling by allowed key7019 does not register an offense with symbol7020 does not register an offense with string7021BlobViewer::License7022 #license7023 returns the blob project repository license7024 #render_error7025 when there is no license7026 returns :unknown_license7027 when there is a license7028 returns nil7029HashedStorage::MigratorWorker7030 #perform7031 delegates to MigratorService7032 migrates projects in the specified range7033Namespaces::OnboardingIssueCreatedWorker#perform7034 behaves like records an onboarding progress action7035 is expected to receive execute({:action=>:issue_created}) 1 time7036 behaves like does not record an onboarding progress action7037 is expected not to receive new(*(any args)) 0 times7038 behaves like an idempotent worker7039 is labeled as idempotent7040 performs multiple times sequentially without raising an exception7041 sets the onboarding progress action7042Gitlab::Usage::Metrics::Aggregates::Sources::RedisHll7043 .calculate_events_union7044 calls Gitlab::UsageDataCounters::HLLRedisCounter.calculate_events_union7045 prevents from using fallback value as valid union result7046 .calculate_metrics_intersections7047 uses values returned by union to compute the intersection7048 raises error if union is < 07049Gitlab::Checks::ProjectCreated7050 .fetch_message7051 with a project created message queue7052 returns project created message7053 deletes the project created message from redis7054 with a message in the legacy key7055 returns and deletes the legacy message7056 with no project created message queue7057 returns nil7058 #add_message7059 queues a project created message7060 when user is nil7061 handles anonymous push7062Discussions::CaptureDiffNotePositionsService7063 when merge request has a discussion7064 and position of the discussion changed on target branch head7065 diff positions are created for the first notes of the discussions7066Types::Snippets::BlobActionEnum7067 is expected to eq "SnippetBlobActionEnum"7068 exposes all file input action types7069ResourceEvents::SyntheticStateNotesBuilderService7070 #execute7071 behaves like filters by paginated notes7072 only returns given notes7073 when paginated notes is empty7074 does not return any notes7075Types::ColorType7076 is expected to eq "Color"7077 coerces Color object into hex string7078 coerces an hex string into Color object7079 coerces an named Color into hex string7080 coerces an named color into Color object7081 rejects invalid input7082 rejects nil7083Banzai::Filter::InlineDiffFilter7084 adds inline diff span tags for deletions when using square brackets7085 adds inline diff span tags for deletions when using curley braces7086 does not add inline diff span tags when a closing tag is not provided7087 adds inline span tags for additions when using square brackets7088 adds inline span tags for additions when using curley braces7089 does not add inline diff span tags when a closing addition tag is not provided7090 does not add inline diff span tags when the tags do not match7091 prevents user-land html being injected7092 preserves content inside pre tags7093 preserves content inside code tags7094 preserves content inside tt tags7095Ci::CreatePipelineService7096 #execute7097 with deployment tier7098 creates the environment with the expected tier7099 when tier is testing7100 creates the environment with the expected tier7101Gitlab::Analytics::CycleAnalytics::Median7102 retruns nil when no results7103 returns median duration seconds as float71051st Try error in ./spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb:29:7106expected 449.384914 to be within 0.5 of 450.0 seconds7108RSpec::Retry: 2nd try ./spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb:297109Gitlab::Diff::PositionCollection7110 #to_a7111 returns all positions that are Gitlab::Diff::Position7112 #unfoldable7113 returns unfoldable diff positions7114 when given head_sha does not match with positions head_sha7115 returns no position7116 when given head_sha is nil7117 returns unfoldable diff positions unfiltered by head_sha7118 #concat7119 returns a Gitlab::Diff::Position7120 concatenates the new position to the collection7121GitlabEdition7122 .root7123 returns the root path of the app7124 extensions7125 when .jh? is true7126 returns %w[ee jh]7127 when .ee? is true7128 returns %w[ee]7129 when neither .jh? and .ee? are true7130 returns the extensions according to the current edition7131 .ee? and .jh?7132 .ee?7133 when EE7134 when using FOSS_ONLY=17135 returns not to be EE7136 when using FOSS_ONLY=07137 returns to be EE7138 when using default FOSS_ONLY7139 returns to be EE7140 when CE7141 returns not to be EE7142 .jh?7143 when JH7144 when using default FOSS_ONLY and EE_ONLY7145 returns to be JH7146 when using FOSS_ONLY=17147 returns not to be JH7148 when using EE_ONLY=17149 returns not to be JH7150groups/_home_panel7151 renders the group ID7152 admin area link7153 renders admin area link for admin7154 does not render admin area link for non-admin7155 does not render admin area link for anonymous7156MailScheduler::IssueDueWorker7157 #perform7158 sends emails for open issues due tomorrow in the project specified7159Projects::ScheduleBulkRepositoryShardMovesWorker7160 behaves like schedules bulk repository shard moves7161 #perform7162 is labeled as idempotent7163 performs multiple times sequentially without raising an exception7164 schedules container repository storage moves7165Gitlab::Import::SetAsyncJid7166 .set_jid7167 sets the JID in Redis7168 updates the import JID of the project7169RuboCop::Cop::Gitlab::PolicyRuleBoolean7170 registers offense for &&7171 registers offense for ||7172 registers offense for if7173 registers offense for ternary operator7174 registers no offense for &7175 registers no offense for |7176Gitlab::Graphql::KnownOperations7177 #from_query7178 query_string: "query { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="unknown">7179 returns known operation name from GraphQL Query7180 query_string: "query fuzzyyy { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="unknown">7181 returns known operation name from GraphQL Query7182 query_string: "query foo { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="foo">7183 returns known operation name from GraphQL Query7184 #operations7185 returns array of known operations7186 Operation#to_caller_id7187 query_string: "query { helloWorld }", expected: "graphql:unknown"7188 formats operation name for caller_id metric property7189 query_string: "query foo { helloWorld }", expected: "graphql:foo"7190 formats operation name for caller_id metric property7191 Opeartion#query_urgency7192 returns the associated query urgency7193 .default7194 returns a memoization of values from webpack7195Gitlab::Metrics::Exporter::MetricsMiddleware7196 #call7197 records a total requests metric7198 records a request duration histogram7199Users::SavedReplies::UpdateService7200 #execute7201 when update fails7202 is expected not to be success7203 returns error messages7204 when update succeeds7205 is expected to be success7206 updates new Saved Reply in database7207 returns saved reply7208GroupDeployKeysGroupPolicy7209 edit a group deploy key for a given group7210 is allowed when the user is an owner of this group7211 is not allowed when the user is not an owner of this group7212StartupjsHelper7213 #page_startup_graphql_calls7214 returns an array containing GraphQL Page Startup Calls7215 #page_startup_graphql_headers7216 csrf_token: "abc", feature_category: "web_ide", expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>"web_ide"}7217 returns hash of headers for GraphQL requests7218 csrf_token: "", feature_category: "", expected: {"X-CSRF-Token"=>"", "x-gitlab-feature-category"=>""}7219 returns hash of headers for GraphQL requests7220 csrf_token: "abc", feature_category: nil, expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>""}7221 returns hash of headers for GraphQL requests7222 csrf_token: "something", feature_category: " ", expected: {"X-CSRF-Token"=>"something", "x-gitlab-feature-category"=>""}7223 returns hash of headers for GraphQL requests7224Gitlab::FormBuilders::GitlabUiFormBuilder7225 #gitlab_ui_checkbox_component7226 when not using slots7227 without optional arguments7228 renders correct html7229 with optional arguments7230 renders help text7231 with checkbox_options: { multiple: true }7232 renders labels with correct for attributes7233 when using slots7234 renders correct html7235 #gitlab_ui_radio_component7236 when not using slots7237 without optional arguments7238 renders correct html7239 with optional arguments7240 renders help text7241 when using slots7242 renders correct html7243projects/runners/specific_runners.html.haml7244 render7245 when project runner registration is allowed7246 enables the Remove project button for a project7247 when project runner registration is not allowed7248 does not enable the Remove project button for a project7249WaitForClusterCreationWorker7250 #perform7251 when provider type is gcp7252 provisions a cluster7253 when provider type is aws7254 provisions a cluster7255 when provider type is user7256 does not provision a cluster7257 when cluster does not exist7258 does not provision a cluster7259Gitlab::Routing7260 when module is included7261 makes it possible to access url helpers7262 when module is not included7263 exposes url helpers module through a method7264 Gitlab::Routing::LegacyRedirector7265 returns "-" scoped url7266 invalid uri characters7267 raises error7268Packages::RemoveTagService7269 #execute7270 with existing tag7271 is expected to change `Packages::Tag.count` by -17272 with nil7273 is expected to raise ArgumentError7274Packages::Debian::FindOrCreatePackageService7275 #execute7276 run once7277 creates a new package7278 run twice7279 returns the same object7280 with package marked as pending_destruction7281 creates a new package7282 with non-existing distribution7283 raises ActiveRecord::RecordNotFound7284RuboCop::Cop::Gitlab::Json7285 when ::JSON is called7286 registers an offense7287 when ActiveSupport::JSON is called7288 registers an offense7289Banzai::Filter::References::AbstractReferenceFilter7290 #data_attributes_for7291 is not an XSS vector7292 abstract methods7293 #find_object7294 raises NotImplementedError7295 #url_for_object7296 raises NotImplementedError7297RuboCop::Cop::Graphql::ResolverType7298 adds an offense when there is no type annotation7299 does not add an offense for resolvers that have a type call7300 ignores type calls on other objects7301 does not add an offense unless the class is named using the Resolver convention7302CalendarHelper7303 #calendar_url_options7304 when signed in7305 includes the current_user's feed_token7306 when signed out7307 does not have a feed_token7308 when feed token disabled7309 does not have a feed_token7310JiraConnect::SyncService7311 #execute7312 calls Atlassian::JiraConnect::Client#store_dev_info and logs the response7313 when a request returns an error7314 logs the response as an error7315SnippetUserMention7316 associations7317 is expected to belong to snippet required: false7318 is expected to belong to note required: false7319 behaves like has user mentions7320 #has_mentions?7321 when no mentions7322 returns false7323 when mentioned_users_ids not null7324 returns true7325 when mentioned projects7326 returns true7327 when mentioned groups7328 returns true7329Gitlab::PhabricatorImport::ImportTasksWorker7330 #perform7331 calls the correct importer7332Types::CiConfiguration::Sast::Type7333 is expected to eq "SastCiConfiguration"7334 is expected to have graphql fields :global, :pipeline, and :analyzers7335Tooling::TestMapPacker7336 #pack7337 compacts list of test files into a prefix tree7338 does nothing to empty hash7339 #unpack7340 unpack prefix tree into list of test files7341 does nothing to empty hash7342GoogleCloud::EnableCloudRunService7343 when a project does not have any gcp projects7344 returns error7345 when a project has 3 gcp projects7346 enables cloud run, artifacts registry and cloud build7347Types::Packages::Nuget::MetadatumType7348 includes nuget metadatum fields7349 projectUrl can be null7350 licenseUrl can be null7351 iconUrl can be null7352Import::BitbucketServerProviderRepoEntity7353 behaves like exposes required fields for import entity7354 exposes required fields7355 correctly exposes id7356 correctly exposes full name7357 correctly exposes sanitized name7358 correctly exposes provider link7359Projects::ProjectTopic7360 is expected to be valid7361 associations7362 is expected to belong to project required: false7363 is expected to belong to topic required: false7364Gitlab::SidekiqMiddleware::ExtraDoneLogMetadata7365 #call7366 merges Application#logging_extras in to job7367 does not raise when the worker does not respond to #done_log_extra_metadata7368HamlLint::Linter::InlineJavaScript7369 haml: "%script", should_report: true7370 is expected to report a lint with message 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)'7371 haml: "%javascript", should_report: false7372 is expected not to report a lint7373 haml: ":javascript", should_report: true7374 is expected to report a lint with message 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)'7375 haml: ":markdown", should_report: false7376 is expected not to report a lint7377Resolvers::Ci::RunnerStatusResolver7378 #resolve7379 with legacy_mode7380 set to 14.57381 calls runner.status with specified legacy_mode7382 set to nil7383 calls runner.status with specified legacy_mode7384Projects::Prometheus::Metrics::DestroyService7385 destroys metric7386BulkImports::ExportUpload7387 stores export file7388 associations7389 is expected to belong to export required: false7390DiffViewerEntity7391 serializes diff file viewer7392Types::CustomEmojiType7393 is expected to eq "CustomEmoji"7394 is expected to require graphql authorizations :read_custom_emoji7395 is expected to have graphql fields :id, :name, :url, and :external7396Gitlab::ConfigChecker::PumaRuggedChecker7397 #check7398 application is not puma7399 is expected to be empty7400 application is puma7401 not multithreaded_puma and rugged API enabled7402 is expected to be empty7403 not multithreaded_puma and rugged API is not enabled7404 is expected to be empty7405 multithreaded_puma and rugged API is not enabled7406 is expected to be empty7407 multithreaded_puma and rugged API is enabled7408 report multi_threaded_puma_with_rugged notices7409Rouge::Formatters::HTMLGitlab7410 #format7411 returns highlighted ruby code7412 when options are empty7413 returns highlighted code without language7414 when line number is provided7415 returns highlighted ruby code with correct line number7416 when unicode control characters are used7417 highlights the control characters7418Namespaces::OnboardingUserAddedWorker#perform7419 behaves like records an onboarding progress action7420 is expected to receive execute({:action=>:user_added}) 1 time7421Ci::Lint::JobEntity7422 #represent7423 exposes job data7424Atlassian::JiraConnect::Serializers::BranchEntity7425 sets the hash of the branch name as the id7426Gitlab::Graphql::Tracers::ApplicationContextTracer7427 sets application context during execute_query and cleans up afterwards7428 sets caller_id when operation is not known7429Users::RepairLdapBlockedService7430 #execute7431 changes to normal block after destroying last ldap identity7432 changes to normal block after changing last ldap identity to another provider7433Analytics::CycleAnalytics::StageFinder7434 when looking up in-memory default stage by name exists7435 is expected not to be persisted7436 is expected to eq "issue"7437 when in-memory default stage cannot be found7438 is expected to raise ActiveRecord::RecordNotFound7439Ci::ProcessPipelineService7440 processing events counter7441 increments processing events counter7442Gitlab::ApplicationRateLimiter::BaseStrategy7443 #increment7444 raises NotImplementedError7445 #read7446 raises NotImplementedError7447Gitlab::Ci::Reports::Security::Link7448 #initialize7449 when all params are given7450 initializes an instance7451 #to_hash7452 returns expected hash7453RuboCop::Cop::Scalability::IdempotentWorker7454 adds an offense when not defining idempotent method7455 adds an offense when not defining idempotent method7456Gitlab::Database::PostgresqlDatabaseTasks::LoadSchemaVersionsMixin7457 calls SchemaMigrations load_all7458Gitlab::Ci::Config::Yaml::Tags::Resolver7459 #to_hash7460 when referencing deeply nested arrays7461 when templates are defined before the job7462 behaves like expands references7463 expands the references7464 when templates are defined after the job7465 behaves like expands references7466 expands the references7467SystemCheck::IncomingEmail::ImapAuthenticationCheck7468 #load_config7469 returns no mailbox configurations with mailroom default configuration7470 is expected to be nil7471 returns an array of mailbox configurations with mailroom configured7472 is expected to eq [{:host=>"gitlab.example.com", :port=>143}]7473Types::QueryComplexityType7474 is expected to have graphql fields :limit and :score7475 works when executed7476API::Entities::Ci::JobRequest::Port7477 returns the port number7478 returns if the port protocol7479 returns the port name7480Gitlab::WithRequestStore7481 #with_request_store7482 starts a request store and yields control7483 only starts a request store once when nested7484API::Entities::BulkImports::EntityFailure7485 has the correct attributes7486Gitlab::Database::Migrations::BaseBackgroundRunner7487 subclassing7488 requires that jobs_by_migration_name be implemented7489 requires that run_job be implemented7490Types::Ci::TemplateType7491 is expected to eq "CiTemplate"7492 exposes the expected fields7493Gitlab::Database::AsyncIndexes7494 .create_pending_indexes!7495 takes 2 pending indexes and creates those7496help/show7497 Markdown rendering7498 renders Markdown7499Ci::Runners::UnregisterRunnerService#execute7500 destroys runner7501Gitlab::GithubImport::ImportNoteWorker7502 #import7503 imports a note7504processing of SAMLResponse in dependencies7505 can extract AuthnContextClassRef from SAMLResponse param7506Types::DeploymentTierEnum7507 includes a value for each supported environment tier7508NamespaceCiCdSetting7509 associations7510 is expected to belong to namespace required: false inverse_of => ci_cd_settings7511ProtectedBranch::MergeAccessLevel7512 is expected to validate that :access_level is either ‹40›, ‹30›, or ‹0›7513Gitlab::GithubImport::Importer::Events::Reopened7514 creates expected event and state event7515Knapsack report was generated. Preview:7516{7517 "spec/services/notification_service_spec.rb": 901.4455690750001,7518 "spec/models/event_spec.rb": 59.11634129000049,7519 "spec/lib/banzai/filter/repository_link_filter_spec.rb": 68.49483916400004,7520 "spec/lib/gitlab/ci/config_spec.rb": 58.92388174299958,7521 "spec/models/integrations/microsoft_teams_spec.rb": 65.89014297500034,7522 "spec/services/packages/debian/generate_distribution_service_spec.rb": 53.91505824599972,7523 "spec/services/merge_requests/merge_to_ref_service_spec.rb": 46.46056023100027,7524 "spec/lib/gitlab/database/consistency_checker_spec.rb": 50.72952760800035,7525 "spec/lib/gitlab/bare_repository_import/importer_spec.rb": 33.68098565499986,7526 "spec/models/integrations/hangouts_chat_spec.rb": 42.22656013800042,7527 "spec/lib/gitlab/ci/status/build/failed_spec.rb": 21.157755829000052,7528 "spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb": 24.652686288999575,7529 "spec/lib/gitlab/url_sanitizer_spec.rb": 7.236921591000282,7530 "spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb": 24.00485941700026,7531 "spec/services/push_event_payload_service_spec.rb": 16.6378546320002,7532 "spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb": 22.62134828299986,7533 "spec/models/list_spec.rb": 16.288354864000212,7534 "spec/models/operations/feature_flag_spec.rb": 15.98446260000037,7535 "spec/serializers/environment_serializer_spec.rb": 18.39329107100002,7536 "spec/services/alert_management/create_alert_issue_service_spec.rb": 19.581661736999195,7537 "spec/lib/gitlab/import_export/project/object_builder_spec.rb": 26.095634946000246,7538 "spec/support_specs/helpers/stub_feature_flags_spec.rb": 6.23730145799982,7539 "spec/models/wiki_page/meta_spec.rb": 9.846468740000091,7540 "spec/workers/process_commit_worker_spec.rb": 22.434213350999926,7541 "spec/models/concerns/cache_markdown_field_spec.rb": 3.7263195180003095,7542 "spec/finders/members_finder_spec.rb": 15.878787042000113,7543 "spec/models/dev_ops_report/metric_spec.rb": 4.204109968999546,7544 "spec/lib/gitlab/json_spec.rb": 2.961016053000094,7545 "spec/lib/gitlab/redis/sidekiq_status_spec.rb": 2.033242208000047,7546 "spec/lib/gitlab/ci/variables/builder_spec.rb": 5.81397663000007,7547 "spec/services/test_hooks/project_service_spec.rb": 6.933509381000476,7548 "spec/helpers/todos_helper_spec.rb": 8.567895447999945,7549 "spec/lib/gitlab/ci/badge/release/metadata_spec.rb": 10.784713443000328,7550 "spec/helpers/members_helper_spec.rb": 7.207775127000787,7551 "spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb": 10.133693735000634,7552 "spec/lib/gitlab/quick_actions/extractor_spec.rb": 1.8323547730005885,7553 "spec/policies/design_management/design_policy_spec.rb": 3.458809980999831,7554 "spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb": 13.423615345999679,7555 "spec/services/merge_requests/request_attention_service_spec.rb": 9.048970609000207,7556 "spec/lib/gitlab/exclusive_lease_spec.rb": 3.2771579950003797,7557 "spec/services/issues/export_csv_service_spec.rb": 4.253541193000274,7558 "spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb": 12.058007665999867,7559 "spec/services/snippets/bulk_destroy_service_spec.rb": 14.852080718999787,7560 "spec/services/import/github_service_spec.rb": 6.82206292400042,7561 "spec/lib/gitlab/zentao/client_spec.rb": 6.576247904999946,7562 "spec/serializers/ci/dag_pipeline_entity_spec.rb": 9.083302993999496,7563 "spec/services/merge_requests/resolved_discussion_notification_service_spec.rb": 7.955710764000287,7564 "spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb": 1.208634659999916,7565 "spec/finders/clusters/agents_finder_spec.rb": 5.929133665000336,7566 "spec/lib/gitlab/template_parser/ast_spec.rb": 3.258049186999415,7567 "spec/lib/banzai/filter/references/design_reference_filter_spec.rb": 4.36570514899995,7568 "spec/lib/gitaly/server_spec.rb": 1.3222264759997415,7569 "spec/models/ci/variable_spec.rb": 4.7879945760005285,7570 "spec/services/draft_notes/create_service_spec.rb": 10.934126916000423,7571 "spec/workers/repository_check/batch_worker_spec.rb": 6.348682592999467,7572 "spec/models/concerns/require_email_verification_spec.rb": 1.1776308340004107,7573 "spec/services/issues/reorder_service_spec.rb": 5.185301136999442,7574 "spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb": 3.5535102200001347,7575 "spec/lib/api/support/git_access_actor_spec.rb": 2.0688064529995245,7576 "spec/models/users/in_product_marketing_email_spec.rb": 3.1565949989999353,7577 "spec/lib/gitlab/import_export/base/relation_factory_spec.rb": 5.733790680000311,7578 "spec/views/notify/pipeline_failed_email.html.haml_spec.rb": 8.85631923299934,7579 "spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb": 1.7062450489993353,7580 "spec/services/groups/update_shared_runners_service_spec.rb": 7.251244191000296,7581 "spec/lib/gitlab/gitaly_client/object_pool_service_spec.rb": 11.905505654999615,7582 "spec/services/packages/conan/search_service_spec.rb": 8.025740625000253,7583 "spec/lib/gitlab/utils/override_spec.rb": 1.6130157500001587,7584 "spec/services/boards/lists/generate_service_spec.rb": 4.311008615999526,7585 "spec/models/email_spec.rb": 2.703323894999812,7586 "spec/services/clusters/agents/create_service_spec.rb": 5.409342599999945,7587 "spec/lib/gitlab/deploy_key_access_spec.rb": 5.5024296870005855,7588 "spec/lib/gitlab/ci/config/entry/key_spec.rb": 1.4182130649996907,7589 "spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb": 4.945110227000441,7590 "spec/lib/gitlab/ci/pipeline/chain/create_deployments_spec.rb": 5.337499229000059,7591 "spec/lib/gitlab/ci/config/external/file/local_spec.rb": 1.705241828999533,7592 "spec/models/tree_spec.rb": 5.5709279900002,7593 "spec/services/discussions/capture_diff_note_position_service_spec.rb": 5.436115085999518,7594 "spec/lib/gitlab/omniauth_initializer_spec.rb": 1.1587312860001475,7595 "spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb": 4.289075468999727,7596 "spec/services/projects/move_lfs_objects_projects_service_spec.rb": 4.025207581000359,7597 "spec/finders/packages/go/package_finder_spec.rb": 2.1605409220001093,7598 "spec/lib/gitlab/git/user_spec.rb": 0.8287208269994153,7599 "spec/lib/gitlab/ci/reports/security/scanner_spec.rb": 1.6425847459995566,7600 "spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb": 1.4435597710007642,7601 "spec/models/users_statistics_spec.rb": 3.9071629059999395,7602 "spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb": 4.187216811000326,7603 "spec/models/group_import_state_spec.rb": 1.6308263880000595,7604 "spec/models/issue_assignee_spec.rb": 3.6996567710002637,7605 "spec/serializers/release_serializer_spec.rb": 4.900601043000279,7606 "spec/models/packages/build_info_spec.rb": 2.6149633060003907,7607 "spec/workers/reactive_caching_worker_spec.rb": 2.4360387679998894,7608 "spec/lib/gitlab/content_security_policy/config_loader_spec.rb": 0.8932994289998533,7609 "spec/lib/gitlab/diff/parser_spec.rb": 1.1751255049994143,7610 "spec/services/snippets/count_service_spec.rb": 1.9413141390004967,7611 "spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb": 2.10404034900057,7612 "spec/views/shared/deploy_tokens/_form.html.haml_spec.rb": 3.4783459489999586,7613 "spec/services/milestones/issues_count_service_spec.rb": 4.528807238999434,7614 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb": 1.4590387289999853,7615 "spec/graphql/resolvers/paginated_tree_resolver_spec.rb": 1.5015838439994695,7616 "spec/services/protected_branches/create_service_spec.rb": 3.3810367910000423,7617 "spec/graphql/mutations/groups/update_spec.rb": 2.9374266759996317,7618 "spec/lib/gitlab/metrics/subscribers/external_http_spec.rb": 1.0670583680002892,7619 "spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb": 3.4951307070004987,7620 "spec/lib/gitlab/git/conflict/parser_spec.rb": 1.1224784509995516,7621 "spec/components/pajamas/radio_component_spec.rb": 0.6396634510001604,7622 "spec/rubocop/formatter/todo_formatter_spec.rb": 0.620652983000582,7623 "spec/lib/omni_auth/strategies/jwt_spec.rb": 1.0137764049995894,7624 "spec/helpers/merge_requests_helper_spec.rb": 4.920583340000121,7625 "spec/policies/custom_emoji_policy_spec.rb": 3.65285886699985,7626 "spec/helpers/environments_helper_spec.rb": 2.457343385999593,7627 "spec/services/git/wiki_push_service/change_spec.rb": 1.2397358360003636,7628 "spec/lib/gitlab/email/message/in_product_marketing_spec.rb": 0.557181471000149,7629 "spec/lib/gitlab/changelog/release_spec.rb": 0.9592087410001113,7630 "spec/lib/gitlab/safe_request_loader_spec.rb": 0.907109648000187,7631 "spec/services/packages/mark_package_for_destruction_service_spec.rb": 1.3976472559998,7632 "spec/tasks/gitlab/setup_rake_spec.rb": 3.0734685299994453,7633 "spec/lib/api/helpers/pagination_strategies_spec.rb": 0.8769908009999199,7634 "spec/models/packages/cleanup/policy_spec.rb": 0.8885549300002822,7635 "spec/services/boards/issues/create_service_spec.rb": 2.9668108020005093,7636 "spec/lib/gitlab/kubernetes/service_account_token_spec.rb": 0.6852900750000117,7637 "spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb": 0.8822984810003618,7638 "spec/lib/gitlab/jira_import/labels_importer_spec.rb": 1.3472089529996083,7639 "spec/models/legacy_diff_discussion_spec.rb": 3.701435780999418,7640 "spec/models/protected_branch/push_access_level_spec.rb": 2.404781942000227,7641 "spec/models/jira_connect_installation_spec.rb": 2.445159656999749,7642 "spec/lib/sidebars/projects/menus/monitor_menu_spec.rb": 1.9184626619999108,7643 "spec/finders/ci/commit_statuses_finder_spec.rb": 3.1911720349999086,7644 "spec/lib/gitlab/git/keep_around_spec.rb": 4.0511376169997675,7645 "spec/lib/gitlab/git/remote_repository_spec.rb": 1.0165858439995645,7646 "spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb": 0.5680303989993263,7647 "spec/rubocop/cop/gitlab/event_store_subscriber_spec.rb": 0.8782126610003615,7648 "spec/graphql/mutations/customer_relations/organizations/update_spec.rb": 1.420853184000407,7649 "spec/graphql/resolvers/ci/template_resolver_spec.rb": 1.6531318150000516,7650 "spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb": 2.3551526189994547,7651 "spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb": 1.2562915250000515,7652 "spec/models/system_note_metadata_spec.rb": 0.6466536689995337,7653 "spec/finders/merge_request/metrics_finder_spec.rb": 2.1842116299994814,7654 "spec/lib/gitlab/phabricator_import/project_creator_spec.rb": 2.181654339000488,7655 "spec/services/branches/create_service_spec.rb": 0.8735225909995279,7656 "spec/models/concerns/has_user_type_spec.rb": 1.736223594999501,7657 "spec/lib/gitlab/github_import/representation/user_spec.rb": 0.335338598000817,7658 "spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb": 0.5019700579996424,7659 "spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb": 0.9724514999998064,7660 "spec/workers/cluster_provision_worker_spec.rb": 1.1684794660004627,7661 "spec/services/merge_requests/base_service_spec.rb": 2.7923436430000947,7662 "spec/lib/gitlab/ci/build/credentials/registry/dependency_proxy_spec.rb": 2.0629981550000593,7663 "spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb": 1.8474192310004582,7664 "spec/lib/gitlab/color_schemes_spec.rb": 0.6109266539997407,7665 "spec/lib/gitlab/kubernetes/rollout_instances_spec.rb": 0.4193412279992117,7666 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 1.6195270600001095,7667 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 0.43641631599984976,7668 "spec/lib/gitlab/query_limiting/middleware_spec.rb": 0.5297454449992074,7669 "spec/lib/gitlab/setup_helper/praefect_spec.rb": 0.5013832969998475,7670 "spec/lib/gitlab/data_builder/feature_flag_spec.rb": 2.0584304960002555,7671 "spec/lib/gitlab/graphql/generic_tracing_spec.rb": 0.4015586599998642,7672 "spec/workers/personal_access_tokens/expired_notification_worker_spec.rb": 1.6022722820007402,7673 "spec/lib/gitlab/graphql/batch_key_spec.rb": 0.7655053849994147,7674 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 1.8441157909992398,7675 "spec/lib/gitlab/ci/config/entry/include/rules_spec.rb": 0.42177178700057993,7676 "spec/lib/gitlab/memory/jemalloc_spec.rb": 0.5445659229999364,7677 "spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb": 0.9950959059997331,7678 "spec/lib/error_tracking/sentry_client_spec.rb": 0.2651469980000911,7679 "spec/lib/system_check/orphans/repository_check_spec.rb": 1.052189599000485,7680 "spec/services/milestones/update_service_spec.rb": 2.4258427690001554,7681 "spec/models/uploads/fog_spec.rb": 1.7456792140001198,7682 "spec/lib/error_tracking/collector/payload_validator_spec.rb": 0.650029010000253,7683 "spec/rubocop/qa_helpers_spec.rb": 0.2964245129996925,7684 "spec/presenters/packages/composer/packages_presenter_spec.rb": 1.0804351759998099,7685 "spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 1.7169250570004806,7686 "spec/graphql/types/release_assets_type_spec.rb": 0.6088554549996843,7687 "spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb": 0.6896447239996633,7688 "spec/models/blob_viewer/license_spec.rb": 2.8629751559992656,7689 "spec/workers/hashed_storage/migrator_worker_spec.rb": 1.772386610000467,7690 "spec/workers/namespaces/onboarding_issue_created_worker_spec.rb": 0.7801545430002079,7691 "spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb": 0.43047893599941744,7692 "spec/lib/gitlab/checks/project_created_spec.rb": 1.0855209060000561,7693 "spec/services/discussions/capture_diff_note_positions_service_spec.rb": 1.8190545050001674,7694 "spec/graphql/types/snippets/blob_action_enum_spec.rb": 0.3126057320005202,7695 "spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb": 1.3874678879992643,7696 "spec/graphql/types/color_type_spec.rb": 0.30748260200016375,7697 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.685454954999841,7698 "spec/services/ci/create_pipeline_service/environment_spec.rb": 2.12597755600018,7699 "spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb": 1.8191067249999833,7700 "spec/lib/gitlab/diff/position_collection_spec.rb": 0.8997267189997729,7701 "spec/lib/gitlab_edition_spec.rb": 0.7669336549997752,7702 "spec/views/groups/_home_panel.html.haml_spec.rb": 1.2424376760000087,7703 "spec/workers/mail_scheduler/issue_due_worker_spec.rb": 1.228479578000588,7704 "spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.270742471999256,7705 "spec/lib/gitlab/import/set_async_jid_spec.rb": 1.3152309970000715,7706 "spec/rubocop/cop/gitlab/policy_rule_boolean_spec.rb": 0.2838236949992279,7707 "spec/lib/gitlab/graphql/known_operations_spec.rb": 0.8026564709998638,7708 "spec/lib/gitlab/metrics/exporter/metrics_middleware_spec.rb": 1.072801626999535,7709 "spec/services/users/saved_replies/update_service_spec.rb": 0.8958777990001181,7710 "spec/policies/group_deploy_keys_group_policy_spec.rb": 0.7559407059998193,7711 "spec/helpers/startupjs_helper_spec.rb": 0.8834933110001657,7712 "spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb": 0.7010178239997913,7713 "spec/views/projects/runners/_specific_runners.html.haml_spec.rb": 0.6456831289997353,7714 "spec/workers/wait_for_cluster_creation_worker_spec.rb": 1.0184148739999728,7715 "spec/lib/gitlab/routing_spec.rb": 0.2214903129997765,7716 "spec/services/packages/remove_tag_service_spec.rb": 1.1035870630003046,7717 "spec/services/packages/debian/find_or_create_package_service_spec.rb": 0.9125746970003092,7718 "spec/rubocop/cop/gitlab/json_spec.rb": 0.42065383800036216,7719 "spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb": 0.5107351070000732,7720 "spec/rubocop/cop/graphql/resolver_type_spec.rb": 0.2083532339993326,7721 "spec/helpers/calendar_helper_spec.rb": 0.4576233730003878,7722 "spec/services/jira_connect/sync_service_spec.rb": 1.0083581049993882,7723 "spec/models/user_mentions/snippet_user_mention_spec.rb": 0.4767122909997852,7724 "spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb": 0.5076603370007433,7725 "spec/graphql/types/ci_configuration/sast/type_spec.rb": 0.33592815800056997,7726 "spec/tooling/lib/tooling/test_map_packer_spec.rb": 0.6013644949998707,7727 "spec/services/google_cloud/enable_cloud_run_service_spec.rb": 1.2120202599999175,7728 "spec/graphql/types/packages/nuget/metadatum_type_spec.rb": 0.38398705199961114,7729 "spec/serializers/import/bitbucket_server_provider_repo_entity_spec.rb": 0.7311617699997441,7730 "spec/models/projects/project_topic_spec.rb": 0.4801496110003427,7731 "spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb": 0.3123582210000677,7732 "spec/haml_lint/linter/inline_javascript_spec.rb": 0.25597545799973886,7733 "spec/graphql/resolvers/ci/runner_status_resolver_spec.rb": 0.43667803600055777,7734 "spec/services/projects/prometheus/metrics/destroy_service_spec.rb": 0.6729045669999323,7735 "spec/models/bulk_imports/export_upload_spec.rb": 0.479740259999744,7736 "spec/serializers/diff_viewer_entity_spec.rb": 0.9684262499995384,7737 "spec/graphql/types/custom_emoji_type_spec.rb": 0.35052337700017233,7738 "spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb": 0.19182847699994454,7739 "spec/lib/rouge/formatters/html_gitlab_spec.rb": 0.36553781400016305,7740 "spec/workers/namespaces/onboarding_user_added_worker_spec.rb": 0.32339085999956296,7741 "spec/serializers/ci/lint/job_entity_spec.rb": 0.36800874399978056,7742 "spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb": 1.1678884849998212,7743 "spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb": 0.4171182879999833,7744 "spec/services/users/repair_ldap_blocked_service_spec.rb": 0.6585835679998127,7745 "spec/finders/analytics/cycle_analytics/stage_finder_spec.rb": 0.40755210899988015,7746 "spec/services/ci/process_pipeline_service_spec.rb": 0.8101171499993143,7747 "spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb": 0.2742311259999042,7748 "spec/lib/gitlab/ci/reports/security/link_spec.rb": 0.339363867999964,7749 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.5920434869995006,7750 "spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb": 0.4066729900005157,7751 "spec/lib/gitlab/ci/config/yaml/tags/resolver_spec.rb": 0.2458920989993203,7752 "spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb": 0.367550174999451,7753 "spec/graphql/types/query_complexity_type_spec.rb": 0.43586119700012205,7754 "spec/lib/api/entities/ci/job_request/port_spec.rb": 0.20463556499998958,7755 "spec/lib/gitlab/with_request_store_spec.rb": 0.19376142599958257,7756 "spec/lib/api/entities/bulk_imports/entity_failure_spec.rb": 0.25985732800018013,7757 "spec/lib/gitlab/database/migrations/base_background_runner_spec.rb": 0.4250162670005011,7758 "spec/graphql/types/ci/template_type_spec.rb": 0.279439695000292,7759 "spec/lib/gitlab/database/async_indexes_spec.rb": 0.6520685989999038,7760 "spec/views/help/show.html.haml_spec.rb": 0.37886617300046055,7761 "spec/services/ci/runners/unregister_runner_service_spec.rb": 0.3868641219996789,7762 "spec/workers/gitlab/github_import/import_note_worker_spec.rb": 0.21486279300006572,7763 "spec/dependencies/omniauth_saml_spec.rb": 0.15494374099944253,7764 "spec/graphql/types/deployment_tier_enum_spec.rb": 0.2000014850000298,7765 "spec/models/namespace_ci_cd_setting_spec.rb": 0.29429899400020076,7766 "spec/models/protected_branch/merge_access_level_spec.rb": 0.36680556400006026,7767 "spec/lib/gitlab/github_import/importer/events/reopened_spec.rb": 0.83516199699988657768}7769Knapsack global time execution for tests: 36m 02s7770Pending: (Failures listed here are expected and do not affect your suite's status)7771 1) Operations::FeatureFlag validations behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank7772 # No reason given7773 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497774 2) Operations::FeatureFlag validations behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank7775 # No reason given7776 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577777Finished in 36 minutes 6 seconds (files took 1 minute 5.11 seconds to load)77783409 examples, 0 failures, 2 pending7779RSpec exited with 0.7780No examples to retry, congrats!7782Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy7783Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy7785Uploading artifacts...7786coverage/: found 5 matching files and directories 7787crystalball/: found 2 matching files and directories 7788deprecations/: found 4 matching files and directories 7789knapsack/: found 3 matching files and directories 7790rspec/: found 8 matching files and directories 7791WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7792log/*.log: found 18 matching files and directories 7793WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673336936/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7794WARNING: Retrying... context=artifacts-uploader error=request redirected7795Uploading artifacts as "archive" to coordinator... 201 Created id=2673336936 responseStatus=201 Created token=Swv_HxZf7796Uploading artifacts...7797rspec/junit_rspec.xml: found 1 matching files and directories 7798WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673336936/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7799WARNING: Retrying... context=artifacts-uploader error=request redirected7800Uploading artifacts as "junit" to coordinator... 201 Created id=2673336936 responseStatus=201 Created token=Swv_HxZf7802Job succeeded