rspec unit pg12 12/22
Passed Started
by
@splattael
Peter Leitzen
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-2.shared-gitlab-org.runners-manager.gitlab.com/default NL4gfoBe3 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:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...18Running on runner-nl4gfobe-project-278964-concurrent-0 via runner-nl4gfobe-shared-gitlab-org-1656525655-54ec2e6e...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: 108133, done. 25remote: Counting objects: 100% (108133/108133), done. 26remote: Compressing objects: 100% (78029/78029), done. 27remote: Total 108133 (delta 41971), reused 69318 (delta 25782), pack-reused 0 28Receiving objects: 100% (108133/108133), 107.22 MiB | 32.06 MiB/s, done.29Resolving deltas: 100% (41971/41971), done.31 * [new ref] refs/pipelines/576349587 -> refs/pipelines/57634958732Checking out ab4209a5 as refs/merge-requests/91088/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 (2658553241)...44Downloading artifacts from coordinator... ok id=2658553241 responseStatus=200 OK token=pKuw_zAY45Downloading artifacts for detect-tests (2658553263)...46Downloading artifacts from coordinator... ok id=2658553263 responseStatus=200 OK token=pKuw_zAY47Downloading artifacts for retrieve-tests-metadata (2658553268)...48Downloading artifacts from coordinator... ok id=2658553268 responseStatus=200 OK token=pKuw_zAY49Downloading artifacts for setup-test-env (2658553255)...50Downloading artifacts from coordinator... ok id=2658553255 responseStatus=200 OK token=pKuw_zAY52Using docker image sha256:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...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 11 seconds.84Using decomposed database config (config/database.yml.decomposed-postgresql)85$ setup_db_user_only86CREATE ROLE87GRANT88==> 'setup_db_user_only' succeeded in 0 seconds.89$ bundle exec rake db:drop db:create db:schema:load db:migrate90Dropped database 'gitlabhq_test'91Dropped database 'gitlabhq_test_ci'92Dropped database 'gitlabhq_geo_test'93Created database 'gitlabhq_test'94Created database 'gitlabhq_test_ci'95Created database 'gitlabhq_geo_test'96==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 35 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.21.2174Using 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 13 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_12_22_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_12_22_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_12_22_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_12_22_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_12_22_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/models/merge_request_spec.rb239spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb240spec/models/ci/job_artifact_spec.rb241spec/models/clusters/applications/prometheus_spec.rb242spec/models/clusters/applications/jupyter_spec.rb243spec/services/issues/move_service_spec.rb244spec/models/milestone_spec.rb245spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb246spec/services/event_create_service_spec.rb247spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb248spec/lib/gitlab/background_migration/drop_invalid_vulnerabilities_spec.rb249spec/models/snippet_spec.rb250spec/lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url_spec.rb251spec/presenters/project_presenter_spec.rb252spec/models/members/group_member_spec.rb253spec/models/award_emoji_spec.rb254spec/services/database/consistency_check_service_spec.rb255spec/services/merge_requests/reopen_service_spec.rb256spec/services/merge_requests/close_service_spec.rb257spec/lib/gitlab/reference_extractor_spec.rb258spec/models/deploy_token_spec.rb259spec/workers/database/batched_background_migration/ci_database_worker_spec.rb260spec/helpers/gitlab_routing_helper_spec.rb261spec/services/issues/import_csv_service_spec.rb262spec/services/groups/create_service_spec.rb263spec/graphql/resolvers/board_list_issues_resolver_spec.rb264spec/serializers/environment_serializer_spec.rb265spec/models/serverless/domain_cluster_spec.rb266spec/lib/gitlab/database/batch_count_spec.rb267spec/helpers/tab_helper_spec.rb268spec/services/clusters/applications/check_upgrade_progress_service_spec.rb269spec/services/git/tag_hooks_service_spec.rb270spec/lib/gitlab/ci/variables/collection_spec.rb271spec/lib/container_registry/gitlab_api_client_spec.rb272spec/graphql/mutations/merge_requests/set_assignees_spec.rb273spec/lib/gitlab/background_migration/merge_topics_with_same_name_spec.rb274spec/lib/gitlab/auth/saml/user_spec.rb275spec/lib/gitlab/database/rename_reserved_paths_migration/v1_spec.rb276spec/lib/gitlab/ci/config/external/processor_spec.rb277spec/services/ci/after_requeue_job_service_spec.rb278spec/services/groups/import_export/export_service_spec.rb279spec/tasks/gettext_rake_spec.rb280spec/helpers/dropdowns_helper_spec.rb281spec/serializers/ci/trigger_entity_spec.rb282spec/services/container_expiration_policies/update_service_spec.rb283spec/models/alert_management/http_integration_spec.rb284spec/models/import_export_upload_spec.rb285spec/models/concerns/reactive_caching_spec.rb286spec/finders/projects/topics_finder_spec.rb287spec/lib/gitlab/regex_requires_app_spec.rb288spec/tasks/gitlab/cleanup_rake_spec.rb289spec/models/bulk_imports/entity_spec.rb290spec/tasks/gitlab/packages/events_rake_spec.rb291spec/services/namespace_settings/update_service_spec.rb292spec/graphql/mutations/namespace/package_settings/update_spec.rb293spec/finders/packages/packages_finder_spec.rb294spec/models/email_spec.rb295spec/lib/gitlab/logger_spec.rb296spec/lib/feature/definition_spec.rb297spec/models/prometheus_alert_spec.rb298spec/services/deployments/archive_in_project_service_spec.rb299spec/services/integrations/test/project_service_spec.rb300spec/services/system_notes/commit_service_spec.rb301spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb302spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb303spec/models/design_management/design_collection_spec.rb304spec/lib/gitlab/x509/certificate_spec.rb305spec/lib/gitlab/ci/config/entry/trigger_spec.rb306spec/models/badge_spec.rb307spec/models/namespace_statistics_spec.rb308spec/models/concerns/bulk_insert_safe_spec.rb309spec/lib/gitlab/middleware/multipart_spec.rb310spec/services/commits/cherry_pick_service_spec.rb311spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb312spec/lib/gitlab/ci/config/entry/default_spec.rb313spec/services/error_tracking/list_issues_service_spec.rb314spec/workers/merge_worker_spec.rb315spec/lib/gitlab/tracking/standard_context_spec.rb316spec/models/concerns/sensitive_serializable_hash_spec.rb317spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb318spec/finders/ci/jobs_finder_spec.rb319spec/lib/gitlab/github_import/parallel_scheduling_spec.rb320spec/lib/gitlab/subscription_portal_spec.rb321spec/lib/gitlab/ci/pipeline/chain/build_spec.rb322spec/lib/gitlab/ci/artifact_file_reader_spec.rb323spec/lib/gitlab/event_store/store_spec.rb324spec/lib/system_check/simple_executor_spec.rb325spec/lib/gitlab/error_tracking_spec.rb326spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb327spec/models/users_statistics_spec.rb328spec/workers/stage_update_worker_spec.rb329spec/lib/gitlab/graphql/pagination/keyset/order_info_spec.rb330spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb331spec/lib/gitlab/github_import/importer/pull_request_review_importer_spec.rb332spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb333spec/lib/gitlab/ci/parsers/security/sast_spec.rb334spec/services/task_list_toggle_service_spec.rb335spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb336spec/lib/gitlab/bullet/exclusions_spec.rb337spec/graphql/resolvers/project_packages_resolver_spec.rb338spec/models/concerns/has_environment_scope_spec.rb339spec/lib/banzai/reference_parser/project_parser_spec.rb340spec/models/integrations/slack_slash_commands_spec.rb341spec/lib/safe_zip/entry_spec.rb342spec/lib/api/helpers/authentication_spec.rb343spec/services/design_management/design_user_notes_count_service_spec.rb344spec/lib/api/entities/merge_request_changes_spec.rb345spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb346spec/workers/packages/cleanup_package_file_worker_spec.rb347spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb348spec/models/ci/unit_test_spec.rb349spec/lib/gitlab/access/branch_protection_spec.rb350spec/finders/freeze_periods_finder_spec.rb351spec/helpers/sidekiq_helper_spec.rb352spec/workers/gitlab/phabricator_import/base_worker_spec.rb353spec/lib/gitlab/gitaly_client/call_spec.rb354spec/graphql/mutations/merge_requests/set_subscription_spec.rb355spec/lib/bitbucket_server/representation/repo_spec.rb356spec/lib/gitlab/exclusive_lease_helpers_spec.rb357spec/models/bulk_import_spec.rb358spec/services/projects/hashed_storage/base_attachment_service_spec.rb359spec/lib/gitlab/ci/build/rules/rule_spec.rb360spec/config/application_spec.rb361spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb362spec/lib/gitlab/graphs/commits_spec.rb363spec/graphql/mutations/issues/set_severity_spec.rb364spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb365spec/lib/gitlab/utils/nokogiri_spec.rb366spec/lib/gitlab/template/finders/repo_template_finders_spec.rb367spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb368spec/models/uploads/fog_spec.rb369spec/models/subscription_spec.rb370spec/lib/gitlab/import/merge_request_creator_spec.rb371spec/workers/bulk_imports/relation_export_worker_spec.rb372spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb373spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb374spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb375spec/serializers/evidences/evidence_entity_spec.rb376spec/graphql/mutations/terraform/state/lock_spec.rb377spec/services/keys/expiry_notification_service_spec.rb378spec/uploaders/ci/secure_file_uploader_spec.rb379spec/services/tags/destroy_service_spec.rb380spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb381spec/services/merge_requests/mergeability/check_base_service_spec.rb382spec/services/users/dismiss_group_callout_service_spec.rb383spec/workers/integrations/irker_worker_spec.rb384spec/services/incident_management/pager_duty/process_webhook_service_spec.rb385spec/lib/gitlab/github_import/importer/repository_importer_spec.rb386spec/lib/gitlab/health_checks/redis/queues_check_spec.rb387spec/lib/gitlab/prometheus/internal_spec.rb388spec/workers/namespaces/schedule_aggregation_worker_spec.rb389spec/models/projects/triggered_hooks_spec.rb390spec/lib/gitlab/gitaly_client/remote_service_spec.rb391spec/graphql/mutations/terraform/state/delete_spec.rb392spec/helpers/version_check_helper_spec.rb393spec/models/experiment_user_spec.rb394spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb395spec/models/issuable_severity_spec.rb396spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb397spec/services/projects/fetch_statistics_increment_service_spec.rb398spec/lib/gitlab/ci/reports/test_report_summary_spec.rb399spec/lib/bitbucket/page_spec.rb400spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb401spec/graphql/resolvers/concerns/resolves_project_spec.rb402spec/models/performance_monitoring/prometheus_panel_spec.rb403spec/models/concerns/delete_with_limit_spec.rb404spec/policies/clusters/agent_policy_spec.rb405spec/views/layouts/profile.html.haml_spec.rb406spec/lib/api/every_api_endpoint_spec.rb407spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb408spec/services/packages/conan/create_package_service_spec.rb409spec/services/ci/create_pipeline_service/merge_requests_spec.rb410spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb411spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb412spec/rubocop/cop/migration/add_column_with_default_spec.rb413spec/lib/gitlab/lets_encrypt_spec.rb414spec/routing/environments_spec.rb415spec/views/profiles/keys/_key.html.haml_spec.rb416spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb417spec/graphql/mutations/branches/create_spec.rb418spec/tooling/danger/product_intelligence_spec.rb419spec/lib/gitlab/github_import/label_finder_spec.rb420spec/lib/gitlab/gitlab_import/importer_spec.rb421spec/scripts/failed_tests_spec.rb422spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb423spec/lib/gitlab/lazy_spec.rb424spec/lib/peek/views/active_record_spec.rb425spec/lib/gitlab/session_spec.rb426spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb427spec/initializers/00_connection_logger_spec.rb428spec/lib/gitlab/console_spec.rb429spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb430spec/lib/gitlab/graphql/representation/tree_entry_spec.rb431spec/lib/bulk_imports/projects/pipelines/repository_pipeline_spec.rb432spec/models/blob_viewer/changelog_spec.rb433spec/lib/gitlab/ci/templates/MATLAB_spec.rb434spec/lib/gitlab/cluster/lifecycle_events_spec.rb435spec/views/groups/_home_panel.html.haml_spec.rb436spec/rubocop/cop/migration/add_reference_spec.rb437spec/lib/peek/views/rugged_spec.rb438spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb439spec/graphql/types/timelog_type_spec.rb440spec/lib/peek/views/memory_spec.rb441spec/workers/namespaces/onboarding_issue_created_worker_spec.rb442spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb443spec/services/base_count_service_spec.rb444spec/models/users/callout_spec.rb445spec/workers/packages/rubygems/extraction_worker_spec.rb446spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb447spec/lib/api/base_spec.rb448spec/graphql/types/member_interface_spec.rb449spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb450spec/lib/gitlab/asciidoc/include_processor_spec.rb451spec/lib/gitlab/ci/ansi2json/parser_spec.rb452spec/graphql/types/customer_relations/contact_type_spec.rb453spec/validators/import/gitlab_projects/remote_file_validator_spec.rb454spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb455spec/lib/gitlab/metrics/rails_slis_spec.rb456spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb457spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb458spec/graphql/types/notes/note_type_spec.rb459spec/lib/microsoft_teams/notifier_spec.rb460spec/lib/csv_builders/stream_spec.rb461spec/lib/gitlab/incident_management/pager_duty/incident_issue_description_spec.rb462spec/workers/update_project_statistics_worker_spec.rb463spec/views/layouts/nav/sidebar/_profile.html.haml_spec.rb464spec/lib/gitlab/graphql/pagination/connections_spec.rb465spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb466spec/graphql/resolvers/concerns/resolves_ids_spec.rb467spec/lib/gitlab/metrics/subscribers/action_view_spec.rb468spec/lib/api/helpers/common_helpers_spec.rb469spec/lib/bulk_imports/projects/stage_spec.rb470spec/lib/api/entities/ci/job_artifact_file_spec.rb471spec/lib/gitlab/error_tracking/processor/sanitize_error_message_processor_spec.rb472spec/initializers/cookies_serializer_spec.rb473spec/workers/schedule_migrate_external_diffs_worker_spec.rb474spec/services/bulk_imports/get_importable_data_service_spec.rb475spec/serializers/codequality_reports_comparer_serializer_spec.rb476spec/serializers/accessibility_reports_comparer_serializer_spec.rb477spec/graphql/types/metadata/kas_type_spec.rb478spec/models/concerns/database_reflection_spec.rb479spec/lib/gitlab/hashed_path_spec.rb480spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb481spec/graphql/types/container_respository_tags_sort_enum_spec.rb482spec/models/blob_viewer/podspec_spec.rb483spec/lib/gitlab/metrics/dashboard/validator/custom_formats_spec.rb484spec/lib/gitlab/auth/saml/config_spec.rb485spec/graphql/types/ci/job_artifact_file_type_enum_spec.rb486spec/lib/api/entities/projects/repository_storage_move_spec.rb487spec/helpers/enable_search_settings_helper_spec.rb488spec/graphql/types/ci/test_case_status_enum_spec.rb489spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb490spec/lib/api/entities/nuget/dependency_spec.rb491spec/graphql/types/packages/pypi/metadatum_type_spec.rb492spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb493spec/rubocop/cop/include_sidekiq_worker_spec.rb494spec/rubocop/cop/gitlab/union_spec.rb495spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb496Filter specs:497Running specs:498Running all node tests without filter499spec/models/merge_request_spec.rb500spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb501spec/models/ci/job_artifact_spec.rb502spec/models/clusters/applications/prometheus_spec.rb503spec/models/clusters/applications/jupyter_spec.rb504spec/services/issues/move_service_spec.rb505spec/models/milestone_spec.rb506spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb507spec/services/event_create_service_spec.rb508spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb509spec/lib/gitlab/background_migration/drop_invalid_vulnerabilities_spec.rb510spec/models/snippet_spec.rb511spec/lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url_spec.rb512spec/presenters/project_presenter_spec.rb513spec/models/members/group_member_spec.rb514spec/models/award_emoji_spec.rb515spec/services/database/consistency_check_service_spec.rb516spec/services/merge_requests/reopen_service_spec.rb517spec/services/merge_requests/close_service_spec.rb518spec/lib/gitlab/reference_extractor_spec.rb519spec/models/deploy_token_spec.rb520spec/workers/database/batched_background_migration/ci_database_worker_spec.rb521spec/helpers/gitlab_routing_helper_spec.rb522spec/services/issues/import_csv_service_spec.rb523spec/services/groups/create_service_spec.rb524spec/graphql/resolvers/board_list_issues_resolver_spec.rb525spec/serializers/environment_serializer_spec.rb526spec/models/serverless/domain_cluster_spec.rb527spec/lib/gitlab/database/batch_count_spec.rb528spec/helpers/tab_helper_spec.rb529spec/services/clusters/applications/check_upgrade_progress_service_spec.rb530spec/services/git/tag_hooks_service_spec.rb531spec/lib/gitlab/ci/variables/collection_spec.rb532spec/lib/container_registry/gitlab_api_client_spec.rb533spec/graphql/mutations/merge_requests/set_assignees_spec.rb534spec/lib/gitlab/background_migration/merge_topics_with_same_name_spec.rb535spec/lib/gitlab/auth/saml/user_spec.rb536spec/lib/gitlab/database/rename_reserved_paths_migration/v1_spec.rb537spec/lib/gitlab/ci/config/external/processor_spec.rb538spec/services/ci/after_requeue_job_service_spec.rb539spec/services/groups/import_export/export_service_spec.rb540spec/tasks/gettext_rake_spec.rb541spec/helpers/dropdowns_helper_spec.rb542spec/serializers/ci/trigger_entity_spec.rb543spec/services/container_expiration_policies/update_service_spec.rb544spec/models/alert_management/http_integration_spec.rb545spec/models/import_export_upload_spec.rb546spec/models/concerns/reactive_caching_spec.rb547spec/finders/projects/topics_finder_spec.rb548spec/lib/gitlab/regex_requires_app_spec.rb549spec/tasks/gitlab/cleanup_rake_spec.rb550spec/models/bulk_imports/entity_spec.rb551spec/tasks/gitlab/packages/events_rake_spec.rb552spec/services/namespace_settings/update_service_spec.rb553spec/graphql/mutations/namespace/package_settings/update_spec.rb554spec/finders/packages/packages_finder_spec.rb555spec/models/email_spec.rb556spec/lib/gitlab/logger_spec.rb557spec/lib/feature/definition_spec.rb558spec/models/prometheus_alert_spec.rb559spec/services/deployments/archive_in_project_service_spec.rb560spec/services/integrations/test/project_service_spec.rb561spec/services/system_notes/commit_service_spec.rb562spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb563spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb564spec/models/design_management/design_collection_spec.rb565spec/lib/gitlab/x509/certificate_spec.rb566spec/lib/gitlab/ci/config/entry/trigger_spec.rb567spec/models/badge_spec.rb568spec/models/namespace_statistics_spec.rb569spec/models/concerns/bulk_insert_safe_spec.rb570spec/lib/gitlab/middleware/multipart_spec.rb571spec/services/commits/cherry_pick_service_spec.rb572spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb573spec/lib/gitlab/ci/config/entry/default_spec.rb574spec/services/error_tracking/list_issues_service_spec.rb575spec/workers/merge_worker_spec.rb576spec/lib/gitlab/tracking/standard_context_spec.rb577spec/models/concerns/sensitive_serializable_hash_spec.rb578spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb579spec/finders/ci/jobs_finder_spec.rb580spec/lib/gitlab/github_import/parallel_scheduling_spec.rb581spec/lib/gitlab/subscription_portal_spec.rb582spec/lib/gitlab/ci/pipeline/chain/build_spec.rb583spec/lib/gitlab/ci/artifact_file_reader_spec.rb584spec/lib/gitlab/event_store/store_spec.rb585spec/lib/system_check/simple_executor_spec.rb586spec/lib/gitlab/error_tracking_spec.rb587spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb588spec/models/users_statistics_spec.rb589spec/workers/stage_update_worker_spec.rb590spec/lib/gitlab/graphql/pagination/keyset/order_info_spec.rb591spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb592spec/lib/gitlab/github_import/importer/pull_request_review_importer_spec.rb593spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb594spec/lib/gitlab/ci/parsers/security/sast_spec.rb595spec/services/task_list_toggle_service_spec.rb596spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb597spec/lib/gitlab/bullet/exclusions_spec.rb598spec/graphql/resolvers/project_packages_resolver_spec.rb599spec/models/concerns/has_environment_scope_spec.rb600spec/lib/banzai/reference_parser/project_parser_spec.rb601spec/models/integrations/slack_slash_commands_spec.rb602spec/lib/safe_zip/entry_spec.rb603spec/lib/api/helpers/authentication_spec.rb604spec/services/design_management/design_user_notes_count_service_spec.rb605spec/lib/api/entities/merge_request_changes_spec.rb606spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb607spec/workers/packages/cleanup_package_file_worker_spec.rb608spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb609spec/models/ci/unit_test_spec.rb610spec/lib/gitlab/access/branch_protection_spec.rb611spec/finders/freeze_periods_finder_spec.rb612spec/helpers/sidekiq_helper_spec.rb613spec/workers/gitlab/phabricator_import/base_worker_spec.rb614spec/lib/gitlab/gitaly_client/call_spec.rb615spec/graphql/mutations/merge_requests/set_subscription_spec.rb616spec/lib/bitbucket_server/representation/repo_spec.rb617spec/lib/gitlab/exclusive_lease_helpers_spec.rb618spec/models/bulk_import_spec.rb619spec/services/projects/hashed_storage/base_attachment_service_spec.rb620spec/lib/gitlab/ci/build/rules/rule_spec.rb621spec/config/application_spec.rb622spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb623spec/lib/gitlab/graphs/commits_spec.rb624spec/graphql/mutations/issues/set_severity_spec.rb625spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb626spec/lib/gitlab/utils/nokogiri_spec.rb627spec/lib/gitlab/template/finders/repo_template_finders_spec.rb628spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb629spec/models/uploads/fog_spec.rb630spec/models/subscription_spec.rb631spec/lib/gitlab/import/merge_request_creator_spec.rb632spec/workers/bulk_imports/relation_export_worker_spec.rb633spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb634spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb635spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb636spec/serializers/evidences/evidence_entity_spec.rb637spec/graphql/mutations/terraform/state/lock_spec.rb638spec/services/keys/expiry_notification_service_spec.rb639spec/uploaders/ci/secure_file_uploader_spec.rb640spec/services/tags/destroy_service_spec.rb641spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb642spec/services/merge_requests/mergeability/check_base_service_spec.rb643spec/services/users/dismiss_group_callout_service_spec.rb644spec/workers/integrations/irker_worker_spec.rb645spec/services/incident_management/pager_duty/process_webhook_service_spec.rb646spec/lib/gitlab/github_import/importer/repository_importer_spec.rb647spec/lib/gitlab/health_checks/redis/queues_check_spec.rb648spec/lib/gitlab/prometheus/internal_spec.rb649spec/workers/namespaces/schedule_aggregation_worker_spec.rb650spec/models/projects/triggered_hooks_spec.rb651spec/lib/gitlab/gitaly_client/remote_service_spec.rb652spec/graphql/mutations/terraform/state/delete_spec.rb653spec/helpers/version_check_helper_spec.rb654spec/models/experiment_user_spec.rb655spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb656spec/models/issuable_severity_spec.rb657spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb658spec/services/projects/fetch_statistics_increment_service_spec.rb659spec/lib/gitlab/ci/reports/test_report_summary_spec.rb660spec/lib/bitbucket/page_spec.rb661spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb662spec/graphql/resolvers/concerns/resolves_project_spec.rb663spec/models/performance_monitoring/prometheus_panel_spec.rb664spec/models/concerns/delete_with_limit_spec.rb665spec/policies/clusters/agent_policy_spec.rb666spec/views/layouts/profile.html.haml_spec.rb667spec/lib/api/every_api_endpoint_spec.rb668spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb669spec/services/packages/conan/create_package_service_spec.rb670spec/services/ci/create_pipeline_service/merge_requests_spec.rb671spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb672spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb673spec/rubocop/cop/migration/add_column_with_default_spec.rb674spec/lib/gitlab/lets_encrypt_spec.rb675spec/routing/environments_spec.rb676spec/views/profiles/keys/_key.html.haml_spec.rb677spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb678spec/graphql/mutations/branches/create_spec.rb679spec/tooling/danger/product_intelligence_spec.rb680spec/lib/gitlab/github_import/label_finder_spec.rb681spec/lib/gitlab/gitlab_import/importer_spec.rb682spec/scripts/failed_tests_spec.rb683spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb684spec/lib/gitlab/lazy_spec.rb685spec/lib/peek/views/active_record_spec.rb686spec/lib/gitlab/session_spec.rb687spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb688spec/initializers/00_connection_logger_spec.rb689spec/lib/gitlab/console_spec.rb690spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb691spec/lib/gitlab/graphql/representation/tree_entry_spec.rb692spec/lib/bulk_imports/projects/pipelines/repository_pipeline_spec.rb693spec/models/blob_viewer/changelog_spec.rb694spec/lib/gitlab/ci/templates/MATLAB_spec.rb695spec/lib/gitlab/cluster/lifecycle_events_spec.rb696spec/views/groups/_home_panel.html.haml_spec.rb697spec/rubocop/cop/migration/add_reference_spec.rb698spec/lib/peek/views/rugged_spec.rb699spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb700spec/graphql/types/timelog_type_spec.rb701spec/lib/peek/views/memory_spec.rb702spec/workers/namespaces/onboarding_issue_created_worker_spec.rb703spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb704spec/services/base_count_service_spec.rb705spec/models/users/callout_spec.rb706spec/workers/packages/rubygems/extraction_worker_spec.rb707spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb708spec/lib/api/base_spec.rb709spec/graphql/types/member_interface_spec.rb710spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb711spec/lib/gitlab/asciidoc/include_processor_spec.rb712spec/lib/gitlab/ci/ansi2json/parser_spec.rb713spec/graphql/types/customer_relations/contact_type_spec.rb714spec/validators/import/gitlab_projects/remote_file_validator_spec.rbKnapsack report generator started!715DEPRECATION 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 call716/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 here717 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)718WARNING: Shared example group 'returning a success' has been previously defined at:719 /builds/gitlab-org/gitlab/spec/services/container_expiration_policies/update_service_spec.rb:17720...and you are now defining it at:721 /builds/gitlab-org/gitlab/spec/graphql/mutations/namespace/package_settings/update_spec.rb:18722The new definition will overwrite the original one.723Run options: exclude {:quarantine=>true, :level=>"migration"}724==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.044249463 seconds...725Test environment set up in 0.732323001 seconds726MergeRequest727 associations728 is expected to belong to target_project class_name => Project required: false729 is expected to belong to source_project class_name => Project required: false730 is expected to belong to merge_user class_name => User required: false731 is expected to have many assignees through merge_request_assignees732 is expected to have many reviewers through merge_request_reviewers733 is expected to have many merge_request_diffs734 is expected to have many user_mentions class_name => MergeRequestUserMention735 is expected to belong to milestone required: false736 is expected to belong to iteration required: false737 is expected to have many resource_milestone_events738 is expected to have many resource_state_events739 is expected to have many draft_notes740 is expected to have many reviews inverse_of => merge_request741 is expected to have one cleanup_schedule inverse_of => merge_request742 for forks743 does not load another project due to inverse relationship744 finds the associated merge request745 .from_and_to_forks746 returns only MRs from and to forks (with no internal MRs)747 .order_merged_at_asc748 returns MRs ordered by merged_at ascending749 .order_merged_at_desc750 returns MRs ordered by merged_at descending751 .order_closed_at_asc752 returns MRs ordered by closed_at ascending753 .order_closed_at_desc754 returns MRs ordered by closed_at descending755 .with_jira_issue_keys756 is expected to contain exactly #<MergeRequest id:15 namespace1/project1!1> and #<MergeRequest id:16 namespace1/project1!2>757 is expected not to include #<MergeRequest id:17 namespace1/project1!3>758 scopes759 .review_requested760 returns MRs that have any review requests761 .no_review_requested762 returns MRs that have no review requests763 .review_requested_to764 returns MRs that the user has been requested to review765 .no_review_requested_to766 returns MRs that the user has not been requested to review767 .attention768 returns MRs that have any attention requests769 .drafts770 returns MRs where draft == true771 #squash?772 disabled in database773 is expected to be falsy774 enabled in database775 is expected to be truthy776 #default_squash_commit_message777 returns the merge request title778 uses template from target project779 modules780 is expected to includes the Issuable module781 is expected to includes the Referable module782 is expected to includes the Sortable module783 is expected to includes the Taskable module784 is expected to includes the MilestoneEventable module785 is expected to includes the StateEventable module786 behaves like AtomicInternalId787 .has_internal_id788 Module inclusion789 is expected to includes the AtomicInternalId module790 Validation791 when presence validation is required792 when creating an object793 raises an error if the internal id is blank794 when updating an object795 raises an error if the internal id is blank796 when presence validation is not required797 when creating an object798 does not raise an error if the internal id is blank (PENDING: No reason given)799 when updating an object800 does not raise an error if the internal id is blank (PENDING: No reason given)801 Creating an instance802 saves a new instance properly803 internal id generation804 calls InternalId.generate_next and sets internal id attribute805 does not overwrite an existing internal id806 when the instance has an internal ID set807 calls InternalId.update_last_value and sets the `last_value` to that of the instance808 unsetting the instance internal id on rollback809 when the internal id has been changed810 when the internal id is automatically set811 clears it on the instance812 when the internal id is manually set813 does not clear it on the instance814 when the internal id has not been changed815 preserves the value on the instance816 supply of internal ids817 provides a persistent supply of IID values, sensitive to the current state818 #reset_scope_internal_id_attribute819 rewinds the allocated IID820 allocates the same IID821 validation822 is expected to validate that :target_branch cannot be empty/falsy823 is expected to validate that :source_branch cannot be empty/falsy824 Validation of merge user with Merge When Pipeline Succeeds825 allows user to be nil when the feature is disabled826 is invalid without merge user827 is valid with merge user828 for branch829 branch_name: "foo", valid: true830 validates source_branch831 validates target_branch832 branch_name: "foo:bar", valid: false833 validates source_branch834 validates target_branch835 branch_name: "+foo:bar", valid: false836 validates source_branch837 validates target_branch838 branch_name: "foo bar", valid: false839 validates source_branch840 validates target_branch841 branch_name: "-foo", valid: false842 validates source_branch843 validates target_branch844 branch_name: "HEAD", valid: true845 validates source_branch846 validates target_branch847 branch_name: "refs/heads/master", valid: true848 validates source_branch849 validates target_branch850 for forks851 allows merge requests for sibling-forks852 callbacks853 #ensure_merge_request_metrics854 creates metrics after saving855 does not duplicate metrics for a merge request856 does not create duplicated metrics records when MR is concurrently updated857 syncs the `target_project_id` to the metrics record858 #set_draft_status859 MR is a draft860 sets draft to true861 MR is not a draft862 sets draft to true863 respond to864 is expected to respond to #unchecked?865 is expected to respond to #checking?866 is expected to respond to #can_be_merged?867 is expected to respond to #cannot_be_merged?868 is expected to respond to #merge_params869 is expected to respond to #merge_when_pipeline_succeeds870 .by_commit_sha871 with sha contained in latest merge request diff872 returns merge requests873 with sha contained not in latest merge request diff874 returns empty requests875 with sha not contained in876 returns empty result877 .by_merge_commit_sha878 returns merge requests that match the given merge commit879 .by_squash_commit_sha880 returns merge requests that match the given squash commit881 .by_merge_or_squash_commit_sha882 returns merge requests that match the given squash and merge commits883 .join_metrics884 when a no target_project_id is available885 moves target_project_id condition to the merge request metrics886 when a target_project_id is present in the where conditions887 moves target_project_id condition to the merge request metrics888 .by_related_commit_sha889 when commit is a squash commit890 is expected to eq [#<MergeRequest id:48 namespace1/project1!1>]891 when commit is a part of the merge request892 is expected to eq [#<MergeRequest id:49 namespace1/project1!1>]893 when commit is a merge commit894 is expected to eq [#<MergeRequest id:50 namespace1/project1!1>]895 when commit is not found896 is expected to be empty897 when commit is part of the merge request and a squash commit at the same time898 is expected to eq [#<MergeRequest id:51 namespace1/project1!1>]899 .in_projects900 returns the merge requests for a set of projects901 .set_latest_merge_request_diff_ids!902 sets IDs for merge requests, whether they are already set or not903 .recent_target_branches904 returns target branches sort by updated at desc905 .sort_by_attribute906 merged_at907 sorts asc908 sorts desc909 closed_at910 sorts asc911 sorts desc912 sorts asc when its closed_at913 title914 sorts asc915 sorts desc916 time to merge calculations917 .total_time_to_merge918 returns the sum of the time to merge for all merged MRs919 when merged_at is earlier than created_at920 returns nil921 #target_branch_sha922 returns memoized value923 when the target branch does not exist924 returns nil925 #card_attributes926 includes the author name927 includes the assignees name928 #assignee_or_author?929 returns true for a user that is assigned to a merge request930 returns true for a user that is the author of a merge request931 returns false for a user that is not the assignee or author932 #visible_closing_issues_for933 shows only allowed issues to guest934 shows only allowed issues to developer935 when external issue tracker is enabled936 calls non #closes_issues to retrieve data937 #cache_merge_request_closes_issues!938 caches closed issues939 does not cache closed issues when merge request is closed940 does not cache closed issues when merge request is merged941 when both internal and external issue trackers are enabled942 does not cache issues from external trackers943 caches an internal issue944 when only external issue tracker enabled945 does not cache issues from external trackers946 does not cache an internal issue947 #source_branch_sha948 returns memoized value949 with diffs950 returns the sha of the source branch last commit951 without diffs952 returns the sha of the source branch last commit953 when there is a tag name matching the branch name954 returns the sha of the source branch last commit955 when the merge request is being created956 returns nil957 #to_reference958 returns a String reference to the object959 supports a cross-project reference960 returns a String reference with the full path961 #raw_diffs962 when there are MR diffs963 delegates to the MR diffs964 when there are no MR diffs965 delegates to the compare object966 #diffs967 when there are MR diffs968 delegates to the MR diffs969 when there are no MR diffs970 delegates to the compare object, setting expanded: true971 #note_positions_for_paths972 returns a Gitlab::Diff::PositionCollection973 within all diff files974 returns correct positions975 within specific diff file976 returns correct positions977 within no diff files978 returns no positions979 when user is given980 returns notes and draft notes positions981 when user is not given982 returns notes positions983 #discussions_diffs984 with commit diff note985 behaves like discussions diffs collection986 initializes Gitlab::DiscussionsDiff::FileCollection with correct data987 eager loads relations988 with merge request diff note989 behaves like discussions diffs collection990 initializes Gitlab::DiscussionsDiff::FileCollection with correct data991 eager loads relations992 #diff_size993 when there are MR diffs994 returns the correct count995 returns the correct overflow count996 does not perform highlighting997 when there are no MR diffs998 returns the correct count999 returns the correct overflow count1000 does not perform highlighting1001 #modified_paths1002 when past_merge_request_diff is specified1003 returns affected file paths from specified past_merge_request_diff1004 when compare is present1005 and diff_stats are not present1006 returns affected file paths from compare1007 and diff_stats are present1008 returns affected file paths from compare1009 when no arguments provided1010 returns affected file paths for merge_request_diff1011 #new_paths1012 returns new path of changed files1013 #related_notes1014 includes notes for commits1015 includes notes for commits from target project as well1016 excludes system notes for commits1017 #for_fork?1018 returns true if the merge request is for a fork1019 returns false if is not for a fork1020 #closes_issues1021 accesses the set of issues that will be closed on acceptance1022 only lists issues as to be closed if it targets the default branch1023 ignores referenced issues when auto-close is disabled1024 #issues_mentioned_but_not_closing1025 detects issues mentioned in description but not closed1026 when the project has an external issue tracker1027 detects issues mentioned in description but not closed1028 #draft?1029 detects the 'draft:' prefix1030 detects the 'Draft: ' prefix1031 detects the '[Draft]' prefix1032 detects the '[DRAFT] ' prefix1033 returns false1034 when 'WIP:' prefixes the title1035 when 'WIP: ' prefixes the title1036 when '[WIP]' prefixes the title1037 when '[WIP] ' prefixes the title1038 when ' [WIP] WIP: [WIP] WIP:' prefixes the title1039 when 'WIP ' prefixes the title1040 when '(WIP)' prefixes the title1041 when 'draft' prefixes the title1042 when 'Draft' prefixes the title1043 when 'Draft -' prefixes the title1044 when 'draft - ' prefixes the title1045 when 'Draft ' prefixes the title1046 when 'draft ' prefixes the title1047 when merge request title is simply 'WIP'1048 when WIP is in the middle of the title1049 when WIP is at the end of the title1050 when title contains words starting with WIP1051 when title contains words containing with WIP1052 when merge request title is simply 'Draft'1053 when Draft is in the middle of the title1054 when Draft is at the end of the title1055 when title contains words starting with Draft1056 when title contains words containing with Draft1057 when Draft: in the middle of the title1058 when the title does not contain draft1059 is aliased to #draft?1060 #draftless_title1061 removes a 'draft:' prefix1062 is satisfies the #work_in_progress? method1063 removes a 'Draft: ' prefix1064 is satisfies the #work_in_progress? method1065 removes a '[Draft]' prefix1066 is satisfies the #work_in_progress? method1067 removes a '[DRAFT] ' prefix1068 is satisfies the #work_in_progress? method1069 doesn't remove a 'WIP:' prefix1070 doesn't remove a 'WIP: ' prefix1071 doesn't remove a '[WIP]' prefix1072 doesn't remove a '[WIP] ' prefix1073 doesn't remove a '[WIP] WIP: [WIP] WIP:' prefix1074 removes only draft prefix from the MR title1075 does not remove WIP in the middle of the title1076 does not remove Draft in the middle of the title1077 does not remove WIP at the end of the title1078 does not remove Draft at the end of the title1079 #draft_title1080 adds the Draft: prefix to the title1081 does not add the Draft: prefix multiple times1082 is satisfies the #work_in_progress? method1083 #permits_force_push?1084 when source branch is not protected1085 is expected to be truthy1086 when source branch is protected1087 when force push is not allowed1088 is expected to be falsey1089 when force push is allowed1090 is expected to be truthy1091 #can_remove_source_branch?1092 can't be removed when its a protected branch1093 can't be removed because source project has been deleted1094 can't remove a root ref1095 is unable to remove the source branch for a project the user cannot push to1096 can be removed if the last commit is the head of the source branch1097 cannot be removed if the last commit is not also the head of the source branch1098 #source_branch_exists?1099 when the source project is set1100 returns true when the branch exists1101 when the source project is not set1102 returns false1103 #default_merge_commit_message1104 includes merge information as the title1105 includes its title in the body1106 includes its closed issues in the body1107 includes its reference in the body1108 excludes multiple linebreak runs when description is blank1109 includes its description in the body1110 does not includes its description in the body1111 uses template from target project1112 ignores template when include_description is true1113 #auto_merge_strategy1114 is expected to eq "merge_when_pipeline_succeeds"1115 when auto merge is disabled1116 is expected to be nil1117 #committers1118 returns all the committers of every commit in the merge request1119 returns an empty array if no committer is associated with a user1120 #diverged_commits_count1121 when the target branch does not exist anymore1122 does not crash1123 returns 01124 diverged on same repository1125 counts commits that are on target branch but not on source branch1126 diverged on fork1127 counts commits that are on target branch but not on source branch1128 rebased on fork1129 counts commits that are on target branch but not on source branch1130 caching1131 caches the output1132 invalidates the cache when the source sha changes1133 invalidates the cache when the target sha changes1134 behaves like an editable mentionable1135 creates new cross-reference notes when the mentionable text is edited1136 behaves like a mentionable1137 generates a descriptive back-reference1138 extracts references from its reference property1139 creates cross-reference notes1140 when there are cached markdown fields1141 sends in cached markdown fields when appropriate1142 when there are cached markdown fields1143 refreshes markdown cache if necessary1144 when the markdown cache is stale1145 persists the refreshed cache so that it does not have to be refreshed every time1146 behaves like a Taskable1147 with multiple tasks1148 returns the correct task status1149 #tasks?1150 returns true when object has tasks1151 returns false when object has no tasks1152 with nested tasks1153 returns the correct task status1154 with an incomplete task1155 returns the correct task status1156 with tasks that are not formatted correctly1157 returns the correct task status1158 with a complete task1159 returns the correct task status1160 with tasks in blockquotes1161 returns the correct task status1162 #commit_shas1163 persisted merge request1164 with a limit1165 returns a limited number of commit shas1166 without a limit1167 returns all commit shas of the merge request diff1168 new merge request1169 returns diff_head_sha as an array1170 compare commits1171 without a limit1172 returns all shas of compare commits1173 with a limit1174 returns a limited number of shas1175 head pipeline1176 #head_pipeline1177 returns nil for MR without head_pipeline_id1178 when the source project does not exist1179 returns nil1180 #actual_head_pipeline1181 returns nil for MR with old pipeline1182 returns the pipeline for MR with recent pipeline1183 returns the pipeline for MR with recent merge request pipeline1184 returns nil when source project does not exist1185 #merge_pipeline1186 returns nil when not merged1187 when the MR is merged1188 and there is a merge commit1189 returns the pipeline associated with that merge request1190 and there is no merge commit, but there is a diff head1191 returns the pipeline associated with that merge request1192 and there is no merge commit, but there is a squash commit1193 returns the pipeline associated with that merge request1194 #has_ci?1195 has ci1196 returns true if MR has head_pipeline_id and commits1197 returns true if MR has any pipeline and commits1198 returns true if MR has CI integration and commits1199 has no ci1200 returns false if MR has no CI integration nor pipeline, and no commits1201 #update_head_pipeline1202 when there is a pipeline with the diff head sha1203 updates the head pipeline1204 when merge request has already had head pipeline1205 when failed to find an actual head pipeline1206 does not update the current head pipeline1207 when detached merge request pipeline is run on head ref of the merge request1208 sets the head ref of the merge request to the pipeline ref1209 updates correctly even though the target branch name of the merge request is different from the pipeline ref1210 when sha is not HEAD of the source branch1211 does not update head pipeline1212 when there are no pipelines with the diff head sha1213 does not update the head pipeline1214 #has_test_reports?1215 when head pipeline has test reports1216 is expected to be truthy1217 when head pipeline does not have test reports1218 is expected to be falsey1219 #has_accessibility_reports?1220 when head pipeline has an accessibility reports1221 is expected to be truthy1222 when head pipeline does not have accessibility reports1223 is expected to be falsey1224 #has_coverage_reports?1225 when head pipeline has coverage reports1226 is expected to be truthy1227 when head pipeline does not have coverage reports1228 is expected to be falsey1229 #has_codequality_mr_diff_report?1230 when head pipeline has codequality mr diff report1231 is expected to be truthy1232 when head pipeline does not have codeqquality mr diff report1233 is expected to be falsey1234 #has_codequality_reports?1235 when head pipeline has a codequality report1236 is expected to be truthy1237 when head pipeline does not have a codequality report1238 is expected to be falsey1239 #has_terraform_reports?1240 when head pipeline has terraform reports1241 returns true1242 when head pipeline does not have terraform reports1243 returns false1244 #has_sast_reports?1245 when head pipeline has sast reports1246 is expected to be truthy1247 when head pipeline does not have sast reports1248 is expected to be falsey1249 #has_secret_detection_reports?1250 when head pipeline has secret detection reports1251 is expected to be truthy1252 when head pipeline does not have secrets detection reports1253 is expected to be falsey1254 #calculate_reactive_cache1255 when given an unknown service class name1256 raises a NameError exception1257 when given a known service class name1258 does not raises a NameError exception1259 #find_exposed_artifacts1260 when head pipeline has exposed artifacts1261 when reactive cache worker is parsing results asynchronously1262 returns status1263 when reactive cache worker is inline1264 returns status and data1265 when an error occurrs1266 returns an error message1267 when cached results is not latest1268 raises and InvalidateReactiveCache error1269 #find_coverage_reports1270 when head pipeline has coverage reports1271 when reactive cache worker is parsing results asynchronously1272 returns status1273 when reactive cache worker is inline1274 returns status and data1275 when an error occurrs1276 returns an error message1277 when cached results is not latest1278 raises and InvalidateReactiveCache error1279 #find_codequality_mr_diff_reports1280 when head pipeline has coverage reports1281 when reactive cache worker is parsing results asynchronously1282 returns status1283 when reactive cache worker is inline1284 returns status and data1285 when an error occurrs1286 returns an error message1287 when cached results is not latest1288 raises and InvalidateReactiveCache error1289 #compare_test_reports1290 when head pipeline has test reports1291 when reactive cache worker is parsing asynchronously1292 returns status1293 when reactive cache worker is inline1294 returns status and data1295 when cached results is not latest1296 raises and InvalidateReactiveCache error1297 when head pipeline does not have test reports1298 returns status and error message1299 #compare_accessibility_reports1300 when head pipeline has accessibility reports1301 when reactive cache worker is parsing results asynchronously1302 returns parsing status1303 when reactive cache worker is inline1304 returns parsed status1305 when an error occurrs1306 returns an error status1307 when cached result is not latest1308 raises an InvalidateReactiveCache error1309 #compare_codequality_reports1310 when head pipeline has codequality report1311 when reactive cache worker is parsing results asynchronously1312 returns parsing status1313 when reactive cache worker is inline1314 returns parsed status1315 when an error occurrs1316 returns an error status1317 when cached result is not latest1318 raises an InvalidateReactiveCache error1319 #all_commit_shas1320 when merge request is persisted1321 with a completely different branch1322 behaves like returning all SHA1323 returns all SHAs from all merge_request_diffs1324 with a branch having no difference1325 behaves like returning all SHA1326 returns all SHAs from all merge_request_diffs1327 when merge request is not persisted1328 when compare commits are set in the service1329 returns commits from compare commits temporary data1330 when compare commits are not set in the service1331 returns array with diff head sha element only1332 #short_merge_commit_sha1333 returns short id when there is a merge_commit_sha1334 returns nil when there is no merge_commit_sha1335 #merged_commit_sha1336 returns nil when not merged1337 when the MR is merged1338 returns merge_commit_sha when there is a merge_commit_sha1339 returns squash_commit_sha when there is a squash_commit_sha1340 returns diff_head_sha when there are no merge_commit_sha and squash_commit_sha1341 #short_merged_commit_sha1342 when merged_commit_sha is nil1343 returns nil1344 when merged_commit_sha is present1345 returns shortened merged_commit_sha1346 #can_be_reverted?1347 when there is no merge_commit for the MR1348 returns false1349 when the MR has been merged1350 when there is no revert commit1351 returns true1352 when there is no merged_at for the MR1353 returns true1354 when there is a revert commit1355 but merged at timestamp cannot be found1356 returns false1357 when the revert commit is mentioned in a note after the MR was merged1358 returns false1359 when there is no merged_at for the MR1360 returns false1361 when the revert commit is mentioned in a note just before the MR was merged1362 returns false1363 when the revert commit is mentioned in a note long before the MR was merged1364 returns true1365 #merged_at1366 when MR is not merged1367 returns nil1368 when metrics has merged_at data1369 returns metrics merged_at1370 when merged event is persisted, but no metrics merged_at is persisted1371 returns merged event creation date1372 when no metrics or merge event exists1373 when resource event for the merge exists1374 returns the resource event creation date1375 when system note for the merge exists1376 returns the merging note creation date1377 #participants1378 includes the merge request author1379 includes the authors of the notes1380 cached counts1381 updates when assignees change1382 #merge_async1383 enqueues MergeWorker job and updates merge_jid1384 #rebase_async1385 atomically enqueues a RebaseWorker job and updates rebase_jid1386 refuses to enqueue a job if a rebase is in progress1387 refuses to enqueue a job if the MR is not open1388 raises ActiveRecord::LockWaitTimeout after 6 tries1389 #mergeable?1390 returns false if #mergeable_state? is false1391 return true if #mergeable_state? is true and the MR #can_be_merged? is true1392 return true if #mergeable_state? is true and the MR #can_be_merged? is false1393 with skip_ci_check option1394 mergeable_ci_state: false, skip_ci_check: false, expected_mergeable: false1395 overrides mergeable_ci_state?1396 mergeable_ci_state: false, skip_ci_check: true, expected_mergeable: true1397 overrides mergeable_ci_state?1398 mergeable_ci_state: true, skip_ci_check: false, expected_mergeable: true1399 overrides mergeable_ci_state?1400 mergeable_ci_state: true, skip_ci_check: true, expected_mergeable: true1401 overrides mergeable_ci_state?1402 with skip_discussions_check option1403 mergeable_discussions_state: false, skip_discussions_check: false, expected_mergeable: false1404 overrides mergeable_discussions_state?1405 mergeable_discussions_state: false, skip_discussions_check: true, expected_mergeable: true1406 overrides mergeable_discussions_state?1407 mergeable_discussions_state: true, skip_discussions_check: false, expected_mergeable: true1408 overrides mergeable_discussions_state?1409 mergeable_discussions_state: true, skip_discussions_check: true, expected_mergeable: true1410 overrides mergeable_discussions_state?1411 #check_mergeability1412 if the merge status is unchecked1413 behaves like method that executes MergeabilityCheckService1414 executes MergeabilityCheckService1415 when async is true1416 executes MergeabilityCheckService asynchronously1417 if the merge status is checking1418 behaves like method that executes MergeabilityCheckService1419 executes MergeabilityCheckService1420 when async is true1421 executes MergeabilityCheckService asynchronously1422 if the merge status is checked1423 does not call MergeabilityCheckService1424 #mergeable_state?1425 behaves like for mergeable_state1426 checks if merge request can be merged1427 when not open1428 returns false1429 when working in progress1430 returns false1431 when broken1432 returns false1433 when failed1434 when #mergeable_ci_state? is false1435 returns false1436 returns true when skipping ci check1437 when #mergeable_discussions_state? is false1438 returns false1439 returns true when skipping discussions check1440 when improved_mergeability_checks is off1441 behaves like for mergeable_state1442 checks if merge request can be merged1443 when not open1444 returns false1445 when working in progress1446 returns false1447 when broken1448 returns false1449 when failed1450 when #mergeable_ci_state? is false1451 returns false1452 returns true when skipping ci check1453 when #mergeable_discussions_state? is false1454 returns false1455 returns true when skipping discussions check1456 when merge state caching is off1457 behaves like for mergeable_state1458 checks if merge request can be merged1459 when not open1460 returns false1461 when working in progress1462 returns false1463 when broken1464 returns false1465 when failed1466 when #mergeable_ci_state? is false1467 returns false1468 returns true when skipping ci check1469 when #mergeable_discussions_state? is false1470 returns false1471 returns true when skipping discussions check1472 #public_merge_status1473 status: "cannot_be_merged_rechecking", public_status: "checking"1474 is expected to eq "checking"1475 status: "preparing", public_status: "checking"1476 is expected to eq "checking"1477 status: "checking", public_status: "checking"1478 is expected to eq "checking"1479 status: "cannot_be_merged", public_status: "cannot_be_merged"1480 is expected to eq "cannot_be_merged"1481 #head_pipeline_active?1482 when project lacks a head_pipeline relation1483 returns false1484 when project has a head_pipeline relation1485 accesses the value from the head_pipeline1486 #actual_head_pipeline_success?1487 when project lacks an actual_head_pipeline relation1488 returns false1489 when project has a actual_head_pipeline relation1490 accesses the value from the actual_head_pipeline1491 #actual_head_pipeline_active?1492 when project lacks an actual_head_pipeline relation1493 returns false1494 when project has a actual_head_pipeline relation1495 accesses the value from the actual_head_pipeline1496 #mergeable_ci_state?1497 when it is only allowed to merge when build is green1498 and a failed pipeline is associated1499 is expected to be falsey1500 and a successful pipeline is associated1501 is expected to be truthy1502 and a skipped pipeline is associated1503 is expected to be falsey1504 when no pipeline is associated1505 is expected to be falsey1506 when it is only allowed to merge when build is green or skipped1507 and a failed pipeline is associated1508 is expected to be falsey1509 and a successful pipeline is associated1510 is expected to be truthy1511 and a skipped pipeline is associated1512 is expected to be truthy1513 when no pipeline is associated1514 is expected to be falsey1515 when merges are not restricted to green builds1516 and a failed pipeline is associated1517 is expected to be truthy1518 when no pipeline is associated1519 is expected to be truthy1520 and a skipped pipeline is associated1521 is expected to be truthy1522 when no pipeline is associated1523 is expected to be truthy1524 #mergeable_discussions_state?1525 when project.only_allow_merge_if_all_discussions_are_resolved == true1526 with all discussions resolved1527 returns true1528 with unresolved discussions1529 returns false1530 with no discussions1531 returns true1532 when project.only_allow_merge_if_all_discussions_are_resolved == false1533 with unresolved discussions1534 returns true1535 #reload_diff1536 calls MergeRequests::ReloadDiffsService#execute with correct params1537 when using the after_update hook to update1538 when the branches are updated1539 uses the new heads to generate the diff1540 #update_diff_discussion_positions1541 updates diff discussion positions1542 does not call the resolve method1543 when resolve_outdated_diff_discussions is set1544 when the active discussion is resolved in the update1545 calls MergeRequests::ResolvedDiscussionNotificationService1546 when the active discussion does not have resolved in the update1547 does not call the resolve method1548 when the active discussion was already resolved1549 does not call the resolve method1550 #branch_merge_base_commit1551 source and target branch exist1552 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"1553 is expected to be a kind of Commit1554 when the target branch does not exist1555 returns nil1556 #diff_refs1557 with diffs1558 does not touch the repository1559 returns expected diff_refs1560 when importing1561 returns MR diff_refs1562 #source_project_missing?1563 when the fork exists1564 is expected to be falsey1565 when the source project is the same as the target project1566 is expected to be falsey1567 when the fork does not exist1568 returns true1569 #merge_ongoing?1570 returns true when the merge request is locked1571 returns true when merge_id, MR is not merged and it has no running job1572 returns false when merge_jid is nil1573 returns false if MR is merged1574 returns false if there is no merge job running1575 #closed_or_merged_without_fork?1576 when the merge request is closed1577 returns false if the fork exist1578 returns true if the fork does not exist1579 when the merge request was merged1580 returns false if the fork exist1581 returns true if the fork does not exist1582 when the merge request is open1583 returns false1584 #reopenable?1585 when the merge request is closed1586 returns true1587 forked project1588 returns false if unforked1589 returns false if the source project is deleted1590 returns false if the merge request is merged1591 when the merge request is opened1592 returns false1593 #pipeline_coverage_delta1594 when both source and target branches have coverage information1595 returns the appropriate coverage delta1596 when target branch does not have coverage information1597 returns nil1598 when source branch does not have coverage information1599 returns nil for coverage_delta1600 neither source nor target branch has coverage information1601 returns nil for coverage_delta1602 #use_merge_base_pipeline_for_comparison?1603 when service class is Ci::CompareMetricsReportsService1604 is expected to be truthy1605 when service class is Ci::CompareCodequalityReportsService1606 is expected to be truthy1607 when service class is different1608 is expected to be falsey1609 #comparison_base_pipeline1610 when service class is Ci::CompareCodequalityReportsService1611 when merge request has a merge request pipeline1612 returns the merge_base_pipeline1613 when merge does not have a merge request pipeline1614 returns the base_pipeline1615 when service_class is different1616 returns the base_pipeline1617 #base_pipeline1618 returns latest pipeline for the target branch1619 #merge_base_pipeline1620 returns a pipeline pointing to a commit on the target ref1621 #has_commits?1622 returns true when merge request diff has commits1623 when commits_count is nil1624 returns false1625 #has_no_commits?1626 returns true when merge request diff has 0 commits1627 #merge_request_diff_for1628 runs a single query on the initial call, and none afterwards1629 with diff refs1630 returns the diffs1631 with a commit SHA1632 returns the diffs1633 #version_params_for1634 when the diff refs are for an older merge request version1635 returns the diff ID for the version to show1636 when the diff refs are for a comparison between merge request versions1637 returns the diff ID and start sha of the versions to compare1638 when the diff refs are not for a merge request version1639 returns nil1640 #fetch_ref!1641 fetches the ref correctly1642 #eager_fetch_ref!1643 fetches the ref correctly1644 only fetches the ref once after saved1645 removing a merge request1646 refreshes the number of open merge requests of the target project1647 behaves like throttled touch1648 #touch1649 updates the updated_at timestamp1650 updates the object at most once per minute1651 state machine transitions1652 #unlock_mr1653 updates merge request head pipeline and sets merge_jid to nil1654 #mark_as_unchecked1655 when the status is unchecked1656 is not a valid state transition1657 when the status is checking1658 is a valid state transition1659 when the status is can_be_merged1660 is a valid state transition1661 when the status is cannot_be_merged_recheck1662 is not a valid state transition1663 when the status is cannot_be_merged1664 is a valid state transition1665 when the status is cannot_be_merged1666 is a valid state transition1667 transition to cannot_be_merged1668 opened1669 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1670 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check1671 notifies conflict, whenever newly unmergeable1672 notifies conflict, whenever newly unmergeable with async mergeability check1673 does not notify whenever merge request is newly unmergeable due to other reasons1674 locked1675 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1676 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check1677 notifies conflict, whenever newly unmergeable1678 notifies conflict, whenever newly unmergeable with async mergeability check1679 does not notify whenever merge request is newly unmergeable due to other reasons1680 closed1681 does not notify1682 merged1683 does not notify1684 source branch is missing1685 does not raise error1686 check_state?1687 indicates whether MR is still checking for mergeability1688 #should_be_rebased?1689 returns false for the same source and target branches1690 #rebase_in_progress?1691 rebase_jid: "foo", jid_valid: true, result: true1692 is expected to eq true1693 rebase_jid: "foo", jid_valid: false, result: false1694 is expected to eq false1695 rebase_jid: "", jid_valid: true, result: false1696 is expected to eq false1697 rebase_jid: nil, jid_valid: true, result: false1698 is expected to eq false1699 #allow_collaboration1700 is false when pushing by a maintainer is not possible1701 is true when pushing by a maintainer is possible1702 #collaborative_push_possible?1703 does not allow maintainer to push if the source project is the same as the target1704 allows maintainer to push when both source and target are public1705 is not available for protected branches1706 #can_allow_collaboration?1707 is false if the user does not have push access to the source project1708 is true when the user has push access to the source project1709 #merge_participants1710 contains author1711 when merge_when_pipeline_succeeds? is true1712 when merge user is author1713 author is not a project member1714 is empty1715 author is a project member1716 contains author only1717 when merge user and author are different users1718 merge user is not a member1719 contains author only1720 both author and merge users are project members1721 contains author and merge user1722 .merge_request_ref?1723 when ref is ref name of a branch1724 is expected to be falsey1725 when ref is HEAD ref path of a branch1726 is expected to be falsey1727 when ref is HEAD ref path of a merge request1728 is expected to be truthy1729 when ref is merge ref path of a merge request1730 is expected to be truthy1731 .merge_train_ref?1732 when ref is ref name of a branch1733 is expected to be falsey1734 when ref is HEAD ref path of a branch1735 is expected to be falsey1736 when ref is HEAD ref path of a merge request1737 is expected to be falsey1738 when ref is merge ref path of a merge request1739 is expected to be falsey1740 when ref is train ref path of a merge request1741 is expected to be truthy1742 #cleanup_refs1743 when removing all refs1744 deletes all refs from the target project1745 when removing only train ref1746 deletes train ref from the target project1747 .with_auto_merge_enabled1748 is expected to contain exactly #<MergeRequest id:371 namespace1/project170!1>1749 behaves like versioned description1750 associations1751 is expected to have many description_versions1752 save_description_version1753 when description was changed1754 saves the old and new description for the first update1755 only saves the new description for subsequent updates1756 sets the new description version to `saved_description_version`1757 clears `saved_description_version` after another save that does not change description1758 when description was not changed1759 does not save any description version1760 #commits1761 persisted merge request1762 with a limit1763 returns a limited number of commits1764 without a limit1765 returns all commits of the merge request diff1766 new merge request1767 compare commits1768 without a limit1769 returns all the compare commits1770 with a limit1771 returns a limited number of commits1772 #recent_commits1773 returns the safe number of commits1774 #recent_visible_deployments1775 returns visible deployments1776 only returns a limited number of deployments1777 #diffable_merge_ref?1778 merge request can be merged1779 merge_head diff is not created1780 returns true1781 merge_head diff is created1782 returns true1783 merge request is merged1784 returns false1785 merge request cannot be merged1786 returns false1787 display_merge_conflicts_in_diff is disabled1788 returns false1789 #predefined_variables1790 caches all SQL-sourced data on the first call1791 banzai_render_context1792 sets the label_url_method in the context1793 #head_pipeline_builds_with_coverage1794 delegates to head_pipeline1795 #merge_ref_head1796 when merge_ref_sha is not present1797 returns the commit based on merge ref path1798 when merge_ref_sha is present1799 returns the commit based on cached merge_ref_sha1800 #allows_reviewers?1801 returns true1802 #update_and_mark_in_progress_merge_commit_sha1803 updates commit ID1804 #enabled_reports1805 report_type: :sast, with_reports: :with_sast_reports, feature: :sast1806 when head pipeline has reports1807 is expected to be truthy1808 when head pipeline does not have reports1809 is expected to be falsy1810 report_type: :secret_detection, with_reports: :with_secret_detection_reports, feature: :secret_detection1811 when head pipeline has reports1812 is expected to be truthy1813 when head pipeline does not have reports1814 is expected to be falsy1815 #includes_ci_config?1816 when diff_stats is nil1817 is expected to eq false1818 when diff_stats does not include the ci config path of the project1819 is expected to eq false1820 when diff_stats includes the ci config path of the project1821 is expected to eq true1822 .from_fork1823 returns merge requests from forks only1824 behaves like it has loose foreign keys1825 has at least one loose foreign key definition1826 has the deletion trigger present1827 records record deletions1828 cleans up record deletions1829 loose foreign key on merge_requests.head_pipeline_id1830 behaves like cleanup by a loose foreign key1831 cleans up (delete or nullify) the model1832 #merge_request_reviewers_with1833 returns reviewers1834 #merge_request_assignees_with1835 returns assignees1836 #recent_diff_head_shas1837 when the association is not loaded1838 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first1839 supports limits1840 when the association is loaded1841 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first1842 supports limits1843 does not issue any queries1844 #target_default_branch?1845 returns false1846 with target_branch equal project default branch1847 returns false1848Gitlab::UsageDataCounters::CiTemplateUniqueCounter1849 .track_unique_project_event1850 expands short template names1851 with explicit includes1852 for Laravel.gitlab-ci.yml1853 has an event defined for template1854 tracks template1855 Snowplow1856 event is not tracked if FF is disabled1857 tracks event1858 for Python.gitlab-ci.yml1859 has an event defined for template1860 tracks template1861 Snowplow1862 event is not tracked if FF is disabled1863 tracks event1864 for Gradle.gitlab-ci.yml1865 has an event defined for template1866 tracks template1867 Snowplow1868 event is not tracked if FF is disabled1869 tracks event1870 for Go.gitlab-ci.yml1871 has an event defined for template1872 tracks template1873 Snowplow1874 event is not tracked if FF is disabled1875 tracks event1876 for Composer.gitlab-ci.yml1877 has an event defined for template1878 tracks template1879 Snowplow1880 event is not tracked if FF is disabled1881 tracks event1882 for Auto-DevOps.gitlab-ci.yml1883 has an event defined for template1884 tracks template1885 Snowplow1886 event is not tracked if FF is disabled1887 tracks event1888 for Android.latest.gitlab-ci.yml1889 has an event defined for template1890 tracks template1891 Snowplow1892 event is not tracked if FF is disabled1893 tracks event1894 for Rust.gitlab-ci.yml1895 has an event defined for template1896 tracks template1897 Snowplow1898 event is not tracked if FF is disabled1899 tracks event1900 for Qualys-IaC-Security.gitlab-ci.yml1901 has an event defined for template1902 tracks template1903 Snowplow1904 event is not tracked if FF is disabled1905 tracks event1906 for Elixir.gitlab-ci.yml1907 has an event defined for template1908 tracks template1909 Snowplow1910 event is not tracked if FF is disabled1911 tracks event1912 for Mono.gitlab-ci.yml1913 has an event defined for template1914 tracks template1915 Snowplow1916 event is not tracked if FF is disabled1917 tracks event1918 for Terraform/Base.latest.gitlab-ci.yml1919 has an event defined for template1920 tracks template1921 Snowplow1922 event is not tracked if FF is disabled1923 tracks event1924 for Terraform/Base.gitlab-ci.yml1925 has an event defined for template1926 tracks template1927 Snowplow1928 event is not tracked if FF is disabled1929 tracks event1930 for PHP.gitlab-ci.yml1931 has an event defined for template1932 tracks template1933 Snowplow1934 event is not tracked if FF is disabled1935 tracks event1936 for LaTeX.gitlab-ci.yml1937 has an event defined for template1938 tracks template1939 Snowplow1940 event is not tracked if FF is disabled1941 tracks event1942 for MATLAB.gitlab-ci.yml1943 has an event defined for template1944 tracks template1945 Snowplow1946 event is not tracked if FF is disabled1947 tracks event1948 for Android.gitlab-ci.yml1949 has an event defined for template1950 tracks template1951 Snowplow1952 event is not tracked if FF is disabled1953 tracks event1954 for Terraform.latest.gitlab-ci.yml1955 has an event defined for template1956 tracks template1957 Snowplow1958 event is not tracked if FF is disabled1959 tracks event1960 for Django.gitlab-ci.yml1961 has an event defined for template1962 tracks template1963 Snowplow1964 event is not tracked if FF is disabled1965 tracks event1966 for C++.gitlab-ci.yml1967 has an event defined for template1968 tracks template1969 Snowplow1970 event is not tracked if FF is disabled1971 tracks event1972 for Terraform.gitlab-ci.yml1973 has an event defined for template1974 tracks template1975 Snowplow1976 event is not tracked if FF is disabled1977 tracks event1978 for Scala.gitlab-ci.yml1979 has an event defined for template1980 tracks template1981 Snowplow1982 event is not tracked if FF is disabled1983 tracks event1984 for Code-Quality.gitlab-ci.yml1985 has an event defined for template1986 tracks template1987 Snowplow1988 event is not tracked if FF is disabled1989 tracks event1990 for Docker.gitlab-ci.yml1991 has an event defined for template1992 tracks template1993 Snowplow1994 event is not tracked if FF is disabled1995 tracks event1996 for Julia.gitlab-ci.yml1997 has an event defined for template1998 tracks template1999 Snowplow2000 event is not tracked if FF is disabled2001 tracks event2002 for npm.gitlab-ci.yml2003 has an event defined for template2004 tracks template2005 Snowplow2006 event is not tracked if FF is disabled2007 tracks event2008 for Flutter.gitlab-ci.yml2009 has an event defined for template2010 tracks template2011 Snowplow2012 event is not tracked if FF is disabled2013 tracks event2014 for Kaniko.gitlab-ci.yml2015 has an event defined for template2016 tracks template2017 Snowplow2018 event is not tracked if FF is disabled2019 tracks event2020 for Getting-Started.gitlab-ci.yml2021 has an event defined for template2022 tracks template2023 Snowplow2024 event is not tracked if FF is disabled2025 tracks event2026 for Packer.gitlab-ci.yml2027 has an event defined for template2028 tracks template2029 Snowplow2030 event is not tracked if FF is disabled2031 tracks event2032 for Grails.gitlab-ci.yml2033 has an event defined for template2034 tracks template2035 Snowplow2036 event is not tracked if FF is disabled2037 tracks event2038 for Crystal.gitlab-ci.yml2039 has an event defined for template2040 tracks template2041 Snowplow2042 event is not tracked if FF is disabled2043 tracks event2044 for dotNET-Core.gitlab-ci.yml2045 has an event defined for template2046 tracks template2047 Snowplow2048 event is not tracked if FF is disabled2049 tracks event2050 for OpenShift.gitlab-ci.yml2051 has an event defined for template2052 tracks template2053 Snowplow2054 event is not tracked if FF is disabled2055 tracks event2056 for Deploy-ECS.gitlab-ci.yml2057 has an event defined for template2058 tracks template2059 Snowplow2060 event is not tracked if FF is disabled2061 tracks event2062 for iOS-Fastlane.gitlab-ci.yml2063 has an event defined for template2064 tracks template2065 Snowplow2066 event is not tracked if FF is disabled2067 tracks event2068 for dotNET.gitlab-ci.yml2069 has an event defined for template2070 tracks template2071 Snowplow2072 event is not tracked if FF is disabled2073 tracks event2074 for Clojure.gitlab-ci.yml2075 has an event defined for template2076 tracks template2077 Snowplow2078 event is not tracked if FF is disabled2079 tracks event2080 for Swift.gitlab-ci.yml2081 has an event defined for template2082 tracks template2083 Snowplow2084 event is not tracked if FF is disabled2085 tracks event2086 for Security/License-Scanning.gitlab-ci.yml2087 has an event defined for template2088 tracks template2089 Snowplow2090 event is not tracked if FF is disabled2091 tracks event2092 for Security/Coverage-Fuzzing.gitlab-ci.yml2093 has an event defined for template2094 tracks template2095 Snowplow2096 event is not tracked if FF is disabled2097 tracks event2098 for Security/DAST-On-Demand-Scan.gitlab-ci.yml2099 has an event defined for template2100 tracks template2101 Snowplow2102 event is not tracked if FF is disabled2103 tracks event2104 for Security/SAST.gitlab-ci.yml2105 has an event defined for template2106 tracks template2107 Snowplow2108 event is not tracked if FF is disabled2109 tracks event2110 for Security/DAST.latest.gitlab-ci.yml2111 has an event defined for template2112 tracks template2113 Snowplow2114 event is not tracked if FF is disabled2115 tracks event2116 for Security/Secure-Binaries.gitlab-ci.yml2117 has an event defined for template2118 tracks template2119 Snowplow2120 event is not tracked if FF is disabled2121 tracks event2122 for Security/DAST-API.gitlab-ci.yml2123 has an event defined for template2124 tracks template2125 Snowplow2126 event is not tracked if FF is disabled2127 tracks event2128 for Security/Dependency-Scanning.gitlab-ci.yml2129 has an event defined for template2130 tracks template2131 Snowplow2132 event is not tracked if FF is disabled2133 tracks event2134 for Security/DAST-On-Demand-API-Scan.gitlab-ci.yml2135 has an event defined for template2136 tracks template2137 Snowplow2138 event is not tracked if FF is disabled2139 tracks event2140 for Security/API-Fuzzing.gitlab-ci.yml2141 has an event defined for template2142 tracks template2143 Snowplow2144 event is not tracked if FF is disabled2145 tracks event2146 for Security/DAST.gitlab-ci.yml2147 has an event defined for template2148 tracks template2149 Snowplow2150 event is not tracked if FF is disabled2151 tracks event2152 for Security/SAST-IaC.gitlab-ci.yml2153 has an event defined for template2154 tracks template2155 Snowplow2156 event is not tracked if FF is disabled2157 tracks event2158 for Security/API-Fuzzing.latest.gitlab-ci.yml2159 has an event defined for template2160 tracks template2161 Snowplow2162 event is not tracked if FF is disabled2163 tracks event2164 for Security/SAST-IaC.latest.gitlab-ci.yml2165 has an event defined for template2166 tracks template2167 Snowplow2168 event is not tracked if FF is disabled2169 tracks event2170 for Security/DAST-Runner-Validation.gitlab-ci.yml2171 has an event defined for template2172 tracks template2173 Snowplow2174 event is not tracked if FF is disabled2175 tracks event2176 for Security/Secret-Detection.gitlab-ci.yml2177 has an event defined for template2178 tracks template2179 Snowplow2180 event is not tracked if FF is disabled2181 tracks event2182 for Security/DAST-API.latest.gitlab-ci.yml2183 has an event defined for template2184 tracks template2185 Snowplow2186 event is not tracked if FF is disabled2187 tracks event2188 for Security/Container-Scanning.gitlab-ci.yml2189 has an event defined for template2190 tracks template2191 Snowplow2192 event is not tracked if FF is disabled2193 tracks event2194 for ThemeKit.gitlab-ci.yml2195 has an event defined for template2196 tracks template2197 Snowplow2198 event is not tracked if FF is disabled2199 tracks event2200 for Chef.gitlab-ci.yml2201 has an event defined for template2202 tracks template2203 Snowplow2204 event is not tracked if FF is disabled2205 tracks event2206 for Android-Fastlane.gitlab-ci.yml2207 has an event defined for template2208 tracks template2209 Snowplow2210 event is not tracked if FF is disabled2211 tracks event2212 for Maven.gitlab-ci.yml2213 has an event defined for template2214 tracks template2215 Snowplow2216 event is not tracked if FF is disabled2217 tracks event2218 for Pages/Middleman.gitlab-ci.yml2219 has an event defined for template2220 tracks template2221 Snowplow2222 event is not tracked if FF is disabled2223 tracks event2224 for Pages/Doxygen.gitlab-ci.yml2225 has an event defined for template2226 tracks template2227 Snowplow2228 event is not tracked if FF is disabled2229 tracks event2230 for Pages/SwaggerUI.gitlab-ci.yml2231 has an event defined for template2232 tracks template2233 Snowplow2234 event is not tracked if FF is disabled2235 tracks event2236 for Pages/Lektor.gitlab-ci.yml2237 has an event defined for template2238 tracks template2239 Snowplow2240 event is not tracked if FF is disabled2241 tracks event2242 for Pages/Nanoc.gitlab-ci.yml2243 has an event defined for template2244 tracks template2245 Snowplow2246 event is not tracked if FF is disabled2247 tracks event2248 for Pages/Pelican.gitlab-ci.yml2249 has an event defined for template2250 tracks template2251 Snowplow2252 event is not tracked if FF is disabled2253 tracks event2254 for Pages/JBake.gitlab-ci.yml2255 has an event defined for template2256 tracks template2257 Snowplow2258 event is not tracked if FF is disabled2259 tracks event2260 for Pages/Brunch.gitlab-ci.yml2261 has an event defined for template2262 tracks template2263 Snowplow2264 event is not tracked if FF is disabled2265 tracks event2266 for Pages/Harp.gitlab-ci.yml2267 has an event defined for template2268 tracks template2269 Snowplow2270 event is not tracked if FF is disabled2271 tracks event2272 for Pages/Hugo.gitlab-ci.yml2273 has an event defined for template2274 tracks template2275 Snowplow2276 event is not tracked if FF is disabled2277 tracks event2278 for Pages/Gatsby.gitlab-ci.yml2279 has an event defined for template2280 tracks template2281 Snowplow2282 event is not tracked if FF is disabled2283 tracks event2284 for Pages/HTML.gitlab-ci.yml2285 has an event defined for template2286 tracks template2287 Snowplow2288 event is not tracked if FF is disabled2289 tracks event2290 for Pages/Metalsmith.gitlab-ci.yml2291 has an event defined for template2292 tracks template2293 Snowplow2294 event is not tracked if FF is disabled2295 tracks event2296 for Pages/Jekyll.gitlab-ci.yml2297 has an event defined for template2298 tracks template2299 Snowplow2300 event is not tracked if FF is disabled2301 tracks event2302 for Pages/Hexo.gitlab-ci.yml2303 has an event defined for template2304 tracks template2305 Snowplow2306 event is not tracked if FF is disabled2307 tracks event2308 for Pages/Hyde.gitlab-ci.yml2309 has an event defined for template2310 tracks template2311 Snowplow2312 event is not tracked if FF is disabled2313 tracks event2314 for Pages/Jigsaw.gitlab-ci.yml2315 has an event defined for template2316 tracks template2317 Snowplow2318 event is not tracked if FF is disabled2319 tracks event2320 for Pages/Octopress.gitlab-ci.yml2321 has an event defined for template2322 tracks template2323 Snowplow2324 event is not tracked if FF is disabled2325 tracks event2326 for Dart.gitlab-ci.yml2327 has an event defined for template2328 tracks template2329 Snowplow2330 event is not tracked if FF is disabled2331 tracks event2332 for 5-Minute-Production-App.gitlab-ci.yml2333 has an event defined for template2334 tracks template2335 Snowplow2336 event is not tracked if FF is disabled2337 tracks event2338 for Verify/Load-Performance-Testing.gitlab-ci.yml2339 has an event defined for template2340 tracks template2341 Snowplow2342 event is not tracked if FF is disabled2343 tracks event2344 for Verify/FailFast.gitlab-ci.yml2345 has an event defined for template2346 tracks template2347 Snowplow2348 event is not tracked if FF is disabled2349 tracks event2350 for Verify/Accessibility.gitlab-ci.yml2351 has an event defined for template2352 tracks template2353 Snowplow2354 event is not tracked if FF is disabled2355 tracks event2356 for Ruby.gitlab-ci.yml2357 has an event defined for template2358 tracks template2359 Snowplow2360 event is not tracked if FF is disabled2361 tracks event2362 for Workflows/MergeRequest-Pipelines.gitlab-ci.yml2363 has an event defined for template2364 tracks template2365 Snowplow2366 event is not tracked if FF is disabled2367 tracks event2368 for Workflows/Branch-Pipelines.gitlab-ci.yml2369 has an event defined for template2370 tracks template2371 Snowplow2372 event is not tracked if FF is disabled2373 tracks event2374 for Nodejs.gitlab-ci.yml2375 has an event defined for template2376 tracks template2377 Snowplow2378 event is not tracked if FF is disabled2379 tracks event2380 for Indeni.Cloudrail.gitlab-ci.yml2381 has an event defined for template2382 tracks template2383 Snowplow2384 event is not tracked if FF is disabled2385 tracks event2386 for AWS/Deploy-ECS.gitlab-ci.yml2387 has an event defined for template2388 tracks template2389 Snowplow2390 event is not tracked if FF is disabled2391 tracks event2392 for AWS/CF-Provision-and-Deploy-EC2.gitlab-ci.yml2393 has an event defined for template2394 tracks template2395 Snowplow2396 event is not tracked if FF is disabled2397 tracks event2398 for Bash.gitlab-ci.yml2399 has an event defined for template2400 tracks template2401 Snowplow2402 event is not tracked if FF is disabled2403 tracks event2404 for liquibase.gitlab-ci.yml2405 has an event defined for template2406 tracks template2407 Snowplow2408 event is not tracked if FF is disabled2409 tracks event2410 for Jobs/Secret-Detection.latest.gitlab-ci.yml2411 has an event defined for template2412 tracks template2413 Snowplow2414 event is not tracked if FF is disabled2415 tracks event2416 for Jobs/License-Scanning.gitlab-ci.yml2417 has an event defined for template2418 tracks template2419 Snowplow2420 event is not tracked if FF is disabled2421 tracks event2422 for Jobs/Deploy.latest.gitlab-ci.yml2423 has an event defined for template2424 tracks template2425 Snowplow2426 event is not tracked if FF is disabled2427 tracks event2428 for Jobs/Build.gitlab-ci.yml2429 has an event defined for template2430 tracks template2431 Snowplow2432 event is not tracked if FF is disabled2433 tracks event2434 for Jobs/Deploy.gitlab-ci.yml2435 has an event defined for template2436 tracks template2437 Snowplow2438 event is not tracked if FF is disabled2439 tracks event2440 for Jobs/SAST.gitlab-ci.yml2441 has an event defined for template2442 tracks template2443 Snowplow2444 event is not tracked if FF is disabled2445 tracks event2446 for Jobs/Load-Performance-Testing.gitlab-ci.yml2447 has an event defined for template2448 tracks template2449 Snowplow2450 event is not tracked if FF is disabled2451 tracks event2452 for Jobs/Build.latest.gitlab-ci.yml2453 has an event defined for template2454 tracks template2455 Snowplow2456 event is not tracked if FF is disabled2457 tracks event2458 for Jobs/Test.gitlab-ci.yml2459 has an event defined for template2460 tracks template2461 Snowplow2462 event is not tracked if FF is disabled2463 tracks event2464 for Jobs/Code-Quality.gitlab-ci.yml2465 has an event defined for template2466 tracks template2467 Snowplow2468 event is not tracked if FF is disabled2469 tracks event2470 for Jobs/Dependency-Scanning.gitlab-ci.yml2471 has an event defined for template2472 tracks template2473 Snowplow2474 event is not tracked if FF is disabled2475 tracks event2476 for Jobs/Helm-2to3.gitlab-ci.yml2477 has an event defined for template2478 tracks template2479 Snowplow2480 event is not tracked if FF is disabled2481 tracks event2482 for Jobs/SAST-IaC.gitlab-ci.yml2483 has an event defined for template2484 tracks template2485 Snowplow2486 event is not tracked if FF is disabled2487 tracks event2488 for Jobs/Deploy/EC2.gitlab-ci.yml2489 has an event defined for template2490 tracks template2491 Snowplow2492 event is not tracked if FF is disabled2493 tracks event2494 for Jobs/Deploy/ECS.gitlab-ci.yml2495 has an event defined for template2496 tracks template2497 Snowplow2498 event is not tracked if FF is disabled2499 tracks event2500 for Jobs/SAST-IaC.latest.gitlab-ci.yml2501 has an event defined for template2502 tracks template2503 Snowplow2504 event is not tracked if FF is disabled2505 tracks event2506 for Jobs/Code-Intelligence.gitlab-ci.yml2507 has an event defined for template2508 tracks template2509 Snowplow2510 event is not tracked if FF is disabled2511 tracks event2512 for Jobs/Browser-Performance-Testing.latest.gitlab-ci.yml2513 has an event defined for template2514 tracks template2515 Snowplow2516 event is not tracked if FF is disabled2517 tracks event2518 for Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml2519 has an event defined for template2520 tracks template2521 Snowplow2522 event is not tracked if FF is disabled2523 tracks event2524 for Jobs/Secret-Detection.gitlab-ci.yml2525 has an event defined for template2526 tracks template2527 Snowplow2528 event is not tracked if FF is disabled2529 tracks event2530 for Jobs/Browser-Performance-Testing.gitlab-ci.yml2531 has an event defined for template2532 tracks template2533 Snowplow2534 event is not tracked if FF is disabled2535 tracks event2536 for Jobs/SAST.latest.gitlab-ci.yml2537 has an event defined for template2538 tracks template2539 Snowplow2540 event is not tracked if FF is disabled2541 tracks event2542 for Jobs/CF-Provision.gitlab-ci.yml2543 has an event defined for template2544 tracks template2545 Snowplow2546 event is not tracked if FF is disabled2547 tracks event2548 with implicit includes2549 for Auto-DevOps.gitlab-ci.yml2550 has an event defined for template2551 tracks template2552 Snowplow2553 event is not tracked if FF is disabled2554 tracks event2555 for Secret-Detection.latest.gitlab-ci.yml2556 has an event defined for template2557 tracks template2558 Snowplow2559 event is not tracked if FF is disabled2560 tracks event2561 for License-Scanning.gitlab-ci.yml2562 has an event defined for template2563 tracks template2564 Snowplow2565 event is not tracked if FF is disabled2566 tracks event2567 for Deploy.latest.gitlab-ci.yml2568 has an event defined for template2569 tracks template2570 Snowplow2571 event is not tracked if FF is disabled2572 tracks event2573 for Build.gitlab-ci.yml2574 has an event defined for template2575 tracks template2576 Snowplow2577 event is not tracked if FF is disabled2578 tracks event2579 for Deploy.gitlab-ci.yml2580 has an event defined for template2581 tracks template2582 Snowplow2583 event is not tracked if FF is disabled2584 tracks event2585 for SAST.gitlab-ci.yml2586 has an event defined for template2587 tracks template2588 Snowplow2589 event is not tracked if FF is disabled2590 tracks event2591 for Load-Performance-Testing.gitlab-ci.yml2592 has an event defined for template2593 tracks template2594 Snowplow2595 event is not tracked if FF is disabled2596 tracks event2597 for Build.latest.gitlab-ci.yml2598 has an event defined for template2599 tracks template2600 Snowplow2601 event is not tracked if FF is disabled2602 tracks event2603 for Test.gitlab-ci.yml2604 has an event defined for template2605 tracks template2606 Snowplow2607 event is not tracked if FF is disabled2608 tracks event2609 for Code-Quality.gitlab-ci.yml2610 has an event defined for template2611 tracks template2612 Snowplow2613 event is not tracked if FF is disabled2614 tracks event2615 for Dependency-Scanning.gitlab-ci.yml2616 has an event defined for template2617 tracks template2618 Snowplow2619 event is not tracked if FF is disabled2620 tracks event2621 for Helm-2to3.gitlab-ci.yml2622 has an event defined for template2623 tracks template2624 Snowplow2625 event is not tracked if FF is disabled2626 tracks event2627 for SAST-IaC.gitlab-ci.yml2628 has an event defined for template2629 tracks template2630 Snowplow2631 event is not tracked if FF is disabled2632 tracks event2633 for Deploy/EC2.gitlab-ci.yml2634 has an event defined for template2635 tracks template2636 Snowplow2637 event is not tracked if FF is disabled2638 tracks event2639 for Deploy/ECS.gitlab-ci.yml2640 has an event defined for template2641 tracks template2642 Snowplow2643 event is not tracked if FF is disabled2644 tracks event2645 for SAST-IaC.latest.gitlab-ci.yml2646 has an event defined for template2647 tracks template2648 Snowplow2649 event is not tracked if FF is disabled2650 tracks event2651 for Code-Intelligence.gitlab-ci.yml2652 has an event defined for template2653 tracks template2654 Snowplow2655 event is not tracked if FF is disabled2656 tracks event2657 for Browser-Performance-Testing.latest.gitlab-ci.yml2658 has an event defined for template2659 tracks template2660 Snowplow2661 event is not tracked if FF is disabled2662 tracks event2663 for DAST-Default-Branch-Deploy.gitlab-ci.yml2664 has an event defined for template2665 tracks template2666 Snowplow2667 event is not tracked if FF is disabled2668 tracks event2669 for Secret-Detection.gitlab-ci.yml2670 has an event defined for template2671 tracks template2672 Snowplow2673 event is not tracked if FF is disabled2674 tracks event2675 for Browser-Performance-Testing.gitlab-ci.yml2676 has an event defined for template2677 tracks template2678 Snowplow2679 event is not tracked if FF is disabled2680 tracks event2681 for SAST.latest.gitlab-ci.yml2682 has an event defined for template2683 tracks template2684 Snowplow2685 event is not tracked if FF is disabled2686 tracks event2687 for CF-Provision.gitlab-ci.yml2688 has an event defined for template2689 tracks template2690 Snowplow2691 event is not tracked if FF is disabled2692 tracks event2693 for License-Scanning.gitlab-ci.yml2694 has an event defined for template2695 tracks template2696 Snowplow2697 event is not tracked if FF is disabled2698 tracks event2699 for Coverage-Fuzzing.gitlab-ci.yml2700 has an event defined for template2701 tracks template2702 Snowplow2703 event is not tracked if FF is disabled2704 tracks event2705 for DAST-On-Demand-Scan.gitlab-ci.yml2706 has an event defined for template2707 tracks template2708 Snowplow2709 event is not tracked if FF is disabled2710 tracks event2711 for SAST.gitlab-ci.yml2712 has an event defined for template2713 tracks template2714 Snowplow2715 event is not tracked if FF is disabled2716 tracks event2717 for DAST.latest.gitlab-ci.yml2718 has an event defined for template2719 tracks template2720 Snowplow2721 event is not tracked if FF is disabled2722 tracks event2723 for Secure-Binaries.gitlab-ci.yml2724 has an event defined for template2725 tracks template2726 Snowplow2727 event is not tracked if FF is disabled2728 tracks event2729 for DAST-API.gitlab-ci.yml2730 has an event defined for template2731 tracks template2732 Snowplow2733 event is not tracked if FF is disabled2734 tracks event2735 for Dependency-Scanning.gitlab-ci.yml2736 has an event defined for template2737 tracks template2738 Snowplow2739 event is not tracked if FF is disabled2740 tracks event2741 for DAST-On-Demand-API-Scan.gitlab-ci.yml2742 has an event defined for template2743 tracks template2744 Snowplow2745 event is not tracked if FF is disabled2746 tracks event2747 for API-Fuzzing.gitlab-ci.yml2748 has an event defined for template2749 tracks template2750 Snowplow2751 event is not tracked if FF is disabled2752 tracks event2753 for DAST.gitlab-ci.yml2754 has an event defined for template2755 tracks template2756 Snowplow2757 event is not tracked if FF is disabled2758 tracks event2759 for SAST-IaC.gitlab-ci.yml2760 has an event defined for template2761 tracks template2762 Snowplow2763 event is not tracked if FF is disabled2764 tracks event2765 for API-Fuzzing.latest.gitlab-ci.yml2766 has an event defined for template2767 tracks template2768 Snowplow2769 event is not tracked if FF is disabled2770 tracks event2771 for SAST-IaC.latest.gitlab-ci.yml2772 has an event defined for template2773 tracks template2774 Snowplow2775 event is not tracked if FF is disabled2776 tracks event2777 for DAST-Runner-Validation.gitlab-ci.yml2778 has an event defined for template2779 tracks template2780 Snowplow2781 event is not tracked if FF is disabled2782 tracks event2783 for Secret-Detection.gitlab-ci.yml2784 has an event defined for template2785 tracks template2786 Snowplow2787 event is not tracked if FF is disabled2788 tracks event2789 for DAST-API.latest.gitlab-ci.yml2790 has an event defined for template2791 tracks template2792 Snowplow2793 event is not tracked if FF is disabled2794 tracks event2795 for Container-Scanning.gitlab-ci.yml2796 has an event defined for template2797 tracks template2798 Snowplow2799 event is not tracked if FF is disabled2800 tracks event2801Ci::JobArtifact2802 is expected to respond to #file2803 is expected to respond to #created_at2804 is expected to respond to #updated_at2805 is expected to delegate #open to the #file object2806 is expected to delegate #exists? to the #file object2807 Associations2808 is expected to belong to project required: false2809 is expected to belong to job required: false2810 behaves like having unique enum values2811 has unique values in "file_format"2812 has unique values in "file_type"2813 has unique values in "file_location"2814 has unique values in "locked"2815 behaves like UpdateProjectStatistics2816 is expected to be a new record2817 when statistic is a counter attribute2818 when creating2819 stores pending increments for async update2820 when updating2821 stores pending increments for async update2822 avoids N + 1 queries2823 when destroying2824 stores pending increment for async update2825 when it is destroyed from the project level2826 does not update the project statistics2827 does not schedule a namespace statistics worker2828 .not_expired2829 returns artifacts that have not expired2830 .all_reports2831 is expected to be empty2832 when there are reports2833 is expected to contain exactly #<Ci::JobArtifact project_id: 177, file_type: "junit", size: 568, created_at: "2022-06-29 20:08:17.92...rmat: "gzip", file_location: nil, id: 45, job_id: 68, locked: "unknown", verification_checksum: nil> and #<Ci::JobArtifact project_id: 178, file_type: "codequality", size: 1877, created_at: "2022-06-29 20:0...ormat: "raw", file_location: nil, id: 46, job_id: 69, locked: "unknown", verification_checksum: nil>2834 .test_reports2835 when there is a test report2836 is expected to eq [#<Ci::JobArtifact project_id: 179, file_type: "junit", size: 568, created_at: "2022-06-29 20:08:19.0...mat: "gzip", file_location: nil, id: 47, job_id: 70, locked: "unknown", verification_checksum: nil>]2837 when there are no test reports2838 is expected to be empty2839 .accessibility_reports2840 when there is an accessibility report2841 is expected to eq [#<Ci::JobArtifact project_id: 181, file_type: "accessibility", size: 5977, created_at: "2022-06-29 2...rmat: "raw", file_location: nil, id: 49, job_id: 72, locked: "unknown", verification_checksum: nil>]2842 when there are no accessibility report2843 is expected to be empty2844 .coverage_reports2845 when there is a coverage report2846 is expected to eq [#<Ci::JobArtifact project_id: 182, file_type: "cobertura", size: 576, created_at: "2022-06-29 20:08:...mat: "gzip", file_location: nil, id: 50, job_id: 73, locked: "unknown", verification_checksum: nil>]2847 when there are no coverage reports2848 is expected to be empty2849 .codequality_reports2850 when there is a codequality report2851 is expected to eq [#<Ci::JobArtifact project_id: 184, file_type: "codequality", size: 1877, created_at: "2022-06-29 20:...rmat: "raw", file_location: nil, id: 52, job_id: 75, locked: "unknown", verification_checksum: nil>]2852 when there are no codequality reports2853 is expected to be empty2854 .terraform_reports2855 when there is a terraform report2856 return the job artifact2857 when there are no terraform reports2858 return the an empty array2859 .associated_file_types_for2860 file_type: "codequality", result: ["codequality"]2861 is expected to eq ["codequality"]2862 file_type: "quality", result: nil2863 is expected to eq nil2864 .erasable_file_types2865 returns a list of erasable file types2866 .erasable2867 when there is an erasable artifact2868 is expected to eq [#<Ci::JobArtifact project_id: 187, file_type: "junit", size: 568, created_at: "2022-06-29 20:08:23.8...mat: "gzip", file_location: nil, id: 55, job_id: 78, locked: "unknown", verification_checksum: nil>]2869 when there are no erasable artifacts2870 is expected to be empty2871 .downloadable2872 filters for downloadable artifacts2873 .archived_trace_exists_for?2874 when the specified job_id exists2875 is expected to be truthy2876 when the job does have archived trace2877 is expected to be falsy2878 when the specified job_id does not exist2879 is expected to be falsy2880 #stored?2881 when the file exists2882 is expected to be truthy2883 when the file does not exist2884 is expected to be falsy2885 .for_sha2886 returns job artifacts for a given pipeline sha2887 .for_job_name2888 returns job artifacts for a given job name2889 .unlocked2890 with locked pipelines2891 returns an empty array2892 with unlocked pipelines2893 returns the artifact2894 .order_expired_asc2895 returns ordered artifacts2896 .for_project2897 returns artifacts only for given project(s)2898 created_in_time_range2899 returns artifacts created in given time range2900 .created_at_before2901 returns artifacts2902 .id_before2903 returns artifacts2904 .id_after2905 returns artifacts2906 .ordered_by_id2907 returns artifacts in asc order2908 callbacks2909 #schedule_background_upload2910 when object storage is disabled2911 does not schedule the migration2912 when object storage is enabled2913 when background upload is enabled2914 schedules the model for migration2915 when background upload is disabled2916 schedules the model for migration2917 creating the artifact2918 sets the size from the file size2919 updating the artifact file2920 updates the artifact size2921 when updating any field except the file2922 the `after_commit` hook does not update `file_store`2923 validates file format2924 when archive type with zip format2925 is expected to be valid2926 when archive type without format specification2927 is expected not to be valid2928 when archive type with other formats2929 is expected not to be valid2930 is expected not to be valid2931 when metadata type with gzip format2932 is expected to be valid2933 when metadata type without format specification2934 is expected not to be valid2935 when metadata type with other formats2936 is expected not to be valid2937 is expected not to be valid2938 when junit type with gzip format2939 is expected to be valid2940 when junit type without format specification2941 is expected not to be valid2942 when junit type with other formats2943 is expected not to be valid2944 is expected not to be valid2945 when metrics type with gzip format2946 is expected to be valid2947 when metrics type without format specification2948 is expected not to be valid2949 when metrics type with other formats2950 is expected not to be valid2951 is expected not to be valid2952 when metrics_referee type with gzip format2953 is expected to be valid2954 when metrics_referee type without format specification2955 is expected not to be valid2956 when metrics_referee type with other formats2957 is expected not to be valid2958 is expected not to be valid2959 when network_referee type with gzip format2960 is expected to be valid2961 when network_referee type without format specification2962 is expected not to be valid2963 when network_referee type with other formats2964 is expected not to be valid2965 is expected not to be valid2966 when dotenv type with gzip format2967 is expected to be valid2968 when dotenv type without format specification2969 is expected not to be valid2970 when dotenv type with other formats2971 is expected not to be valid2972 is expected not to be valid2973 when cobertura type with gzip format2974 is expected to be valid2975 when cobertura type without format specification2976 is expected not to be valid2977 when cobertura type with other formats2978 is expected not to be valid2979 is expected not to be valid2980 when cluster_applications type with gzip format2981 is expected to be valid2982 when cluster_applications type without format specification2983 is expected not to be valid2984 when cluster_applications type with other formats2985 is expected not to be valid2986 is expected not to be valid2987 when lsif type with zip format2988 is expected to be valid2989 when lsif type without format specification2990 is expected not to be valid2991 when lsif type with other formats2992 is expected not to be valid2993 is expected not to be valid2994 when sast type with raw format2995 is expected to be valid2996 when sast type without format specification2997 is expected not to be valid2998 when sast type with other formats2999 is expected not to be valid3000 is expected not to be valid3001 when secret_detection type with raw format3002 is expected to be valid3003 when secret_detection type without format specification3004 is expected not to be valid3005 when secret_detection type with other formats3006 is expected not to be valid3007 is expected not to be valid3008 when dependency_scanning type with raw format3009 is expected to be valid3010 when dependency_scanning type without format specification3011 is expected not to be valid3012 when dependency_scanning type with other formats3013 is expected not to be valid3014 is expected not to be valid3015 when container_scanning type with raw format3016 is expected to be valid3017 when container_scanning type without format specification3018 is expected not to be valid3019 when container_scanning type with other formats3020 is expected not to be valid3021 is expected not to be valid3022 when cluster_image_scanning type with raw format3023 is expected to be valid3024 when cluster_image_scanning type without format specification3025 is expected not to be valid3026 when cluster_image_scanning type with other formats3027 is expected not to be valid3028 is expected not to be valid3029 when dast type with raw format3030 is expected to be valid3031 when dast type without format specification3032 is expected not to be valid3033 when dast type with other formats3034 is expected not to be valid3035 is expected not to be valid3036 when license_scanning type with raw format3037 is expected to be valid3038 when license_scanning type without format specification3039 is expected not to be valid3040 when license_scanning type with other formats3041 is expected not to be valid3042 is expected not to be valid3043 when accessibility type with raw format3044 is expected to be valid3045 when accessibility type without format specification3046 is expected not to be valid3047 when accessibility type with other formats3048 is expected not to be valid3049 is expected not to be valid3050 when codequality type with raw format3051 is expected to be valid3052 when codequality type without format specification3053 is expected not to be valid3054 when codequality type with other formats3055 is expected not to be valid3056 is expected not to be valid3057 when performance type with raw format3058 is expected to be valid3059 when performance type without format specification3060 is expected not to be valid3061 when performance type with other formats3062 is expected not to be valid3063 is expected not to be valid3064 when browser_performance type with raw format3065 is expected to be valid3066 when browser_performance type without format specification3067 is expected not to be valid3068 when browser_performance type with other formats3069 is expected not to be valid3070 is expected not to be valid3071 when load_performance type with raw format3072 is expected to be valid3073 when load_performance type without format specification3074 is expected not to be valid3075 when load_performance type with other formats3076 is expected not to be valid3077 is expected not to be valid3078 when terraform type with raw format3079 is expected to be valid3080 when terraform type without format specification3081 is expected not to be valid3082 when terraform type with other formats3083 is expected not to be valid3084 is expected not to be valid3085 when requirements type with raw format3086 is expected to be valid3087 when requirements type without format specification3088 is expected not to be valid3089 when requirements type with other formats3090 is expected not to be valid3091 is expected not to be valid3092 when coverage_fuzzing type with raw format3093 is expected to be valid3094 when coverage_fuzzing type without format specification3095 is expected not to be valid3096 when coverage_fuzzing type with other formats3097 is expected not to be valid3098 is expected not to be valid3099 when api_fuzzing type with raw format3100 is expected to be valid3101 when api_fuzzing type without format specification3102 is expected not to be valid3103 when api_fuzzing type with other formats3104 is expected not to be valid3105 is expected not to be valid3106 validates DEFAULT_FILE_NAMES3107 expects archive to be included3108 expects metadata to be included3109 expects trace to be included3110 expects junit to be included3111 expects sast to be included3112 expects dependency_scanning to be included3113 expects container_scanning to be included3114 expects dast to be included3115 expects codequality to be included3116 expects license_scanning to be included3117 expects performance to be included3118 expects metrics to be included3119 expects metrics_referee to be included3120 expects network_referee to be included3121 expects lsif to be included3122 expects dotenv to be included3123 expects cobertura to be included3124 expects terraform to be included3125 expects accessibility to be included3126 expects cluster_applications to be included3127 expects secret_detection to be included3128 expects requirements to be included3129 expects coverage_fuzzing to be included3130 expects browser_performance to be included3131 expects load_performance to be included3132 expects api_fuzzing to be included3133 expects cluster_image_scanning to be included3134 validates TYPE_AND_FORMAT_PAIRS3135 expects archive to be included3136 expects metadata to be included3137 expects trace to be included3138 expects junit to be included3139 expects sast to be included3140 expects dependency_scanning to be included3141 expects container_scanning to be included3142 expects dast to be included3143 expects codequality to be included3144 expects license_scanning to be included3145 expects performance to be included3146 expects metrics to be included3147 expects metrics_referee to be included3148 expects network_referee to be included3149 expects lsif to be included3150 expects dotenv to be included3151 expects cobertura to be included3152 expects terraform to be included3153 expects accessibility to be included3154 expects cluster_applications to be included3155 expects secret_detection to be included3156 expects requirements to be included3157 expects coverage_fuzzing to be included3158 expects browser_performance to be included3159 expects load_performance to be included3160 expects api_fuzzing to be included3161 expects cluster_image_scanning to be included3162 #file3163 the uploader api3164 is expected to respond to #store_dir3165 is expected to respond to #cache_dir3166 is expected to respond to #work_dir3167 expired?3168 when expire_at is nil3169 returns false3170 when expire_at is in the past3171 returns true3172 when expire_at is in the future3173 returns false3174 #expiring?3175 when expire_at is nil3176 returns false3177 when expire_at is in the past3178 returns false3179 when expire_at is in the future3180 returns true3181 #expire_in3182 is expected to be nil3183 when expire_at is specified3184 is expected to be within 5 of 604799.999567493185 #expire_in=3186 when assigning valid duration3187 when assigning invalid duration3188 when resetting value3189 when setting to 03190 #store_after_commit?3191 when direct upload is enabled3192 when the artifact is a trace3193 returns true3194 when the artifact is not a trace3195 returns false3196 when direct upload is disabled3197 returns false3198 file is being stored3199 when existing object has local store3200 behaves like mounted file in local store3201 is stored locally3202 when direct upload is enabled3203 when file is stored3204 behaves like mounted file in object store3205 is stored remotely3206 .file_types3207 all file types have corresponding limit3208 file_type: "archive"3209 is expected to include "ci_max_artifact_size_archive"3210 file_type: "metadata"3211 is expected to include "ci_max_artifact_size_metadata"3212 file_type: "trace"3213 is expected to include "ci_max_artifact_size_trace"3214 file_type: "junit"3215 is expected to include "ci_max_artifact_size_junit"3216 file_type: "sast"3217 is expected to include "ci_max_artifact_size_sast"3218 file_type: "dependency_scanning"3219 is expected to include "ci_max_artifact_size_dependency_scanning"3220 file_type: "container_scanning"3221 is expected to include "ci_max_artifact_size_container_scanning"3222 file_type: "dast"3223 is expected to include "ci_max_artifact_size_dast"3224 file_type: "codequality"3225 is expected to include "ci_max_artifact_size_codequality"3226 file_type: "license_scanning"3227 is expected to include "ci_max_artifact_size_license_scanning"3228 file_type: "performance"3229 is expected to include "ci_max_artifact_size_performance"3230 file_type: "metrics"3231 is expected to include "ci_max_artifact_size_metrics"3232 file_type: "metrics_referee"3233 is expected to include "ci_max_artifact_size_metrics_referee"3234 file_type: "network_referee"3235 is expected to include "ci_max_artifact_size_network_referee"3236 file_type: "lsif"3237 is expected to include "ci_max_artifact_size_lsif"3238 file_type: "dotenv"3239 is expected to include "ci_max_artifact_size_dotenv"3240 file_type: "cobertura"3241 is expected to include "ci_max_artifact_size_cobertura"3242 file_type: "terraform"3243 is expected to include "ci_max_artifact_size_terraform"3244 file_type: "accessibility"3245 is expected to include "ci_max_artifact_size_accessibility"3246 file_type: "cluster_applications"3247 is expected to include "ci_max_artifact_size_cluster_applications"3248 file_type: "secret_detection"3249 is expected to include "ci_max_artifact_size_secret_detection"3250 file_type: "requirements"3251 is expected to include "ci_max_artifact_size_requirements"3252 file_type: "coverage_fuzzing"3253 is expected to include "ci_max_artifact_size_coverage_fuzzing"3254 file_type: "browser_performance"3255 is expected to include "ci_max_artifact_size_browser_performance"3256 file_type: "load_performance"3257 is expected to include "ci_max_artifact_size_load_performance"3258 file_type: "api_fuzzing"3259 is expected to include "ci_max_artifact_size_api_fuzzing"3260 file_type: "cluster_image_scanning"3261 is expected to include "ci_max_artifact_size_cluster_image_scanning"3262 .max_artifact_size3263 when file type is supported3264 and plan limit is disabled for the given artifact type3265 behaves like basing off the project closest setting3266 is expected to eq 10737418243267 and project closest setting results to zero3268 is expected to eq 03269 and plan limit is enabled for the given artifact type3270 and plan limit is smaller than project setting3271 behaves like basing off the plan limit3272 is expected to eq 10726932483273 and plan limit is larger than project setting3274 behaves like basing off the project closest setting3275 is expected to eq 10737418243276 FastDestroyAll3277 .use_fast_destroy3278 performs cascading delete with fast_destroy_all3279 updates project statistics3280 loose foreign key on ci_job_artifacts.project_id3281 behaves like cleanup by a loose foreign key3282 cleans up (delete or nullify) the model3283Clusters::Applications::Prometheus3284 is expected to belong to cluster required: false3285 is expected to validate that :cluster cannot be empty/falsy3286 #can_uninstall?3287 calls allowed_to_uninstall?3288 #name3289 is .application_name3290 is recorded in Clusters::Cluster::APPLICATIONS3291 .association_name3292 is expected to eq :application_prometheus3293 #helm_command_module3294 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V23295 is expected to eq Gitlab::Kubernetes::Helm::V23296 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V33297 is expected to eq Gitlab::Kubernetes::Helm::V33298 #status_states3299 returns a hash of state values3300 returns an integer for installed state value3301 .available3302 is expected to contain exactly #<Clusters::Applications::Prometheus id: 1, cluster_id: 12, status: 3, version: "10.4.1", status_reas...ED], encrypted_alert_manager_token_iv: "Mji7a67fmYy2nxYf\n", healthy: nil, alert_manager_token: nil> and #<Clusters::Applications::Prometheus id: 2, cluster_id: 18, status: 5, version: "10.4.1", status_reas...ED], encrypted_alert_manager_token_iv: "j8lTpKJkV8beTu+2\n", healthy: nil, alert_manager_token: nil>3303 status state machine3304 #make_installing3305 is installing3306 #make_installed3307 is installed3308 does not update the helm version3309 the cluster has no helm installed3310 runs without errors3311 application is updating3312 is updated3313 does not update the helm version3314 the cluster has no helm installed3315 runs without errors3316 #make_errored3317 is errored3318 application is updating3319 is update_errored3320 application is uninstalling3321 is uninstall_errored3322 #make_externally_installed3323 is installed3324 helm record does not exist3325 does not create a helm record3326 helm record exists3327 does not update helm version3328 application is updated3329 is installed3330 application is errored3331 is installed3332 clears #status_reason3333 #make_externally_uninstalled3334 is uninstalled3335 application is updated3336 is uninstalled3337 application is errored3338 is uninstalled3339 clears #status_reason3340 #make_scheduled3341 is scheduled3342 when installed3343 is scheduled3344 when was errored3345 clears #status_reason3346 when was updated_errored3347 clears #status_reason3348 when was uninstall_errored3349 clears #status_reason3350 #make_uninstalling3351 is uninstalling3352 #available?3353 trait: :not_installable, available: false3354 is expected not to be available3355 trait: :installable, available: false3356 is expected not to be available3357 trait: :scheduled, available: false3358 is expected not to be available3359 trait: :installing, available: false3360 is expected not to be available3361 trait: :installed, available: true3362 is expected to be available3363 trait: :updating, available: false3364 is expected not to be available3365 trait: :updated, available: true3366 is expected to be available3367 trait: :errored, available: false3368 is expected not to be available3369 trait: :update_errored, available: false3370 is expected not to be available3371 trait: :uninstalling, available: false3372 is expected not to be available3373 trait: :uninstall_errored, available: false3374 is expected not to be available3375 trait: :uninstalled, available: false3376 is expected not to be available3377 trait: :timed_out, available: false3378 is expected not to be available3379 trait: :externally_installed, available: true3380 is expected to be available3381 update_available?3382 version is not the same as VERSION3383 is expected to be truthy3384 version is the same as VERSION3385 is expected to be falsey3386 #make_installed3387 sets the correct version of the application3388 application is updating3389 updates the version of the application3390 #make_externally_installed3391 sets to a special version3392 #uninstall_command3393 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand3394 has files3395 is rbac3396 on a non rbac enabled cluster3397 is expected not to be rbac3398 #files3399 does not include cert files3400 when cluster does not have helm installed3401 does not include cert files3402 #status3403 sets a default status3404 after_destroy3405 disables the corresponding integration3406 transition to installed3407 enables the corresponding integration3408 transition to externally_installed3409 enables the corresponding integration3410 transition to updating3411 sets last_update_started_at to now3412 #managed_prometheus?3413 is expected to be truthy3414 externally installed3415 is expected to be falsey3416 uninstalled3417 is expected to be falsey3418 #can_uninstall?3419 is expected to be truthy3420 #prometheus_client3421 cluster is nil3422 returns nil3423 cluster doesn't have kubeclient3424 returns nil3425 cluster has kubeclient3426 creates proxy prometheus_client3427 merges proxy_url, options and headers from kube client with prometheus_client options3428 when cluster is not reachable3429 behaves like exception caught for prometheus client3430 returns nil3431 when there is a socket error while contacting cluster3432 behaves like exception caught for prometheus client3433 returns nil3434 behaves like exception caught for prometheus client3435 returns nil3436 when the network is unreachable3437 behaves like exception caught for prometheus client3438 returns nil3439 #install_command3440 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::InstallCommand3441 is initialized with 3 arguments3442 does not install knative metrics3443 on a non rbac enabled cluster3444 is expected not to be rbac3445 application failed to install previously3446 is initialized with the locked version3447 with knative installed3448 installs knative metrics3449 #uninstall_command3450 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand3451 has the application name3452 has files3453 is rbac3454 #predelete3455 deletes knative metrics3456 on a non rbac enabled cluster3457 is expected not to be rbac3458 #patch_command3459 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::PatchCommand3460 is initialized with 3 arguments3461 #update_in_progress?3462 when app is updating3463 returns true3464 #update_errored?3465 when app errored3466 returns true3467 #files3468 includes prometheus valid values3469 #files_with_replaced_values3470 does not modify #files3471 returns values.yaml with replaced values3472 uses values from #files, except for values.yaml3473 #configured?3474 when a kubenetes client is present3475 is expected to be truthy3476 when it is not availalble3477 is expected to be falsey3478 when the kubernetes URL is blocked3479 is expected to be falsey3480 when a kubenetes client is not present3481 is expected to be falsy3482 #updated_since?3483 when app does not have status failed3484 returns true when last update started after the timestamp3485 returns false when last update started before the timestamp3486 when app has status failed3487 returns false when last update started after the timestamp3488 alert manager token3489 is autogenerated on creation3490Clusters::Applications::Jupyter3491 is expected to belong to cluster required: false3492 is expected to validate that :cluster cannot be empty/falsy3493 is expected to belong to oauth_application required: false3494 #can_uninstall?3495 calls allowed_to_uninstall?3496 #name3497 is .application_name3498 is recorded in Clusters::Cluster::APPLICATIONS3499 .association_name3500 is expected to eq :application_jupyter3501 #helm_command_module3502 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V23503 is expected to eq Gitlab::Kubernetes::Helm::V23504 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V33505 is expected to eq Gitlab::Kubernetes::Helm::V33506 #status_states3507 returns a hash of state values3508 returns an integer for installed state value3509 .available3510 is expected to contain exactly #<Clusters::Applications::Jupyter id: 1, cluster_id: 389, oauth_application_id: 1, status: 3, version...29 20:11:09.354594343 +0000", updated_at: "2022-06-29 20:11:09.354594343 +0000", status_reason: nil> and #<Clusters::Applications::Jupyter id: 2, cluster_id: 395, oauth_application_id: 2, status: 5, version...29 20:11:10.944988881 +0000", updated_at: "2022-06-29 20:11:10.944988881 +0000", status_reason: nil>3511 status state machine3512 #make_installing3513 is installing3514 #make_installed3515 is installed3516 does not update the helm version3517 the cluster has no helm installed3518 runs without errors3519 application is updating3520 is updated3521 does not update the helm version3522 the cluster has no helm installed3523 runs without errors3524 #make_errored3525 is errored3526 application is updating3527 is update_errored3528 application is uninstalling3529 is uninstall_errored3530 #make_externally_installed3531 is installed3532 helm record does not exist3533 does not create a helm record3534 helm record exists3535 does not update helm version3536 application is updated3537 is installed3538 application is errored3539 is installed3540 clears #status_reason3541 #make_externally_uninstalled3542 is uninstalled3543 application is updated3544 is uninstalled3545 application is errored3546 is uninstalled3547 clears #status_reason3548 #make_scheduled3549 is scheduled3550 when installed3551 is scheduled3552 when was errored3553 clears #status_reason3554 when was updated_errored3555 clears #status_reason3556 when was uninstall_errored3557 clears #status_reason3558 #make_uninstalling3559 is uninstalling3560 #available?3561 trait: :not_installable, available: false3562 is expected not to be available3563 trait: :installable, available: false3564 is expected not to be available3565 trait: :scheduled, available: false3566 is expected not to be available3567 trait: :installing, available: false3568 is expected not to be available3569 trait: :installed, available: true3570 is expected to be available3571 trait: :updating, available: false3572 is expected not to be available3573 trait: :updated, available: true3574 is expected to be available3575 trait: :errored, available: false3576 is expected not to be available3577 trait: :update_errored, available: false3578 is expected not to be available3579 trait: :uninstalling, available: false3580 is expected not to be available3581 trait: :uninstall_errored, available: false3582 is expected not to be available3583 trait: :uninstalled, available: false3584 is expected not to be available3585 trait: :timed_out, available: false3586 is expected not to be available3587 trait: :externally_installed, available: true3588 is expected to be available3589 update_available?3590 version is not the same as VERSION3591 is expected to be truthy3592 version is the same as VERSION3593 is expected to be falsey3594 #make_installed3595 sets the correct version of the application3596 application is updating3597 updates the version of the application3598 #make_externally_installed3599 sets to a special version3600 #uninstall_command3601 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand3602 has files3603 is rbac3604 on a non rbac enabled cluster3605 is expected not to be rbac3606 #files3607 does not include cert files3608 when cluster does not have helm installed3609 does not include cert files3610 #can_uninstall?3611 is expected to be truthy3612 #set_initial_status3613 when ingress is not installed3614 is expected to be not installable3615 when ingress is installed and external_ip is assigned3616 is expected to be installable3617 when ingress is installed and external_hostname is assigned3618 is expected to be installable3619 #install_command3620 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::InstallCommand3621 is initialized with 4 arguments3622 on a non rbac enabled cluster3623 is expected not to be rbac3624 application failed to install previously3625 is initialized with the locked version3626 #files3627 when cluster belongs to a project3628 includes valid values3629 when cluster belongs to a group3630 includes valid values3631Issues::MoveService3632 #execute3633 issue movable3634 creates resource state event3635 generic issue3636 creates a new issue in a new project3637 copies issue title3638 copies issue description3639 adds system note to old issue at the end3640 adds system note to new issue at the end3641 closes old issue3642 persists new issue3643 persists all changes3644 preserves author3645 creates a new internal id for issue3646 marks issue as moved3647 marks issue as closed3648 preserves create time3649 issue with award emoji3650 copies the award emoji3651 issue with milestone3652 does not create extra milestone events3653 issue with due date3654 does not create extra system notes3655 issue with assignee3656 preserves assignee with access to the new issue3657 ignores assignee without access to the new issue3658 issue with contacts3659 preserves contacts3660 when moving to another root group3661 does not preserve contacts3662 moving to same project3663 raises error3664 project issue hooks3665 executes project issue hooks3666 issue with notes3667 copies existing notes in order3668 issue with a design3669 calls CopyDesignCollection::QueueService3670 logs if QueueService returns an error3671 copies the design and its notes3672 issue relative position3673 behaves like copy or reset relative position3674 when moved to a project within same group hierarchy3675 does not reset the relative_position3676 when moved to a project in a different group hierarchy3677 does reset the relative_position3678 issue with escalation status3679 keeps the escalation status3680 move permissions3681 user is reporter in both projects3682 is expected not to raise Exception3683 user is reporter only in new project3684 is expected to raise StandardError with message matching /permissions/3685 user is reporter only in old project3686 is expected to raise StandardError with message matching /permissions/3687 user is reporter in one project and guest in another3688 is expected to raise StandardError with message matching /permissions/3689 issue has already been moved3690 is expected to raise StandardError with message matching /permissions/3691 issue is not persisted3692 is expected to raise StandardError with message matching /permissions/3693 #rewrite_related_issues3694 multiple related issues3695 when admin mode is enabled3696 moves all related issues and retains permissions3697 when admin mode is disabled3698 moves all related issues and retains permissions3699 updating sent notifications3700 when issue is from service desk3701 updates moved issue sent notifications3702 does not update other issues sent notifications3703 when issue is not from service desk3704 does not update sent notifications3705Milestone3706 behaves like a timebox3707 modules3708 with a project3709 behaves like AtomicInternalId3710 .has_internal_id3711 Module inclusion3712 is expected to includes the AtomicInternalId module3713 Validation3714 when presence validation is required3715 when creating an object3716 raises an error if the internal id is blank3717 when updating an object3718 raises an error if the internal id is blank3719 when presence validation is not required3720 when creating an object3721 does not raise an error if the internal id is blank (PENDING: No reason given)3722 when updating an object3723 does not raise an error if the internal id is blank (PENDING: No reason given)3724 Creating an instance3725 saves a new instance properly3726 internal id generation3727 calls InternalId.generate_next and sets internal id attribute3728 does not overwrite an existing internal id3729 when the instance has an internal ID set3730 calls InternalId.update_last_value and sets the `last_value` to that of the instance3731 unsetting the instance internal id on rollback3732 when the internal id has been changed3733 when the internal id is automatically set3734 clears it on the instance3735 when the internal id is manually set3736 does not clear it on the instance3737 when the internal id has not been changed3738 preserves the value on the instance3739 supply of internal ids3740 provides a persistent supply of IID values, sensitive to the current state3741 #reset_scope_internal_id_attribute3742 rewinds the allocated IID3743 allocates the same IID3744 with a group3745 behaves like AtomicInternalId3746 .has_internal_id3747 Module inclusion3748 is expected to includes the AtomicInternalId module3749 Validation3750 when presence validation is required3751 when creating an object3752 raises an error if the internal id is blank3753 when updating an object3754 raises an error if the internal id is blank3755 when presence validation is not required3756 when creating an object3757 does not raise an error if the internal id is blank (PENDING: No reason given)3758 when updating an object3759 does not raise an error if the internal id is blank (PENDING: No reason given)3760 Creating an instance3761 saves a new instance properly3762 internal id generation3763 calls InternalId.generate_next and sets internal id attribute3764 does not overwrite an existing internal id3765 when the instance has an internal ID set3766 calls InternalId.update_last_value and sets the `last_value` to that of the instance3767 unsetting the instance internal id on rollback3768 when the internal id has been changed3769 when the internal id is automatically set3770 clears it on the instance3771 when the internal id is manually set3772 does not clear it on the instance3773 when the internal id has not been changed3774 preserves the value on the instance3775 supply of internal ids3776 provides a persistent supply of IID values, sensitive to the current state3777 #reset_scope_internal_id_attribute3778 rewinds the allocated IID3779 allocates the same IID3780 Validation3781 start_date3782 adds an error when start_date is greater then due_date3783 adds an error when start_date is greater than 9999-12-313784 due_date3785 adds an error when due_date is greater than 9999-12-313786 #timebox_type_check3787 is invalid if it has both project_id and group_id3788 Associations3789 is expected to belong to project required: false3790 is expected to belong to group required: false3791 is expected to have many issues3792 is expected to have many merge_requests3793 is expected to have many labels through issues3794 #timebox_name3795 returns the name of the model3796 #project_timebox?3797 when project_id is present3798 returns true3799 when project_id is not present3800 returns false3801 #group_timebox?3802 when group_id is present3803 returns true3804 when group_id is not present3805 returns false3806 #safe_title3807 normalizes the title for use as a slug3808 #resource_parent3809 when group is present3810 returns the group3811 when project is present3812 returns the project3813 #title3814 sanitizes title3815 #merge_requests_enabled?3816 per project3817 is true for projects with MRs enabled3818 is false for projects with MRs disabled3819 is false for projects with repository disabled3820 per group3821 is always true for groups, for performance reasons3822 #to_ability_name3823 returns timebox3824 .within_timeframe3825 can find overlapping timeboxes3826 #uniqueness_of_title3827 per project3828 does not accept the same title in a project twice3829 accepts the same title in another project3830 per group3831 does not accept the same title in a group twice3832 does not accept the same title of a child project timebox3833 MilestoneStruct#serializable_hash3834 presents the predefined milestone as a hash3835 Validation3836 title3837 is expected to validate that :title cannot be empty/falsy3838 is invalid if title would be empty after sanitation3839 milestone_releases3840 when it is tied to a release for another project3841 creates a validation error3842 when it is tied to a release for the same project3843 is valid3844 Associations3845 is expected to have many releases3846 is expected to have many milestone_releases3847 .predefined_id?3848 returns true for a predefined Milestone ID3849 returns false for a Milestone ID that is not predefined3850 .order_by_name_asc3851 sorts by name ascending3852 .reorder_by_due_date_asc3853 reorders the input relation3854 behaves like within_timeframe scope3855 .within_timeframe3856 returns resources with start_date and/or end_date between timeframe3857 returns resources which starts before the timeframe3858 returns resources which ends after the timeframe3859 #percent_complete3860 does not count open issues3861 counts closed issues3862 recovers from dividing by zero3863 #expired? and #expired3864 expired3865 returns true when due_date is in the past3866 not expired3867 returns false when due_date is in the future3868 #upcoming?3869 returns true when start_date is in the future3870 returns false when start_date is in the past3871 #can_be_closed?3872 returns true if milestone active and all nested issues closed3873 returns false if milestone active and not all nested issues closed3874 #to_ability_name3875 returns milestone3876 .search3877 returns milestones with a matching title3878 returns milestones with a partially matching title3879 returns milestones with a matching title regardless of the casing3880 returns milestones with a matching description3881 returns milestones with a partially matching description3882 returns milestones with a matching description regardless of the casing3883 #search_title3884 returns milestones with a matching title3885 returns milestones with a partially matching title3886 returns milestones with a matching title regardless of the casing3887 searches only on the title and ignores milestones with a matching description3888 behaves like #for_projects_and_groups3889 #for_projects_and_groups3890 returns no records if projects and groups are nil3891 ids as params3892 behaves like filters by projects and groups3893 returns milestones filtered by project3894 returns milestones filtered by group3895 returns milestones filtered by both project and group3896 relations as params3897 behaves like filters by projects and groups3898 returns milestones filtered by project3899 returns milestones filtered by group3900 returns milestones filtered by both project and group3901 objects as params3902 behaves like filters by projects and groups3903 returns milestones filtered by project3904 returns milestones filtered by group3905 returns milestones filtered by both project and group3906 .upcoming_ids3907 returns the next upcoming open milestone ID for each project and group3908 when the projects and groups have no open upcoming milestones3909 returns no results3910 #to_reference3911 for a project milestone3912 returns a String reference to the object3913 returns a reference by name when the format is set to :name3914 supports a cross-project reference3915 for a group milestone3916 returns a group milestone reference with a default format3917 returns a reference by name when the format is set to :name3918 does supports cross-project references within a group3919 raises an error when using iid format3920 #reference_link_text3921 returns the title with the reference prefix3922 #participants3923 returns participants without duplicates3924 .sort_with_expired_last3925 ordering by due_date ascending3926 sorts by due date in ascending order (ties broken by id in desc order)3927 ordering by due_date descending3928 sorts by due date in descending order (ties broken by id in desc order)3929 .sort_by_attribute3930 ordering by name ascending3931 sorts by title ascending3932 ordering by name descending3933 sorts by title descending3934 .states_count3935 when the projects have milestones3936 returns the quantity of milestones in each possible state3937 when the projects do not have milestones3938 returns 0 as the quantity of global milestones in each state3939 .reference_pattern3940 is expected to match "gitlab-org/gitlab-ce%123"3941 is expected to match "gitlab-org/gitlab-ce%\"my-milestone\""3942 .link_reference_pattern3943 is expected to match "http://localhost/gitlab-org/gitlab-foss/milestones/123"3944 is expected to match "http://localhost/gitlab-org/gitlab-foss/-/milestones/123"3945 is expected not to match "http://localhost/gitlab-org/gitlab-foss/issues/123"3946 is expected not to match "gitlab-org/gitlab-ce/milestones/123"3947 #parent3948 with group3949 returns the expected parent3950 with project3951 returns the expected parent3952 #subgroup_milestone3953 parent is subgroup3954 returns true3955 parent is not subgroup3956 returns false3957Gitlab::Database::RenameReservedPathsMigration::V1::RenameBase3958 #remove_last_occurrence3959 removes only the last occurrence of a string3960 #remove_cached_html_for_projects3961 removes description_html from projects3962 removes issue descriptions3963 removes merge request descriptions3964 removes note html3965 removes milestone description3966 #rename_path_for_routable3967 for personal namespaces3968 renames namespaces called the-path3969 renames the route to the namespace3970 renames the route for projects of the namespace3971 returns the old & the new path3972 doesn't rename routes that start with a similar name3973 for groups3974 the-path group -> subgroup -> the-path0 project3975 updates the route of the project correctly3976 for projects3977 renames the project called `the-path`3978 renames the route for the project3979 returns the old & new path3980 #perform_rename3981 for personal namespaces3982 renames the path3983 for groups3984 renames all the routes for the group3985 #move_pages3986 moves the pages directory3987 #move_uploads3988 moves subdirectories in the uploads folder3989 doesn't move uploads when they are stored in object storage3990 #move_folders3991 moves a folder with files3992 #track_rename3993 tracks a rename in redis3994 #reverts_for_type3995 yields for each tracked rename3996 keeps the revert in redis if it failed3997EventCreateService3998 Issues3999 #open_issue4000 is expected to be truthy4001 creates new event4002 #close_issue4003 is expected to be truthy4004 creates new event4005 #reopen_issue4006 is expected to be truthy4007 creates new event4008 Merge Requests4009 #open_mr4010 is expected to be truthy4011 creates new event4012 behaves like it records the event in the event counter4013 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14014 behaves like Snowplow event4015 is not emitted if FF is disabled4016 is emitted4017 #close_mr4018 is expected to be truthy4019 creates new event4020 behaves like it records the event in the event counter4021 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14022 behaves like Snowplow event4023 is not emitted if FF is disabled4024 is emitted4025 #merge_mr4026 is expected to be truthy4027 creates new event4028 behaves like it records the event in the event counter4029 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14030 behaves like Snowplow event4031 is not emitted if FF is disabled4032 is emitted4033 #reopen_mr4034 is expected to be truthy4035 creates new event4036 #approve_mr4037 is expected to be truthy4038 creates new event4039 Milestone4040 #open_milestone4041 is expected to be truthy4042 creates new event4043 #close_mr4044 is expected to be truthy4045 creates new event4046 #destroy_mr4047 is expected to be truthy4048 creates new event4049 #wiki_event4050 action: :created4051DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4052 creates the event4053DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4054DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4055 is idempotent4056 behaves like it records the event in the event counter4057DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4058 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14059 action: :updated4060DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4061 creates the event4062DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4063DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4064 is idempotent4065 behaves like it records the event in the event counter4066DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4067 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14068 action: :destroyed4069DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4070 creates the event4071DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4072DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4073 is idempotent4074 behaves like it records the event in the event counter4075DEPRECATION 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 wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4076 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14077 The action is created4078 raises an error4079 The action is updated4080 raises an error4081 The action is closed4082 raises an error4083 The action is reopened4084 raises an error4085 The action is pushed4086 raises an error4087 The action is commented4088 raises an error4089 The action is merged4090 raises an error4091 The action is joined4092 raises an error4093 The action is left4094 raises an error4095 The action is destroyed4096 raises an error4097 The action is expired4098 raises an error4099 The action is approved4100 raises an error4101 #push4102 behaves like service for creating a push event4103 creates a new event4104 creates the push event payload4105 updates user last activity4106 caches the last push event for the user4107 does not create any event data when an error is raised4108 behaves like it records the event in the event counter4109 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14110 behaves like Snowplow event4111 is not emitted if FF is disabled4112 is emitted4113 #bulk_push4114 behaves like service for creating a push event4115 creates a new event4116 creates the push event payload4117 updates user last activity4118 caches the last push event for the user4119 does not create any event data when an error is raised4120 behaves like it records the event in the event counter4121 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14122 behaves like Snowplow event4123 is not emitted if FF is disabled4124 is emitted4125 Project4126 #join_project4127 is expected to be truthy4128 is expected to change `Event.count` from 0 to 14129 #expired_leave_project4130 is expected to be truthy4131 is expected to change `Event.count` from 0 to 14132 design events4133 #save_designs4134 is expected to change `Event.count` by 84135 is expected not to exceed query limit 24136 creates 3 created design events4137 creates 5 created design events4138 records correct create payload with Snowplow event4139 records correct update payload with Snowplow event4140 behaves like it records the event in the event counter4141 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14142 when FF is disabled4143 doesnt emit snowwplow events4144 #destroy_designs4145 is expected to change `Event.count` by 54146 is expected not to exceed query limit 24147 creates 5 destroyed design events4148 records correct payload with Snowplow event4149 behaves like it records the event in the event counter4150 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14151 when FF is disabled4152 doesnt emit snowwplow events4153 #leave_note4154 is expected to be truthy4155 creates new event4156 when it is a diff note4157 behaves like it records the event in the event counter4158 is expected to change `Gitlab::UsageDataCounters::TrackUniqueEvents.count_unique_events(**tracking_params)` by 14159 behaves like Snowplow event4160 is not emitted if FF is disabled4161 is emitted4162 when it is not a diff note4163 does not change the unique action counter4164Banzai::Filter::References::MilestoneReferenceFilter4165 requires project context4166 group context4167 when project milestone4168 links to a valid reference4169 ignores internal references4170 when group milestone4171 ignores internal references4172 for subgroups4173 links to a valid reference of subgroup and group milestones4174 when referencing both project and group milestones4175 links to valid references4176 when milestone is open4177 project milestones4178 ignores valid references contained inside 'pre' element4179 ignores valid references contained inside 'code' element4180 ignores valid references contained inside 'a' element4181 ignores valid references contained inside 'style' element4182 includes default classes4183 includes a data-project attribute4184 includes a data-milestone attribute4185 supports an :only_path context4186 behaves like Integer-based references4187 links to a valid reference4188 links with adjacent text4189 ignores invalid milestone IIDs4190 behaves like String-based single-word references4191 links to a valid reference4192 links with adjacent text4193 links with adjacent html tags4194 ignores invalid milestone names4195 behaves like String-based multi-word references in quotes4196 links to a valid reference4197 links with adjacent text4198 ignores invalid milestone names4199 behaves like referencing a milestone in a link href4200 links to a valid reference4201 links with adjacent text4202 includes a data-project attribute4203 includes a data-milestone attribute4204 behaves like linking to a milestone as the entire link4205 replaces the link text with the milestone reference4206 includes a data-project attribute4207 includes a data-milestone attribute4208 behaves like cross-project / cross-namespace complete reference4209 points to referenced project milestone page4210 link has valid text4211 has valid text4212 escapes the name attribute4213 behaves like cross-project / same-namespace complete reference4214 points to referenced project milestone page4215 link has valid text4216 has valid text4217 escapes the name attribute4218 behaves like cross project shorthand reference4219 points to referenced project milestone page4220 link has valid text4221 has valid text4222 escapes the name attribute4223 behaves like references with HTML entities4224 links to a valid reference4225 ignores invalid milestone names and escapes entities4226 behaves like HTML text with references4227 preserves escaped HTML text and adds valid references4228 preserves escaped HTML text if there are no valid references4229 group milestones4230 ignores valid references contained inside 'pre' element4231 ignores valid references contained inside 'code' element4232 ignores valid references contained inside 'a' element4233 ignores valid references contained inside 'style' element4234 includes default classes4235 includes a data-project attribute4236 includes a data-milestone attribute4237 supports an :only_path context4238 does not support references by IID4239 does not support references by link4240 does not support cross-project references4241 supports parent group references4242 behaves like String-based single-word references4243 links to a valid reference4244 links with adjacent text4245 links with adjacent html tags4246 ignores invalid milestone names4247 behaves like String-based multi-word references in quotes4248 links to a valid reference4249 links with adjacent text4250 ignores invalid milestone names4251 behaves like referencing a milestone in a link href4252 links to a valid reference4253 links with adjacent text4254 includes a data-project attribute4255 includes a data-milestone attribute4256 behaves like references with HTML entities4257 links to a valid reference4258 ignores invalid milestone names and escapes entities4259 behaves like HTML text with references4260 preserves escaped HTML text and adds valid references4261 preserves escaped HTML text if there are no valid references4262 when milestone is closed4263 project milestones4264 ignores valid references contained inside 'pre' element4265 ignores valid references contained inside 'code' element4266 ignores valid references contained inside 'a' element4267 ignores valid references contained inside 'style' element4268 includes default classes4269 includes a data-project attribute4270 includes a data-milestone attribute4271 supports an :only_path context4272 behaves like Integer-based references4273 links to a valid reference4274 links with adjacent text4275 ignores invalid milestone IIDs4276 behaves like String-based single-word references4277 links to a valid reference4278 links with adjacent text4279 links with adjacent html tags4280 ignores invalid milestone names4281 behaves like String-based multi-word references in quotes4282 links to a valid reference4283 links with adjacent text4284 ignores invalid milestone names4285 behaves like referencing a milestone in a link href4286 links to a valid reference4287 links with adjacent text4288 includes a data-project attribute4289 includes a data-milestone attribute4290 behaves like linking to a milestone as the entire link4291 replaces the link text with the milestone reference4292 includes a data-project attribute4293 includes a data-milestone attribute4294 behaves like cross-project / cross-namespace complete reference4295 points to referenced project milestone page4296 link has valid text4297 has valid text4298 escapes the name attribute4299 behaves like cross-project / same-namespace complete reference4300 points to referenced project milestone page4301 link has valid text4302 has valid text4303 escapes the name attribute4304 behaves like cross project shorthand reference4305 points to referenced project milestone page4306 link has valid text4307 has valid text4308 escapes the name attribute4309 behaves like references with HTML entities4310 links to a valid reference4311 ignores invalid milestone names and escapes entities4312 behaves like HTML text with references4313 preserves escaped HTML text and adds valid references4314 preserves escaped HTML text if there are no valid references4315 group milestones4316 ignores valid references contained inside 'pre' element4317 ignores valid references contained inside 'code' element4318 ignores valid references contained inside 'a' element4319 ignores valid references contained inside 'style' element4320 includes default classes4321 includes a data-project attribute4322 includes a data-milestone attribute4323 supports an :only_path context4324 does not support references by IID4325 does not support references by link4326 does not support cross-project references4327 supports parent group references4328 behaves like String-based single-word references4329 links to a valid reference4330 links with adjacent text4331 links with adjacent html tags4332 ignores invalid milestone names4333 behaves like String-based multi-word references in quotes4334 links to a valid reference4335 links with adjacent text4336 ignores invalid milestone names4337 behaves like referencing a milestone in a link href4338 links to a valid reference4339 links with adjacent text4340 includes a data-project attribute4341 includes a data-milestone attribute4342 behaves like references with HTML entities4343 links to a valid reference4344 ignores invalid milestone names and escapes entities4345 behaves like HTML text with references4346 preserves escaped HTML text and adds valid references4347 preserves escaped HTML text if there are no valid references4348 checking N+14349 does not have N+1 per multiple references per project4350 has N+1 for multiple unique project/group references4351Snippet4352 modules4353 is expected to includes the Gitlab::VisibilityLevel module4354 is expected to includes the Participable module4355 is expected to includes the Referable module4356 is expected to includes the Sortable module4357 is expected to includes the Awardable module4358 associations4359 is expected to belong to author class_name => User required: false4360 is expected to belong to project required: false4361 is expected to have many notes dependent => destroy4362 is expected to have many award_emoji dependent => destroy4363 is expected to have many user_mentions class_name => SnippetUserMention4364 is expected to have one snippet_repository4365 is expected to have one statistics class_name => SnippetStatistics dependent => destroy4366 is expected to have many repository_storage_moves class_name => Snippets::RepositoryStorageMove inverse_of => container4367 validation4368 is expected to validate that :author cannot be empty/falsy4369 is expected to validate that :title cannot be empty/falsy4370 is expected to validate that the length of :title is at most 2554371 is expected to validate that the length of :file_name is at most 2554372 is expected to validate that :content cannot be empty/falsy4373 is expected to validate that :visibility_level is either ‹0›, ‹10›, or ‹20›4374 is expected to validate that the length of :content is at most 1, producing a custom validation error on failure4375 content validations4376 with existing snippets4377 does not raise a validation error if the content is not changed4378 raises and error if the content is changed and the size is bigger than limit4379 with new snippets4380 is valid when content is smaller than the limit4381 raises error when content is bigger than setting limit4382 callbacks4383 creates snippet statistics when the snippet is created4384 #to_reference4385 when snippet belongs to a project4386 returns a String reference to the object4387 supports a cross-project reference4388 when snippet does not belong to a project4389 returns a String reference to the object4390 still returns shortest reference when project arg present4391 #file_name4392 file_name is nil4393 returns an empty string4394 file_name is not nil4395 returns the file_name4396 #content_html_invalidated?4397 invalidates the HTML cache of content when the filename changes4398 .search4399 returns snippets with a matching title4400 returns snippets with a partially matching title4401 returns snippets with a matching title regardless of the casing4402 returns snippets with a matching file name4403 returns snippets with a partially matching file name4404 returns snippets with a matching file name regardless of the casing4405 returns snippets with a matching description4406 when default snippet visibility set to internal4407 attribute_name: :visibility, value: "private"4408 sets the visibility level4409 attribute_name: :visibility_level, value: 04410 sets the visibility level4411 attribute_name: "visibility", value: "private"4412 sets the visibility level4413 attribute_name: "visibility_level", value: 04414 sets the visibility level4415 .with_optional_visibility4416 when a visibility level is provided4417 returns snippets with the given visibility4418 when a visibility level is not provided4419 returns all snippets4420 .only_personal_snippets4421 returns snippets not associated with any projects4422 .only_include_projects_visible_to4423 when a user is provided4424 returns snippets visible to the user4425 when a user is not provided4426 returns snippets visible to anonymous users4427 only_include_projects_with_snippets_enabled4428 includes snippets for projects with snippets enabled4429 when snippet_access_level is private4430 when the include_private option is enabled4431 includes snippets for projects with snippets set to private4432 when the include_private option is not enabled4433 does not include snippets for projects that have snippets set to private4434 .only_include_authorized_projects4435 only includes snippets for projects the user is authorized to see4436 .for_project_with_user4437 when a user is provided4438 returns an empty collection if the user can not view the snippets4439 returns the snippets if the user is a member of the project4440 returns public snippets for a public project the user is not a member of4441 when a user is not provided4442 returns an empty collection for a private project4443 returns public snippets for a public project4444 .visible_to_or_authored_by4445 returns snippets visible to the user4446 .find_by_project_title_trunc_created_at4447 returns a record if arguments match4448 returns nil if project does not match4449 returns nil if title does not match4450 returns nil if created_at does not match4451 #participants4452 includes the snippet author and note authors4453 #check_for_spam4454 when public and spammable attributes changed4455 returns true4456 when private4457 returns false4458 returns true when switching to public4459 when spammable attributes have not changed4460 returns false4461 #blob4462 returns a blob representing the snippet data4463 #all_files4464 lists files from the repository with the default branch4465 #blobs4466 when repository does not exist4467 returns empty array4468 when repository exists4469 returns array of blobs4470 when file does not exist4471 removes nil values from the blobs array4472 when some blobs are not retrievable from repository4473 does not include unretrievable blobs4474 #to_json4475 excludes secret_token from generated json4476 does not override existing exclude option value4477 #storage4478 stores snippet in @snippets dir4479 #track_snippet_repository4480 when a snippet repository entry does not exist4481 creates a new entry4482 tracks the snippet storage location4483 when a tracking entry exists4484 does not create a new entry in the database4485 updates the snippet storage location4486 #create_repository4487 creates the repository4488 sets the default branch4489 tracks snippet repository4490 sets same shard in snippet repository as in the repository storage4491 when repository exists4492 does not try to create repository4493 when snippet_repository exists4494 does not create a new snippet repository4495 when snippet_repository does not exist4496 creates a snippet_repository4497 #repository_storage4498 returns repository storage from ApplicationSetting4499 when snippet_project is already created4500 returns repository_storage from snippet_project4501 #repository_size_checker4502 sets up size checker4503 #can_cache_field?4504 field: :title, file_name: nil, result: true4505 is expected to eq true4506 field: :title, file_name: "foo.bar", result: true4507 is expected to eq true4508 field: :description, file_name: nil, result: true4509 is expected to eq true4510 field: :description, file_name: "foo.bar", result: true4511 is expected to eq true4512 field: :content, file_name: nil, result: false4513 is expected to eq false4514 field: :content, file_name: "bar.foo", result: false4515 is expected to eq false4516 field: :content, file_name: "markdown.md", result: true4517 is expected to eq true4518 #url_to_repo4519 with personal snippet4520 is expected to eq "git@localhost:snippets/57.git"4521 with project snippet4522 is expected to eq "git@localhost:namespace1046/project1224/snippets/58.git"4523 .max_file_limit4524 returns 104525 #list_files4526 when snippet has a repository4527 lists files from the repository with the ref4528 when ref is nil4529 lists files from the repository from the deafult_branch4530 when snippet does not have a repository4531 returns an empty array4532 #multiple_files?4533 when snippet has multiple files4534 is expected to be truthy4535 when snippet does not have multiple files4536 is expected to be falsey4537 when the snippet does not have a repository4538 is expected to be falsey4539 #git_transfer_in_progress?4540 returns true when there are git transfers4541 returns false when there are not git transfers4542 behaves like can move repository storage4543 #set_repository_read_only!4544 makes the repository read-only4545 raises an error if the project is already read-only4546 raises an error when there is an existing git transfer in progress4547 skip_git_transfer_check is true4548 makes the project read-only when git transfers are in progress4549 #set_repository_writable!4550 sets repository_read_only to false4551 #reference_counter4552 returns a Gitlab::ReferenceCounter object4553ProjectPresenter4554 #license_short_name4555 when project.repository has a license_key4556 returns the nickname of the license if present4557 returns the name of the license if nickname is not present4558 when project.repository has no license_key but a license_blob4559 returns LICENSE4560 #default_view4561 user not signed in4562 when repository is empty4563 returns wiki if user has repository access and can read wiki, which exists4564 returns activity if user has repository access and can read wiki, which does not exist4565 returns issues if user does not have repository access, but can read issues4566 returns activity if user can read neither wiki nor issues4567 when repository is not empty4568 returns files and readme if user has repository access4569 returns wiki if user does not have repository access and can read wiki, which exists4570 returns activity if user does not have repository or wiki access4571 returns releases anchor4572 user signed in4573 when the user is allowed to see the code4574 returns the project view4575 with wikis enabled and the right policy for the user4576 returns wiki if the user has the right policy and the wiki exists4577 returns activity if the user does not have the right policy4578 with issues as a feature available4579 return issues4580 with no activity, no wikies and no issues4581 returns activity as default4582 #can_current_user_push_code?4583 empty repo4584 returns true if user can push_code4585 returns false if user cannot push_code4586 not empty repo4587 returns true if user can push to default branch4588 returns false if default branch is protected4589 if no current user4590 returns false4591 statistics anchors (empty repo)4592 #storage_anchor_data4593 returns storage data4594 #releases_anchor_data4595 does not return release count4596 #commits_anchor_data4597 returns commits data4598 #branches_anchor_data4599 returns branches data4600 #tags_anchor_data4601 returns tags data4602 statistics anchors4603 #storage_anchor_data4604 returns storage data without usage quotas link for non-admin users4605 returns storage data with usage quotas link for admin users4606 #releases_anchor_data4607 returns release count if user can read release4608 returns nil if user cannot read release4609 user not signed in4610 returns nil if user is signed out4611 #commits_anchor_data4612 returns commits data4613 #branches_anchor_data4614 returns branches data4615 #tags_anchor_data4616 returns tags data4617 #new_file_anchor_data4618 returns new file data if user can push4619 returns nil if user cannot push4620 when the project is empty4621 is empty for a developer4622 #readme_anchor_data4623 when user can push and README does not exists4624 returns anchor data4625 when README exists4626 returns anchor data4627 #changelog_anchor_data4628 when user can push and CHANGELOG does not exist4629 returns anchor data4630 when CHANGELOG exists4631 returns anchor data4632 #license_anchor_data4633 when user can push and LICENSE does not exist4634 returns anchor data4635 when LICENSE exists4636 returns anchor data4637 #contribution_guide_anchor_data4638 when user can push and CONTRIBUTING does not exist4639 returns anchor data4640 when CONTRIBUTING exists4641 returns anchor data4642 #autodevops_anchor_data4643 when Auto Devops is enabled4644 returns anchor data4645 when user can admin pipeline and CI yml does not exist4646 returns anchor data4647 #kubernetes_cluster_anchor_data4648 when user can create Kubernetes cluster4649 returns link to cluster if only one exists4650 returns link to clusters page if more than one exists4651 returns link to create a cluster if no cluster exists4652 when user cannot create Kubernetes cluster4653 returns nil4654 #upload_anchor_data4655 when a user can push to the default branch4656 returns upload_anchor_data4657 when the user cannot push to default branch4658 returns nil4659 #statistics_buttons4660 orders the items correctly4661 #repo_statistics_buttons4662 empty repo4663 includes a button to configure integrations for maintainers4664 does not include a button if not a maintainer4665 for a guest user4666 orders the items correctly4667 for a developer4668 orders the items correctly4669 initialized repo4670 orders the items correctly4671 #can_setup_review_app?4672 when the ci/cd file is missing4673 is expected to be truthy4674 when the ci/cd file is not missing4675 and the user can create a cluster4676 and there is no cluster associated to this project4677 is expected to be truthy4678 and there is already a cluster associated to this project4679 is expected to be falsey4680 when a group cluster is instantiated4681 and the project belongs to this group4682 is expected to be falsey4683 and the project does not belong to this group4684 is expected to be truthy4685 and there is already an instance cluster4686 is false4687 and the user cannot create a cluster4688 is expected to be falsey4689GroupMember4690 scopes4691 counts users by group ID4692 .of_ldap_type4693 returns ldap type users4694 .with_user4695 returns requested user4696 delegations4697 is expected to delegate #update_two_factor_requirement to the #user object, allowing #user to return nil4698 .access_level_roles4699 returns Gitlab::Access.options_with_owner4700 #permissible_access_level_roles4701 returns Gitlab::Access.options_with_owner4702 behaves like members notifications4703 #after_create4704 sends email to user4705 #after_update4706 calls NotificationService.update_group_member4707 does not send an email when the access level has not changed4708 #after_commit4709 on creation of a member requesting access4710 calls NotificationService.new_access_request4711 #accept_request4712 calls NotificationService.new_group_member4713 #accept_invite!4714 calls NotificationService.accept_group_invite4715 #decline_invite!4716 calls NotificationService.decline_group_invite4717 #namespace_id4718 is expected to eq 14719 #real_source_type4720 is expected to eq "Group"4721 #update_two_factor_requirement4722 is called after creation and deletion4723 #destroy4724 for an orphaned member4725 does not raise an error4726 #after_accept_invite4727 calls #update_two_factor_requirement4728 access levels4729 with parent group4730 behaves like inherited access level as a member of entity4731 with root parent_entity developer member4732 is allowed to be a maintainer of the entity4733 is not allowed to be a reporter of the entity4734 is allowed to change to be a developer of the entity4735 is not allowed to change to be a guest of the entity4736 shows an error if the member can't be updated4737 allows changing the level from a non existing member4738 with parent group and a sub subgroup4739 behaves like inherited access level as a member of entity4740 with root parent_entity developer member4741 is allowed to be a maintainer of the entity4742 is not allowed to be a reporter of the entity4743 is allowed to change to be a developer of the entity4744 is not allowed to change to be a guest of the entity4745 shows an error if the member can't be updated4746 allows changing the level from a non existing member4747 when only the subgroup has the member4748 behaves like inherited access level as a member of entity4749 with root parent_entity developer member4750 is allowed to be a maintainer of the entity4751 is not allowed to be a reporter of the entity4752 is allowed to change to be a developer of the entity4753 is not allowed to change to be a guest of the entity4754 shows an error if the member can't be updated4755 allows changing the level from a non existing member4756 when group member expiration date is updated4757 emails the user that their group membership expiry has changed4758 refresh_member_authorized_projects4759 when importing4760 does not refresh4761 authorization refresh on addition/updation/deletion4762 on create4763 changes access level4764 behaves like tries to update permissions via refreshing authorizations for the affected projects4765 when the number of affected projects exceeds the set threshold4766 updates permissions via refreshing authorizations for the affected projects asynchronously4767 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay as a safety net4768 when the number of affected projects does not exceed the set threshold4769 behaves like calls UserProjectAccessChangedService to recalculate authorizations4770 calls UserProjectAccessChangedService to recalculate authorizations4771 when the feature flag `refresh_authorizations_via_affected_projects_on_group_membership` is disabled4772 behaves like calls UserProjectAccessChangedService to recalculate authorizations4773 calls UserProjectAccessChangedService to recalculate authorizations4774 on update4775 changes access level4776 behaves like tries to update permissions via refreshing authorizations for the affected projects4777 when the number of affected projects exceeds the set threshold4778 updates permissions via refreshing authorizations for the affected projects asynchronously4779 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay as a safety net4780 when the number of affected projects does not exceed the set threshold4781 behaves like calls UserProjectAccessChangedService to recalculate authorizations4782 calls UserProjectAccessChangedService to recalculate authorizations4783 when the feature flag `refresh_authorizations_via_affected_projects_on_group_membership` is disabled4784 behaves like calls UserProjectAccessChangedService to recalculate authorizations4785 calls UserProjectAccessChangedService to recalculate authorizations4786 on destroy4787 changes access level4788 behaves like tries to update permissions via refreshing authorizations for the affected projects4789 when the number of affected projects exceeds the set threshold4790 updates permissions via refreshing authorizations for the affected projects asynchronously4791 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay as a safety net4792 when the number of affected projects does not exceed the set threshold4793 behaves like calls UserProjectAccessChangedService to recalculate authorizations4794 calls UserProjectAccessChangedService to recalculate authorizations4795 when the feature flag `refresh_authorizations_via_affected_projects_on_group_membership` is disabled4796 behaves like calls UserProjectAccessChangedService to recalculate authorizations4797 calls UserProjectAccessChangedService to recalculate authorizations4798AwardEmoji4799 Associations4800 is expected to belong to awardable required: false4801 is expected to belong to user required: false4802 modules4803 is expected to includes the Participable module4804 validations4805 is expected to validate that :awardable cannot be empty/falsy4806 is expected to validate that :user cannot be empty/falsy4807 is expected to validate that :name cannot be empty/falsy4808 scoped uniqueness validation4809 rejects duplicate award emoji4810 allows duplicate award emoji for ghost users4811 when importing4812 allows duplicate award emoji4813 custom emoji4814 is accepted on issue4815 is accepted on merge_request4816 is accepted on note_on_issue4817 is accepted on snippet4818 is accepted on subgroup issue4819 is not supported on personal snippet (yet)4820 scopes4821 .upvotes4822 is expected to contain exactly #<AwardEmoji id: 6, name: "thumbsup", user_id: 1428, awardable_id: 163, awardable_type: "Issue", created_at: "2022-06-29 20:17:58.336367805 +0000", updated_at: "2022-06-29 20:17:58.336367805 +0000">4823 .downvotes4824 is expected to contain exactly #<AwardEmoji id: 7, name: "thumbsdown", user_id: 1430, awardable_id: 164, awardable_type: "Issue", cr...reated_at: "2022-06-29 20:17:58.764339017 +0000", updated_at: "2022-06-29 20:17:58.764339017 +0000">4825 .named4826 is expected to contain exactly #<AwardEmoji id: 6, name: "thumbsup", user_id: 1428, awardable_id: 163, awardable_type: "Issue", created_at: "2022-06-29 20:17:58.336367805 +0000", updated_at: "2022-06-29 20:17:58.336367805 +0000">4827 is expected to contain exactly #<AwardEmoji id: 6, name: "thumbsup", user_id: 1428, awardable_id: 163, awardable_type: "Issue", created_at: "2022-06-29 20:17:58.336367805 +0000", updated_at: "2022-06-29 20:17:58.336367805 +0000"> and #<AwardEmoji id: 7, name: "thumbsdown", user_id: 1430, awardable_id: 164, awardable_type: "Issue", cr...reated_at: "2022-06-29 20:17:58.764339017 +0000", updated_at: "2022-06-29 20:17:58.764339017 +0000">4828 .awarded_by4829 is expected to contain exactly #<AwardEmoji id: 6, name: "thumbsup", user_id: 1428, awardable_id: 163, awardable_type: "Issue", created_at: "2022-06-29 20:17:58.336367805 +0000", updated_at: "2022-06-29 20:17:58.336367805 +0000">4830 is expected to contain exactly #<AwardEmoji id: 6, name: "thumbsup", user_id: 1428, awardable_id: 163, awardable_type: "Issue", created_at: "2022-06-29 20:17:58.336367805 +0000", updated_at: "2022-06-29 20:17:58.336367805 +0000"> and #<AwardEmoji id: 7, name: "thumbsdown", user_id: 1430, awardable_id: 164, awardable_type: "Issue", cr...reated_at: "2022-06-29 20:17:58.764339017 +0000", updated_at: "2022-06-29 20:17:58.764339017 +0000">4831 expiring ETag cache4832 on a note4833 calls expire_etag_cache on the note when saved4834 calls expire_etag_cache on the note when destroyed4835 on another awardable4836 does not call expire_etag_cache on the issue when saved4837 does not call expire_etag_cache on the issue when destroyed4838 bumping updated at4839 calls bump_updated_at on the note when saved4840 calls bump_updated_at on the note when destroyed4841 on another awardable4842 does not error out when saved4843 does not error out when destroy4844 .award_counts_for_user4845 returns the awarded emoji in descending order4846 limits the returned number of rows4847 updating upvotes_count4848 on an issue4849 updates upvotes_count on the issue when saved4850 updates upvotes_count on the issue when destroyed4851 on another awardable4852 does not update upvotes_count on the merge_request when saved4853 does not update upvotes_count on the merge_request when destroyed4854 #url4855 is nil for built-in emoji4856 is nil for unrecognized emoji4857 is set for custom emoji4858 feature flag disabled4859 does not query4860Database::ConsistencyCheckService4861 #random_start_id4862 generates a random start_id within the records ids4863 #execute4864 when empty tables4865 returns results with zero counters4866 does not call the ConsistencyCheckService4867 no cursor has been saved before4868 picks a random start_id4869 calls the ConsistencyCheckService with the expected parameters4870 saves the next_start_id in Redis for he next iteration4871 cursor saved in Redis and moving4872 keeps moving the cursor with each call to the service4873 keeps moving the cursor from any start point4874MergeRequests::ReopenService4875 #execute4876 caches merge request closing issues4877 updates metrics4878 calls the merge request activity counter4879 refreshes the number of open merge requests for a valid MR4880 behaves like cache counters invalidator4881 invalidates counter cache for assignees4882 behaves like merge request reviewers cache counters invalidator4883 invalidates counter cache for reviewers4884 valid params4885 is expected to be valid4886 is expected to be opened4887 executes hooks with reopen action4888 sends email to user2 about reopen of merge_request4889 destroys cleanup schedule record4890 clears the cached merge_ref_sha4891 note creation4892 creates resource state event about merge_request reopen4893 current user is not authorized to reopen merge request4894 does not reopen the merge request4895MergeRequests::CloseService4896 #execute4897 updates metrics4898 calls the merge request activity counter4899 refreshes the number of open merge requests for a valid MR4900 clean up environments for the merge request4901 schedules CleanupRefsService4902 behaves like cache counters invalidator4903 invalidates counter cache for assignees4904 behaves like merge request reviewers cache counters invalidator4905 invalidates counter cache for reviewers4906 valid params4907 is expected to be valid4908 is expected to be closed4909 executes hooks with close action4910 sends email to user2 about assign of new merge_request4911 creates a resource event4912 marks todos as done4913 removes attention requested state4914 when auto merge is enabled4915 cancels the auto merge4916 current user is not authorized to close merge request4917 does not close the merge request4918Gitlab::ReferenceExtractor4919 accesses valid user objects4920 ignores user mentions inside specific elements4921 does not include anchors from table of contents in issue references4922 accesses valid issue objects4923 accesses valid merge requests4924 accesses valid labels4925 accesses valid snippets4926 accesses valid commits4927 accesses valid commit ranges4928 directly addressed users4929 when a user is directly addressed4930 accesses the user object which is mentioned in the beginning of the line4931 doesn't access the user object if it's not mentioned in the beginning of the line4932 when multiple users are addressed4933 accesses the user objects which are mentioned in the beginning of the line4934 doesn't access the user objects if they are not mentioned in the beginning of the line4935 when multiple users are addressed in different paragraphs4936 accesses user objects which are mentioned in the beginning of each paragraph4937 with an external issue tracker4938 when GitLab issues are enabled4939 returns both Jira and internal issues4940 returns only Jira issues if the internal one does not exist4941 when GitLab issues are disabled4942 returns only Jira issues4943 with an inactive external issue tracker4944 when GitLab issues are enabled4945 returns only internal issue4946 does not return any issue if the internal one does not exist4947 with a project with an underscore4948 handles project issue references4949 #all4950 returns all referables4951 .references_pattern4952 is expected to be a kind of Regexp4953 referables prefixes4954 returns all supported prefixes4955 does not allow one prefix for multiple referables if not allowed specificly4956 #references4957 does not return any references4958 when references are visible4959 returns visible references of given type4960 #all_visible?4961 returns true if no references were parsed yet4962 when references was already called4963 returns false4964 when user can access only some references4965 returns false4966 when user can access all references4967 returns true4968DeployToken4969 is expected to have many project_deploy_tokens4970 is expected to have many projects through project_deploy_tokens4971 is expected to have many group_deploy_tokens4972 is expected to have many groups through group_deploy_tokens4973 is expected to belong to user required: false4974 behaves like having unique enum values4975 has unique values in "deploy_token_type"4976 validations4977 is expected to validate that the length of :username is at most 2554978 is expected to allow :username to be ‹"GitLab+deploy_token-3.14"›4979 is expected not to allow :username to be ‹"<script>"›, producing a custom validation error on failure4980 is expected not to allow :username to be ‹""›, producing a custom validation error on failure4981 is expected to validate that :deploy_token_type cannot be empty/falsy4982 deploy_token_type validations4983 when a deploy token is associated to a group4984 does not allow setting a project to it4985 when a deploy token is associated to a project4986 does not allow setting a group to it4987 #ensure_token4988 ensures a token4989 #ensure_at_least_one_scope4990 with at least one scope4991 is valid4992 with no scopes4993 is invalid4994 #valid_for_dependency_proxy?4995 is expected to eq true4996 behaves like invalid group deploy token4997 revoked4998 is expected to eq false4999 expired5000 is expected to eq false5001 project type5002 is expected to eq false5003 insufficient scopes5004 is expected to eq false5005 #has_access_to_group?5006 is expected to eq true5007 behaves like invalid group deploy token5008 revoked5009 is expected to eq false5010 expired5011 is expected to eq false5012 project type5013 is expected to eq false5014 for a sub group5015 is expected to eq true5016 for a different group5017 is expected to eq false5018 #scopes5019 with all the scopes5020 returns scopes assigned to DeployToken5021 with only one scope5022 returns scopes assigned to DeployToken5023 #revoke!5024 updates revoke attribute5025 #active?5026 when it has been revoked5027 returns false5028 when it hasn't been revoked and is not expired5029 returns true5030 when it hasn't been revoked and is expired5031 returns true5032 when it hasn't been revoked and has no expiry5033 returns true5034 #deactivated?5035 when it has been revoked5036 returns true5037 when it hasn't been revoked and is not expired5038 returns false5039 when it hasn't been revoked and is expired5040 returns false5041 when it hasn't been revoked and has no expiry5042 returns false5043 #username5044 persisted records5045 returns a default username if none is set5046 returns the username provided if one is set5047 new records5048 returns nil if no username is set5049 returns the username provided if one is set5050 #holder5051 when the token is of project type5052 returns the relevant holder token5053 when the token is of group type5054 returns the relevant holder token5055 #has_access_to?5056 when a project is not passed in5057 is expected to be falsy5058 when a project is passed in5059 when deploy token is active and related to project5060 is expected to be truthy5061 when deploy token is active but not related to project5062 is expected to be falsy5063 when deploy token is revoked and related to project5064 is expected to be falsy5065 when deploy token is revoked and not related to the project5066 is expected to be falsy5067 and when the token is of group type5068 and the passed-in project does not belong to any group5069 is expected to be falsy5070 and the passed-in project belongs to the token group5071 is true5072 and the passed-in project belongs to a subgroup5073 and the token group is an ancestor (grand-parent) of this group5074 is expected to be truthy5075 and the token group is not ancestor of this group5076 is false5077 and the passed-in project does not belong to the token group5078 is expected to be falsy5079 and the project belongs to a group that is parent of the token group5080 is false5081 and the token is of project type5082 and the passed-in project is the same as the token project5083 is expected to be truthy5084 and the passed-in project is not the same as the token project5085 is expected to be falsey5086 #expires_at5087 when using Forever.date5088 returns nil5089 when using a personalized date5090 returns the personalized date5091 #expires_at=5092 when passing nil5093 assigns Forever.date5094 when passing a value5095 respects the value5096 .gitlab_deploy_token5097 with a gitlab deploy token associated5098 returns the gitlab deploy token5099 with no gitlab deploy token associated5100 returns nil5101 #accessible_projects5102 when a deploy token is associated to a project5103 returns only projects directly associated with the token5104 when a deploy token is associated to a group5105 returns all projects from the group5106 .impersonated?5107 returns false5108Database::BatchedBackgroundMigration::CiDatabaseWorker5109 behaves like it runs batched background migration jobs5110 defining the job attributes5111 defines the data_consistency as always5112 defines the feature_category as database5113 defines the idempotency as true5114 .tracking_database5115 does not raise an error5116 overrides the method to return the tracking database5117 .lease_key5118 does not raise an error5119 returns the lease key5120 .enabled?5121 returns true when execute_batched_migrations_on_schedule feature flag is enabled5122 returns false when execute_batched_migrations_on_schedule feature flag is disabled5123 #perform5124 when the base model does not exist5125 does nothing (PENDING: because the base model for ci exists)5126 logs a message indicating execution is skipped (PENDING: because the base model for ci exists)5127 when the base model does exist5128 when the feature flag is disabled5129 does nothing5130 when the feature flag is enabled5131 when database config is shared5132 does nothing5133 when no active migrations exist5134 does nothing5135 when active migrations exist5136 always cleans up the exclusive lease5137 receives the correct connection5138 when the reloaded migration is no longer active5139 does not run the migration5140 when the interval has not elapsed5141 does not run the migration5142 when the reloaded migration is still active and the interval has elapsed5143 runs the migration5144 when the calculated timeout is less than the minimum allowed5145 sets the lease timeout to the minimum value5146 executing an entire migration5147 marks the migration record as finished5148 creates job records for each processed batch5149 marks all job records as succeeded5150 updates matching records in the range5151 does not update non-matching records in the range5152GitlabRoutingHelper5153 Project URL helpers5154 #project_member_path5155 is expected to eq "/namespace1426/project1350/-/project_members/904"5156 #request_access_project_members_path5157 is expected to eq "/namespace1427/project1351/-/project_members/request_access"5158 #leave_project_members_path5159 is expected to eq "/namespace1428/project1352/-/project_members/leave"5160 #approve_access_request_project_member_path5161 is expected to eq "/namespace1429/project1353/-/project_members/906/approve_access_request"5162 #resend_invite_project_member_path5163 is expected to eq "/namespace1430/project1354/-/project_members/908/resend_invite"5164 Group URL helpers5165 #group_members_url5166 is expected to eq "http://test.host/groups/group169/-/group_members"5167 #group_member_path5168 is expected to eq "/groups/group170/-/group_members/909"5169 #request_access_group_members_path5170 is expected to eq "/groups/group171/-/group_members/request_access"5171 #leave_group_members_path5172 is expected to eq "/groups/group172/-/group_members/leave"5173 #approve_access_request_group_member_path5174 is expected to eq "/groups/group173/-/group_members/910/approve_access_request"5175 #resend_invite_group_member_path5176 is expected to eq "/groups/group174/-/group_members/911/resend_invite"5177 #preview_markdown_path5178 returns group preview markdown path for a group parent5179 returns group preview markdown path for a group parent with args5180 returns project preview markdown path for a project parent5181 returns snippet preview markdown path for a personal snippet5182 returns project preview markdown path for a project snippet5183 #edit_milestone_path5184 returns group milestone edit path when given entity parent is a Group5185 returns project milestone edit path when given entity parent is not a Group5186 members helpers5187 #source_members_url5188 returns a url to the memberships page for a group membership5189 returns a url to the memberships page for a project membership5190 artifacts5191 #fast_download_project_job_artifacts_path5192 matches the Rails download path5193 when given parameters5194 adds them to the path5195 #fast_keep_project_job_artifacts_path5196 matches the Rails keep path5197 #fast_browse_project_job_artifacts_path5198 matches the Rails browse path5199 snippets5200 #gitlab_snippet_path5201 returns the personal snippet path5202 returns the project snippet path5203 #gitlab_snippet_url5204 returns the personal snippet url5205 returns the project snippet url5206 #gitlab_raw_snippet_path5207 returns the raw personal snippet path5208 returns the raw project snippet path5209 #gitlab_raw_snippet_blob_path5210 behaves like snippet blob raw path5211 for PersonalSnippets5212 returns the raw personal snippet blob path5213 for ProjectSnippets5214 returns the raw project snippet blob path5215 when an argument is set5216 is expected to eq "/-/snippets/73/raw/test-ref/.gitattributes?inline=true"5217 without a ref5218 uses the root ref5219 #gitlab_raw_snippet_url5220 returns the raw personal snippet url5221 returns the raw project snippet url5222 #gitlab_raw_snippet_blob_url5223 behaves like snippet blob raw url5224 for PersonalSnippets5225 returns the raw personal snippet blob url5226 for ProjectSnippets5227 returns the raw project snippet blob url5228 when an argument is set5229 is expected to eq "http://test.host/-/snippets/73/raw/snippet-test-ref/.gitattributes?inline=true"5230 without a ref5231 uses the root ref5232 when snippet does not have a repository5233 uses the instance deafult branch5234 #gitlab_raw_snippet_url5235 returns the raw personal snippet url5236 returns the raw project snippet url5237 #gitlab_snippet_notes_path5238 returns the notes path for the personal snippet5239 #gitlab_snippet_notes_url5240 returns the notes url for the personal snippet5241 #gitlab_snippet_note_path5242 returns the note path for the personal snippet5243 #gitlab_snippet_note_url5244 returns the note url for the personal snippet5245 #gitlab_toggle_award_emoji_snippet_note_path5246 returns the note award emoji path for the personal snippet5247 #gitlab_toggle_award_emoji_snippet_note_url5248 returns the note award emoji url for the personal snippet5249 #gitlab_toggle_award_emoji_snippet_path5250 returns the award emoji path for the personal snippet5251 #gitlab_toggle_award_emoji_snippet_url5252 returns the award url for the personal snippet5253 #gitlab_dashboard_snippets_path5254 returns the personal snippets dashboard path5255 returns the project snippets dashboard path5256 wikis5257 #wiki_page_path5258 returns the url for the wiki page5259 releases5260 #release_url5261 returns the url for the release page5262 GraphQL ETag paths5263 with pipelines5264 returns an ETag path for a pipeline sha5265 returns an ETag path for pipelines5266Issues::ImportCsvService5267 #execute5268 invalid file extension5269 behaves like invalid file5270 returns invalid file error5271 behaves like importer with email notification5272 notifies user of import result5273 behaves like an issuable importer5274 records the import attempt if resource is an issue5275 empty file5276 behaves like invalid file5277 returns invalid file error5278 behaves like importer with email notification5279 notifies user of import result5280 behaves like an issuable importer5281 records the import attempt if resource is an issue5282 file without headers5283 behaves like invalid file5284 returns invalid file error5285 behaves like importer with email notification5286 notifies user of import result5287 behaves like an issuable importer5288 records the import attempt if resource is an issue5289 with a file generated by Gitlab CSV export5290 imports the CSV without errors5291 correctly sets the issuable attributes5292 behaves like importer with email notification5293 notifies user of import result5294 behaves like an issuable importer5295 records the import attempt if resource is an issue5296 comma delimited file5297 imports CSV without errors5298 correctly sets the issuable attributes5299 behaves like importer with email notification5300 notifies user of import result5301 behaves like an issuable importer5302 records the import attempt if resource is an issue5303 tab delimited file with error row5304 imports CSV with some error rows5305 correctly sets the issuable attributes5306 behaves like importer with email notification5307 notifies user of import result5308 behaves like an issuable importer5309 records the import attempt if resource is an issue5310 semicolon delimited file with CRLF5311 imports CSV with a blank row5312 correctly sets the issuable attributes5313 behaves like importer with email notification5314 notifies user of import result5315 behaves like an issuable importer5316 records the import attempt if resource is an issue5317Groups::CreateService#execute5318 visibility level restrictions5319 create groups without restricted visibility level5320 is expected to be persisted5321 cannot create group with restricted visibility level5322 is expected not to be persisted5323 when `setup_for_company:true` is passed5324 creates group with the specified setup_for_company5325 creating a group with `default_branch_protection` attribute5326 for users who have the ability to create a group with `default_branch_protection`5327 creates group with the specified branch protection level5328 for users who do not have the ability to create a group with `default_branch_protection`5329 does not create the group with the specified branch protection level5330 creating a group with `allow_mfa_for_subgroups` attribute5331 creates group without error5332 creating a top level group5333 when user can create a group5334 is expected to be persisted5335 adds an onboarding progress record5336 with before_commit callback5337 behaves like has sync-ed traversal_ids5338 is expected to eq [2901]5339 when user can not create a group5340 is expected not to be persisted5341 creating subgroup5342 as group owner5343 is expected to be persisted5344 does not add an onboarding progress record5345 behaves like has sync-ed traversal_ids5346 is expected to eq [2910, 2911]5347 as guest5348 does not save group and returns an error5349 as owner5350 is expected to be persisted5351 as maintainer5352 is expected to be persisted5353 when visibility level is passed as a string5354 assigns the correct visibility level5355 creating a mattermost team5356 create the chat team with the group5357 creating a setting record5358 create the settings record connected to the group5359 create service for the group5360 with an active instance-level integration5361 creates a service from the instance-level integration5362 with an active group-level integration5363 creates a service from the group-level integration5364 with an active subgroup5365 creates a service from the subgroup-level integration5366 shared runners configuration5367 parent group present5368 shared_runners_config: true, descendants_override_disabled_shared_runners_config: false5369 creates group following the parent config5370 shared_runners_config: false, descendants_override_disabled_shared_runners_config: false5371 creates group following the parent config5372 shared_runners_config: false, descendants_override_disabled_shared_runners_config: true5373 creates group following the parent config5374 root group5375 follows default config5376 logged_out_marketing_header experiment5377 tracks signed_up event5378 when group has not been persisted5379 does not track signed_up event5380Resolvers::BoardListIssuesResolver5381 #resolve5382 when project boards5383 behaves like group and project board list issues resolver5384 when authorized5385 generates a mutually exclusive filter error when milestone wildcard and title are provided5386 returns the issues in the correct order5387 finds only issues matching filters5388 finds only issues filtered by milestone wildcard5389 finds only issues matching search param5390 filters issues by negated issue type5391 generates an error if both assignee_username and assignee_wildcard_id are present5392 accepts assignee wildcard id NONE5393 accepts assignee wildcard id ANY5394 when filtering by confidential5395 returns matching issue5396 when group boards5397 behaves like group and project board list issues resolver5398 when authorized5399 generates a mutually exclusive filter error when milestone wildcard and title are provided5400 returns the issues in the correct order5401 finds only issues matching filters5402 finds only issues filtered by milestone wildcard5403 finds only issues matching search param5404 filters issues by negated issue type5405 generates an error if both assignee_username and assignee_wildcard_id are present5406 accepts assignee wildcard id NONE5407 accepts assignee wildcard id ANY5408 when filtering by confidential5409 returns matching issue5410EnvironmentSerializer5411 behaves like avoid N+1 on environments serialization5412 avoids N+1 database queries with grouping5413 avoids N+1 database queries without grouping5414 does not preload for environments that does not exist in the page5415 when there is a collection of objects provided5416 contains important elements of environment5417 generates payload for collection5418 when representing environments within folders5419 when there is a single environment5420 represents one standalone environment5421 when there are multiple environments in folder5422 represents one item that is a folder5423 when there are multiple folders and standalone environments5424 represents multiple items grouped within folders5425 when used with pagination5426 creates a paginated serializer5427 when resource is paginatable relation5428 when there is a single environment object in relation5429 serializes environments5430 when multiple environment objects are serialized5431 serializes appropriate number of objects5432 appends relevant headers5433 when grouping environments within folders5434 paginates grouped items including ordering5435 appends correct total page count header5436 appends correct page count headers5437 batching loading5438 uses the custom preloader service5439 fetches the last and upcoming deployment correctly5440Serverless::DomainCluster5441 validations5442 is expected to validate that :pages_domain cannot be empty/falsy5443 is expected to validate that :knative cannot be empty/falsy5444 is expected to validate that :uuid cannot be empty/falsy5445 is expected to validate that the length of :uuid is 145446 is expected to validate that :uuid is case-sensitively unique5447 validates that uuid has only hex characters5448 associations5449 is expected to belong to pages_domain required: false5450 is expected to belong to knative required: false5451 is expected to belong to creator optional: true5452 uuid5453 when nil5454 generates a value by default5455 when not nil5456 does not override the existing value5457 cluster5458 is expected to respond to #cluster5459 domain5460 is expected to respond to #domain5461 certificate5462 is expected to respond to #certificate5463 key5464 is expected to respond to #key5465Gitlab::Database::BatchCount5466 #batch_count5467 counts table5468 counts with :id field5469 counts with "id" field5470 counts with table.id field5471 counts with Arel column5472 counts table with batch_size 50K5473 will not count table with a batch size less than allowed5474 counts with a small edge case batch_sizes than result5475 counts with a start and finish5476 stops counting when finish value is reached5477 defaults the batch size to 1000005478 does not use BETWEEN to define the range5479 behaves like when a transaction is open5480 raises an error5481 behaves like when batch fetch query is canceled5482 reduces batch size by half and retry fetch5483 when all retries fail5484 logs failing query5485 disallowed_configurations5486 returns fallback if start is bigger than finish5487 returns fallback if loops more than allowed5488 returns fallback if batch size is less than min required5489 raises an error if distinct count is requested5490 when a relation is grouped5491 count by default column5492 counts grouped records5493 #batch_distinct_count5494 counts with column field5495 counts with "id" field5496 counts with table.column field5497 counts with Arel column5498 counts with :column field with batch_size of 50K5499 will not count table with a batch size less than allowed5500 counts with a small edge case batch_sizes than result5501 counts with a start and finish5502 stops counting when finish value is reached5503 counts with User min and max as start and finish5504 defaults the batch size to 100005505 behaves like when a transaction is open5506 raises an error5507 disallowed configurations5508 returns fallback if start is bigger than finish5509 returns fallback if loops more than allowed5510 returns fallback if batch size is less than min required5511 will raise an error if distinct count with the :id column is requested5512 when a relation is grouped5513 distinct count by non-unique column5514 counts grouped records5515 behaves like when batch fetch query is canceled5516 reduces batch size by half and retry fetch5517 when all retries fail5518 logs failing query5519 #batch_sum5520 returns the sum of values in the given column5521 works when given an Arel column5522 works with a batch size of 50K5523 works with start and finish provided5524 returns the same result regardless of batch size5525 defaults the batch size to 10005526 behaves like when a transaction is open5527 raises an error5528 behaves like disallowed configurations5529 returns fallback if start is bigger than finish5530 returns fallback if loops more than allowed5531 returns fallback if batch size is less than min required5532 behaves like when batch fetch query is canceled5533 reduces batch size by half and retry fetch5534 when all retries fail5535 logs failing query5536 #batch_average5537 returns the average of values in the given column5538 works when given an Arel column5539 works with a batch size of 50K5540 works with start and finish provided5541 defaults the batch size to 10005542 behaves like when a transaction is open5543 raises an error5544 behaves like disallowed configurations5545 returns fallback if start is bigger than finish5546 returns fallback if loops more than allowed5547 returns fallback if batch size is less than min required5548 behaves like when batch fetch query is canceled5549 reduces batch size by half and retry fetch5550 when all retries fail5551 logs failing query5552TabHelper5553 gl_tabs_nav5554 creates a tabs navigation5555 captures block output5556 adds custom class5557 gl_tab_link_to5558 creates a tab5559 creates a tab with block output5560 creates a tab with custom classes for enclosing list item without content block provided5561 creates a tab with custom classes for enclosing list item with content block provided5562 creates a tab with custom classes for anchor element5563 creates an active tab with item_active = true5564 when on the active page5565 creates an active tab5566 creates an inactive tab with item_active = false5567 nav_link5568 passes extra html options to the list element5569 with the content of the li5570 captures block output5571 controller_param: nil, action_param: nil, path_param: nil, active: false5572 is expected to eq false5573 controller_param: :foo, action_param: nil, path_param: nil, active: true5574 is expected to eq true5575 controller_param: :bar, action_param: nil, path_param: nil, active: false5576 is expected to eq false5577 controller_param: :bar, action_param: :foo, path_param: nil, active: false5578 is expected to eq false5579 controller_param: :foo, action_param: :bar, path_param: nil, active: false5580 is expected to eq false5581 controller_param: :foo, action_param: :foo, path_param: nil, active: true5582 is expected to eq true5583 controller_param: :bar, action_param: nil, path_param: "foo#foo", active: true5584 is expected to eq true5585 controller_param: :bar, action_param: nil, path_param: ["foo#foo", "bar#bar"], active: true5586 is expected to eq true5587 controller_param: :bar, action_param: :bar, path_param: ["foo#foo", "bar#bar"], active: true5588 is expected to eq true5589 controller_param: :foo, action_param: nil, path_param: "bar#foo", active: true5590 is expected to eq true5591 controller_param: :bar, action_param: nil, path_param: "bar#foo", active: false5592 is expected to eq false5593 controller_param: :foo, action_param: [:foo, :bar], path_param: "bar#foo", active: true5594 is expected to eq true5595 controller_param: :bar, action_param: :bar, path_param: "foo#foo", active: true5596 is expected to eq true5597 controller_param: :foo, action_param: :foo, path_param: "bar#foo", active: true5598 is expected to eq true5599 controller_param: :bar, action_param: :foo, path_param: "bar#foo", active: false5600 is expected to eq false5601 controller_param: :foo, action_param: :bar, path_param: "bar#foo", active: false5602 is expected to eq false5603 controller_param: [:foo, :bar], action_param: nil, path_param: nil, active: true5604 is expected to eq true5605 controller_param: [:foo, :bar], action_param: nil, path_param: "bar#foo", active: true5606 is expected to eq true5607 controller_param: [:foo, :bar], action_param: :foo, path_param: "bar#foo", active: true5608 is expected to eq true5609 controller_param: nil, action_param: :foo, path_param: nil, active: true5610 is expected to eq true5611 controller_param: nil, action_param: :bar, path_param: nil, active: false5612 is expected to eq false5613 controller_param: nil, action_param: nil, path_param: "foo#bar", active: false5614 is expected to eq false5615 controller_param: nil, action_param: nil, path_param: "foo#foo", active: true5616 is expected to eq true5617 controller_param: nil, action_param: :bar, path_param: ["foo#foo", "bar#bar"], active: true5618 is expected to eq true5619 controller_param: nil, action_param: :bar, path_param: "foo#foo", active: true5620 is expected to eq true5621 controller_param: nil, action_param: :foo, path_param: "bar#foo", active: true5622 is expected to eq true5623 controller_param: nil, action_param: [:foo, :bar], path_param: nil, active: true5624 is expected to eq true5625 controller_param: nil, action_param: [:foo, :bar], path_param: "bar#foo", active: true5626 is expected to eq true5627 controller_param: nil, action_param: :bar, path_param: "bar#foo", active: false5628 is expected to eq false5629 page: nil, excluded_page: nil, active: false5630 is expected to eq false5631 page: "_some_page_", excluded_page: nil, active: true5632 is expected to eq true5633 page: "_some_page_", excluded_page: "_excluded_page_", active: true5634 is expected to eq true5635 page: "_some_page_", excluded_page: "_some_page_", active: false5636 is expected to eq false5637 with namespace in path notation5638 controller_param: "foo/foo", action_param: nil, path_param: nil, active: false5639 is expected to eq false5640 controller_param: "bar/foo", action_param: nil, path_param: nil, active: true5641 is expected to eq true5642 controller_param: "foo/foo", action_param: :foo, path_param: nil, active: false5643 is expected to eq false5644 controller_param: "bar/foo", action_param: :bar, path_param: nil, active: false5645 is expected to eq false5646 controller_param: "bar/foo", action_param: :foo, path_param: nil, active: true5647 is expected to eq true5648 controller_param: nil, action_param: nil, path_param: "foo/foo#foo", active: false5649 is expected to eq false5650 controller_param: nil, action_param: nil, path_param: "bar/foo#foo", active: true5651 is expected to eq true5652 gl_tab_counter_badge5653 creates a tab counter badge5654 with extra classes5655 creates a tab counter badge with the correct class attribute5656 with data attributes5657 creates a tab counter badge with the data attributes5658Clusters::Applications::CheckUpgradeProgressService5659 #execute5660 when upgrade pod succeeded5661 make the application upgraded5662 behaves like a terminated upgrade5663 removes the POD5664 when upgrade pod failed5665 make the application update errored5666 behaves like a terminated upgrade5667 removes the POD5668 behaves like a not yet terminated upgrade5669 when phase is Pending5670 when not timed out5671 reschedule a new check5672 when timed out5673 make the application update errored5674 behaves like a terminated upgrade5675 removes the POD5676 behaves like a not yet terminated upgrade5677 when phase is Running5678 when not timed out5679 reschedule a new check5680 when timed out5681 make the application update errored5682 behaves like a terminated upgrade5683 removes the POD5684 behaves like a not yet terminated upgrade5685 when phase is Unknown5686 when not timed out5687 reschedule a new check5688 when timed out5689 make the application update errored5690 behaves like a terminated upgrade5691 removes the POD5692Git::TagHooksService5693 System hooks5694 executes system hooks5695 Webhooks5696 executes hooks on the project5697 Pipelines5698 creates a new pipeline5699 Push data5700 annotated tag5701 has expected push data attributes5702 with repository data5703 has expected repository attributes5704 with commits5705 is expected to be a kind of Array5706 has 1 element5707 the commit5708 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}5709 has expected commit attributes5710 with an author5711 has expected author attributes5712 lightweight tag5713 has expected push data attributes5714 with repository data5715 has expected repository attributes5716 with commits5717 is expected to be a kind of Array5718 has 1 element5719 the commit5720 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}5721 has expected commit attributes5722 with an author5723 has expected author attributes5724Gitlab::Ci::Variables::Collection5725 .new5726 can be initialized with an array5727 can be initialized without an argument5728 #append5729 appends a hash5730 appends a Ci::Variable5731 appends an internal resource5732 returns self5733 #compact5734 returns a new Collection instance5735 rejects pair that has nil value5736 #concat5737 appends all elements from an array5738 appends all elements from other collection5739 does not concatenate resource if it undefined5740 returns self5741 #+5742 makes it possible to combine with an array5743 makes it possible to combine with another collection5744 #[]5745 with variable key with single entry5746 behaves like an array access operator5747 for a non-existent variable name5748 returns nil5749 for an existent variable name5750 returns the last Item5751 with variable key with multiple entries5752 behaves like an array access operator5753 for a non-existent variable name5754 returns nil5755 for an existent variable name5756 returns the last Item5757 #all5758 with variable key with single entry5759 behaves like a method returning all known variables or nil5760 for a non-existent variable name5761 returns nil5762 for an existing variable name5763 returns all expected Items5764 with variable key with multiple entries5765 behaves like a method returning all known variables or nil5766 for a non-existent variable name5767 returns nil5768 for an existing variable name5769 returns all expected Items5770 #size5771 returns zero for empty collection5772 returns 2 for collection with 2 variables5773 returns 3 for collection with 2 duplicate variables5774 #to_runner_variables5775 creates an array of hashes in a runner-compatible format5776 #to_hash5777 returns regular hash in valid order without duplicates5778 #reject5779 returns a Collection instance5780 returns correctly filtered Collection5781 #expand_value5782 table tests5783 empty value5784 matches expected expansion5785 simple expansions5786 matches expected expansion5787 complex expansion5788 matches expected expansion5789 complex expansions with raw variable5790 matches expected expansion5791 missing variable not keeping original5792 matches expected expansion5793 missing variable keeping original5794 matches expected expansion5795 escaped characters are kept intact5796 matches expected expansion5797 #sort_and_expand_all5798 table tests5799 empty array5800 returns Collection5801 expands variables5802 preserves raw attribute5803 simple expansions5804 returns Collection5805 expands variables5806 preserves raw attribute5807 complex expansion5808 returns Collection5809 expands variables5810 preserves raw attribute5811 unused variables5812 returns Collection5813 expands variables5814 preserves raw attribute5815 complex expansions5816 returns Collection5817 expands variables5818 preserves raw attribute5819 escaped characters in complex expansions keeping undefined are kept intact5820 returns Collection5821 expands variables5822 preserves raw attribute5823 escaped characters in complex expansions discarding undefined are kept intact5824 returns Collection5825 expands variables5826 preserves raw attribute5827 out-of-order expansion5828 returns Collection5829 expands variables5830 preserves raw attribute5831 out-of-order complex expansion5832 returns Collection5833 expands variables5834 preserves raw attribute5835 missing variable discarding original5836 returns Collection5837 expands variables5838 preserves raw attribute5839 missing variable keeping original5840 returns Collection5841 expands variables5842 preserves raw attribute5843 complex expansions with missing variable keeping original5844 returns Collection5845 expands variables5846 preserves raw attribute5847 complex expansions with raw variable5848 returns Collection5849 expands variables5850 preserves raw attribute5851 variable value referencing password with special characters5852 returns Collection5853 expands variables5854 preserves raw attribute5855 cyclic dependency causes original array to be returned5856 returns Collection5857 expands variables5858 preserves raw attribute5859ContainerRegistry::GitlabApiClient5860 #supports_gitlab_api?5861 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5862 returns the expected result5863 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true5864 returns the expected result5865 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5866 returns the expected result5867 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5868 returns the expected result5869 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5870 returns the expected result5871 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false5872 returns the expected result5873 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5874 returns the expected result5875 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5876 returns the expected result5877 with 401 response5878 is expected to be truthy5879 #pre_import_repository5880 status_code: 200, expected_result: :already_imported5881 is expected to eq :already_imported5882 status_code: 202, expected_result: :ok5883 is expected to eq :ok5884 status_code: 400, expected_result: :bad_request5885 is expected to eq :bad_request5886 status_code: 401, expected_result: :unauthorized5887 is expected to eq :unauthorized5888 status_code: 404, expected_result: :not_found5889 is expected to eq :not_found5890 status_code: 409, expected_result: :already_being_imported5891 is expected to eq :already_being_imported5892 status_code: 418, expected_result: :error5893 is expected to eq :error5894 status_code: 424, expected_result: :pre_import_failed5895 is expected to eq :pre_import_failed5896 status_code: 425, expected_result: :already_being_imported5897 is expected to eq :already_being_imported5898 status_code: 429, expected_result: :too_many_imports5899 is expected to eq :too_many_imports5900 #import_repository5901 status_code: 200, expected_result: :already_imported5902 is expected to eq :already_imported5903 status_code: 202, expected_result: :ok5904 is expected to eq :ok5905 status_code: 400, expected_result: :bad_request5906 is expected to eq :bad_request5907 status_code: 401, expected_result: :unauthorized5908 is expected to eq :unauthorized5909 status_code: 404, expected_result: :not_found5910 is expected to eq :not_found5911 status_code: 409, expected_result: :already_being_imported5912 is expected to eq :already_being_imported5913 status_code: 418, expected_result: :error5914 is expected to eq :error5915 status_code: 424, expected_result: :pre_import_failed5916 is expected to eq :pre_import_failed5917 status_code: 425, expected_result: :already_being_imported5918 is expected to eq :already_being_imported5919 status_code: 429, expected_result: :too_many_imports5920 is expected to eq :too_many_imports5921 #cancel_repository_import5922 status_code: 200, expected_result: :already_imported5923 is expected to eq {:migration_state=>nil, :status=>:already_imported}5924 status_code: 202, expected_result: :ok5925 is expected to eq {:migration_state=>nil, :status=>:ok}5926 status_code: 400, expected_result: :bad_request5927 is expected to eq {:migration_state=>nil, :status=>:bad_request}5928 status_code: 401, expected_result: :unauthorized5929 is expected to eq {:migration_state=>nil, :status=>:unauthorized}5930 status_code: 404, expected_result: :not_found5931 is expected to eq {:migration_state=>nil, :status=>:not_found}5932 status_code: 409, expected_result: :already_being_imported5933 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}5934 status_code: 418, expected_result: :error5935 is expected to eq {:migration_state=>nil, :status=>:error}5936 status_code: 424, expected_result: :pre_import_failed5937 is expected to eq {:migration_state=>nil, :status=>:pre_import_failed}5938 status_code: 425, expected_result: :already_being_imported5939 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}5940 status_code: 429, expected_result: :too_many_imports5941 is expected to eq {:migration_state=>nil, :status=>:too_many_imports}5942 bad request5943 is expected to eq {:migration_state=>"this_is_a_test", :status=>:bad_request}5944 force cancel5945 is expected to eq {:migration_state=>nil, :status=>:ok}5946 #import_status5947 with successful response5948 with a status5949 is expected to eq "this_is_a_test"5950 with no status5951 is expected to eq "error"5952 with non successful response5953 is expected to eq "pre_import_failed"5954 #repository_details5955 with sizing self5956 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5957 with sizing self_with_descendants5958 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5959 with sizing5960 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5961 with non successful response5962 is expected to eq {}5963 .supports_gitlab_api?5964 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5965 returns the expected result5966 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true5967 returns the expected result5968 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5969 returns the expected result5970 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false5971 returns the expected result5972 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5973 returns the expected result5974 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5975 returns the expected result5976 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5977 returns the expected result5978 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5979 returns the expected result5980 with the registry disabled5981 returns false5982 with a blank registry url5983 returns false5984 .deduplicated_size5985 with successful response5986 is expected to eq 5555987 with unsuccessful response5988 is expected to eq nil5989 with the registry disabled5990 is expected to eq nil5991 with a nil path5992 is expected to eq nil5993Mutations::MergeRequests::SetAssignees5994 when the user does not have permissions5995 #resolve5996 behaves like permission level for merge request mutation is correctly verified5997 when the user is not a project member5998 behaves like when the user does not have access to the resource5999 raises an error6000 even if assigned to the merge request6001 does not modify merge request6002 even if reviewer of the merge request6003 raises an error6004 even if author of the merge request6005 raises an error6006 when the user is a project member6007 with guest role6008 behaves like when the user does not have access to the resource6009 raises an error6010 even if assigned to the merge request6011 does not modify merge request6012 even if reviewer of the merge request6013 raises an error6014 even if author of the merge request6015 raises an error6016 with reporter role6017 behaves like when the user does not have access to the resource6018 raises an error6019 even if assigned to the merge request6020 does not modify merge request6021 even if reviewer of the merge request6022 raises an error6023 even if author of the merge request6024 raises an error6025 behaves like an assignable resource6026 #resolve6027 raises an error if the resource is not accessible to the user6028 does not change assignees if the resource is not accessible to the assignees6029 returns an operational error if the resource is not accessible to the assignees6030 when the user can update the resource6031 replaces the assignee6032 returns errors when resource could not be updated6033 when passing an empty assignee list6034 removes all assignees6035 when passing "append" as true6036 is a NO-OP in FOSS6037 when passing "remove" as true6038 removes named assignee6039 does not remove unnamed assignee6040Gitlab::Auth::Saml::User6041 #save6042 account exists on server6043 and should bind with SAML6044 adds the SAML identity to the existing user6045 external groups6046 are defined6047 marks the user as external6048 are defined but the user does not belong there6049 does not mark the user as external6050 user was external, now should not be6051 makes user internal6052 no account exists on server6053 external groups6054 are defined6055 marks the user as external6056 are defined but the user does not belong there6057 does not mark the user as external6058 with auto_link_ldap_user disabled (default)6059 with allow_single_sign_on enabled6060 creates a user from SAML6061 with allow_single_sign_on default (["saml"])6062 does not throw an error6063 with allow_single_sign_on disabled6064 throws an error6065 with auto_link_ldap_user enabled6066 and at least one LDAP provider is defined6067 and a corresponding LDAP person6068 and no account for the LDAP user6069 creates a user with dual LDAP and SAML identities6070 and LDAP user has an account already6071 adds the omniauth identity to the LDAP account6072 saves successfully on subsequent tries, when both identities are present6073 when uid is an uid6074 behaves like find LDAP person6075 adds the omniauth identity to the LDAP account6076 when uid is a dn6077 behaves like find LDAP person6078 adds the omniauth identity to the LDAP account6079 when uid is an email6080 behaves like find LDAP person6081 adds the omniauth identity to the LDAP account6082 user has SAML user, and wants to add their LDAP identity6083 adds the LDAP identity to the existing SAML user6084 when signup is disabled6085 creates the user6086 when user confirmation email is enabled6087 creates and confirms the user anyway6088 when the current minimum password length is different from the default minimum password length6089 creates the user6090 blocking6091 signup with SAML only6092 dont block on create6093 does not block the user6094 block on create6095 blocks user6096 sign-in6097 dont block on create6098 is expected not to be blocked6099 block on create6100 is expected not to be blocked6101 #find_user6102 raw info hash attributes empty6103 does not mark user as external6104 #bypass_two_factor?6105 with authn_contexts_worth_two_factors configured6106 returns true when authn_context is worth two factors6107 returns false when authn_context is not worth two factors6108 returns false when authn_context is blank6109 without auth_contexts_worth_two_factors_configured6110 returns false when authn_context is present6111 returns false when authn_context is blank6112Gitlab::Database::RenameReservedPathsMigration::V16113 #rename_child_paths6114 behaves like renames child namespaces6115 renames namespaces6116 #rename_wildcard_paths6117 renames projects6118 behaves like renames child namespaces6119 renames namespaces6120 #rename_root_paths6121 renames namespaces6122 #revert_renames6123 renames namespaces6124 renames projects6125Gitlab::Ci::Config::External::Processor6126 #perform6127 when no external files defined6128 returns the same values6129 when an invalid local file is defined6130 raises an error6131 when an invalid remote file is defined6132 raises an error6133 with a valid remote external file is defined6134 appends the file to the values6135 removes the 'include' keyword6136 with a valid local external file is defined6137 appends the file to the values6138 removes the 'include' keyword6139 with multiple external files are defined6140 appends the files to the values6141 removes the 'include' keyword6142 when external files are defined but not valid6143 raises an error6144 when both external files and values defined the same key6145 takes precedence6146 when a nested includes are defined6147 when project is public6148 properly expands all includes6149 propagates the pipeline logger6150 stores includes6151 when user is reporter of another project6152 properly expands all includes6153 when user is not allowed6154 raises an error6155 when too many includes is included6156 raises an error6157 when config includes an external configuration file via SSL web request6158 with an acceptable certificate6159 is expected to include {:image => "image:1.0"}6160 with a self-signed certificate6161 returns a reportable configuration error6162 when a valid project file is defined6163 appends the file to the values6164 when valid project files are defined in a single include6165 appends the file to the values6166 stores includes6167 when local file path has wildcard6168 fetches the matched files6169 stores includes6170 when rules defined6171 when a rule is invalid6172 raises IncludeError6173Ci::AfterRequeueJobService6174 stage-dag mixed pipeline6175 marks subsequent skipped jobs as processable6176 when executed by a different user than the original owner6177 reassigns jobs with updated statuses to the retryer6178 stage-dag mixed pipeline with some same-stage needs6179 marks subsequent skipped jobs as processable6180Groups::ImportExport::ExportService6181 #async_execute6182 when the job can be successfully scheduled6183 enqueues an export job6184 returns truthy6185 when the job cannot be scheduled6186 returns falsey6187 #execute6188 saves the version6189 saves the models using ndjson tree saver6190 saves the models using legacy tree saver6191 compresses and removes tmp files6192 notifies the user6193 when saver succeeds6194 saves the group in the file system6195 when user does not have admin_group permission6196 fails6197 logs the error6198 tracks the error6199 when export fails6200 when file saver fails6201 removes the remaining exported data6202 notifies the user about failed group export6203 when file compression fails6204 removes the remaining exported data6205 notifies logger6206 when there is an existing export file6207/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil6208 removes it6209gettext6210 :compile6211 creates a pot file and invokes the 'gettext:po_to_json' task6212 :regenerate6213 when the locale folder is not found6214 raises an error6215 where there are existing /**/gitlab.po files6216 does not remove that locale6217 when there are locale folders without a gitlab.po file6218 removes those folders6219 when the gitlab.pot file cannot be generated6220 prints an error6221 when gettext:find changes the revision dates6222 resets the changes6223 :lint6224 when all PO files are valid6225Linting po files: |============================================================|6226 completes without error6227 when there are invalid PO files6228Linting po files: |============================================================|6229 raises an error6230 when the .pot file is invalid6231Linting po files: |============================================================|6232 raises an error6233DropdownsHelper6234 #dropdown_tag6235 returns the container in the content6236 returns the block in the content6237 #dropdown_toggle6238 returns the button6239 returns the buttons default label data attribute6240 returns the dropdown toggle text6241 returns the button icon in the content6242 #dropdown_toggle_link6243 returns the link6244 returns the links data attribute6245 returns the link text6246 #dropdown_title6247 with a back and close button6248 applies the justification class to the container6249 behaves like has a back button6250 contains the back button6251 behaves like has the title text6252 contains the title text6253 behaves like has a close button6254 contains the close button6255 behaves like has two icons6256 returns two icons6257 behaves like does not have the title margin class6258 does not have the title margin class6259 with a back button6260 returns the back button icon6261 behaves like has a back button6262 contains the back button6263 behaves like has the title text6264 contains the title text6265 behaves like has the title margin class6266 contains the title margin class6267 behaves like does not have a close button6268 does not contain the close button6269 with a close button6270 returns the close button icon6271 behaves like does not have a back button6272 does not contain the back button6273 behaves like has the title text6274 contains the title text6275 behaves like has the title margin class6276 contains the title margin class6277 behaves like has a close button6278 contains the close button6279 without any buttons6280 returns no button icons6281 behaves like does not have a back button6282 does not contain the back button6283 behaves like has the title text6284 contains the title text6285 behaves like does not have the title margin class6286 does not have the title margin class6287 behaves like does not have a close button6288 does not contain the close button6289 #dropdown_filter6290 returns the container6291 returns the search input6292 behaves like has two icons6293 returns two icons6294 #dropdown_content6295 without block6296 behaves like contains the container6297 returns the container in the content6298 with block6299 returns the block in the content6300 behaves like contains the container6301 returns the container in the content6302 #dropdown_footer6303 without a content class6304 behaves like contains the content6305 returns the container in the content6306 returns the block in the content6307 without a content class6308 returns the footer in the content6309 behaves like contains the content6310 returns the container in the content6311 returns the block in the content6312 #dropdown_loading6313 returns the container in the content6314 returns a gl-spinner in the content6315Ci::TriggerEntity6316 #as_json6317 contains required fields6318 contains user fields6319 when current user can manage triggers6320 returns short_token as token6321 contains project_trigger_path6322 does not contain edit_project_trigger_path6323 returns has_token_exposed6324 when current user is the owner of the trigger6325 returns token as token6326 contains project_trigger_path6327 contains edit_project_trigger_path6328 returns has_token_exposed6329ContainerExpirationPolicies::UpdateService6330 #execute6331 with existing container expiration policy6332 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"6333 behaves like updating the container expiration policy6334 behaves like updating the container expiration policy attributes6335 updates the container expiration policy6336 behaves like not creating the container expiration policy6337 doesn't create the container expiration policy6338 behaves like returning a success6339 returns a success6340 with invalid params6341 doesn't update the cadence6342 behaves like not creating the container expiration policy6343 doesn't create the container expiration policy6344 behaves like returning an error6345 returns an error6346 user_role: :developer, shared_examples_name: "denying access to container expiration policy"6347 behaves like denying access to container expiration policy6348 with existing container expiration policy6349 behaves like not creating the container expiration policy6350 doesn't create the container expiration policy6351 behaves like returning an error6352 returns an error6353 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"6354 behaves like denying access to container expiration policy6355 with existing container expiration policy6356 behaves like not creating the container expiration policy6357 doesn't create the container expiration policy6358 behaves like returning an error6359 returns an error6360 user_role: :guest, shared_examples_name: "denying access to container expiration policy"6361 behaves like denying access to container expiration policy6362 with existing container expiration policy6363 behaves like not creating the container expiration policy6364 doesn't create the container expiration policy6365 behaves like returning an error6366 returns an error6367 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"6368 behaves like denying access to container expiration policy6369 with existing container expiration policy6370 behaves like not creating the container expiration policy6371 doesn't create the container expiration policy6372 behaves like returning an error6373 returns an error6374 without existing container expiration policy6375 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"6376 behaves like creating the container expiration policy6377 behaves like updating the container expiration policy attributes6378 creates a new container expiration policy6379 updates the container expiration policy6380 behaves like returning a success6381 returns a success6382 user_role: :developer, shared_examples_name: "denying access to container expiration policy"6383 behaves like denying access to container expiration policy6384 with existing container expiration policy6385 behaves like not creating the container expiration policy6386 doesn't create the container expiration policy6387 behaves like returning an error6388 returns an error6389 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"6390 behaves like denying access to container expiration policy6391 with existing container expiration policy6392 behaves like not creating the container expiration policy6393 doesn't create the container expiration policy6394 behaves like returning an error6395 returns an error6396 user_role: :guest, shared_examples_name: "denying access to container expiration policy"6397 behaves like denying access to container expiration policy6398 with existing container expiration policy6399 behaves like not creating the container expiration policy6400 doesn't create the container expiration policy6401 behaves like returning an error6402 returns an error6403 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"6404 behaves like denying access to container expiration policy6405 with existing container expiration policy6406 behaves like not creating the container expiration policy6407 doesn't create the container expiration policy6408 behaves like returning an error6409 returns an error6410AlertManagement::HttpIntegration6411 associations6412 is expected to belong to project required: false6413 validations6414 is expected to validate that :project cannot be empty/falsy6415 is expected to validate that :name cannot be empty/falsy6416 is expected to validate that the length of :name is at most 2556417 when active6418 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active6419 when inactive6420 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active6421 payload_attribute_mapping6422 with valid JSON schema6423 is expected to be valid6424 with invalid JSON schema6425 when property is not an object6426 behaves like is invalid record6427 is expected to eq ["must be a valid json schema"]6428 when property missing required attributes6429 behaves like is invalid record6430 is expected to eq ["must be a valid json schema"]6431 when property has extra attributes6432 behaves like is invalid record6433 is expected to eq ["must be a valid json schema"]6434 before validation6435 #ensure_payload_example_not_nil6436 when the payload_example is nil6437 sets the payload_example to empty JSON6438 when the payload_example is not nil6439 sets the payload_example to specified value6440 #token6441 when unsaved6442 when unassigned6443 behaves like valid token6444 is expected to match /\A\h{32}\z/6445 when assigned6446 is expected not to eq "random_token"6447 behaves like valid token6448 is expected to match /\A\h{32}\z/6449 when persisted6450 behaves like valid token6451 is expected to match /\A\h{32}\z/6452 when resetting6453 is expected not to eq "f6a75eaa090c9e424c17f5f64f187e84"6454 behaves like valid token6455 is expected to match /\A\h{32}\z/6456 when reassigning6457 is expected to eq "c5baf42d47993cc1a4d063d61d041981"6458 behaves like valid token6459 is expected to match /\A\h{32}\z/6460 #endpoint_identifier6461 when defined on initialize6462 is expected to match /\A\h{16}\z/6463 when included in initialization args6464 is expected to eq "legacy"6465 when reassigning6466 does not allow reassignment6467 #url6468 is expected to eq "http://localhost/namespace1522/project1447/alerts/notify/datadog/429d65e5.json"6469 when name is not defined6470 is expected to eq "http://localhost/namespace1500/project1425/alerts/notify/http-endpoint/9c65f87b87224ec5.json"6471 for a legacy integration6472 is expected to eq "http://localhost/namespace1523/project1448/alerts/notify.json"6473ImportExportUpload6474 import6475 behaves like stores the Import/Export file6476 stores the import file6477 export6478 behaves like stores the Import/Export file6479 stores the import file6480 scopes6481 .with_export_file6482 returns uploads with export file6483 .updated_before6484 returns uploads for a specified date6485 ActiveRecord callbacks6486 export file is stored in after_commit callback6487 import file is stored in after_save callback6488 export file6489 #export_file_exists? returns false6490 #export_archive_exists? returns false6491 with export6492 #export_file_exists? returns true6493 #export_archive_exists? returns false6494 when object file does not exist6495 #export_file_exists? returns true6496 #export_archive_exists? returns false6497 when checking object existence raises a error6498 #export_file_exists? returns true6499 #export_archive_exists? returns false6500ReactiveCaching6501 #with_reactive_cache6502 when cache is empty6503 is expected to be nil6504 updates the cache lifespan6505 behaves like reactive worker call6506 performs caching with correct worker6507 behaves like reactive worker call6508 performs caching with correct worker6509 when the cache is full6510 behaves like a cacheable value6511 is expected to eq 46512 does not enqueue a background worker6513 updates the cache lifespan6514 and expired6515 is expected to be nil6516 behaves like reactive worker call6517 performs caching with correct worker6518 behaves like reactive worker call6519 performs caching with correct worker6520 when the cache contains non-nil but blank value6521 behaves like a cacheable value6522 is expected to eq false6523 does not enqueue a background worker6524 updates the cache lifespan6525 and expired6526 is expected to be nil6527 behaves like reactive worker call6528 performs caching with correct worker6529 behaves like reactive worker call6530 performs caching with correct worker6531 when the cache contains nil value6532 behaves like a cacheable value6533 is expected to eq nil6534 does not enqueue a background worker6535 updates the cache lifespan6536 and expired6537 is expected to be nil6538 behaves like reactive worker call6539 performs caching with correct worker6540 behaves like reactive worker call6541 performs caching with correct worker6542 #with_reactive_cache_set6543 calls with_reactive_cache6544 data returned6545 saves keys in set6546 returns the data6547 .reactive_cache_worker_finder6548 with default reactive_cache_worker_finder6549 calls the activerecord find_by method6550 with custom reactive_cache_worker_finder6551 overrides the default reactive_cache_worker_finder6552 #clear_reactive_cache!6553 is expected to be nil6554 is expected to be falsy6555 #exclusively_update_reactive_cache!6556 when the lease is free and lifetime is not exceeded6557 takes and releases the lease6558 enqueues a repeat worker6559 calls a reactive_cache_updated only once if content did not change on subsequent update6560 does not delete the value key6561 behaves like successful cache6562 caches the result of #calculate_reactive_cache6563 does not raise the exception6564 when :external_dependency cache6565 enqueues a repeat worker6566 when reactive_cache_hard_limit is set6567 when cache size is over the overridden limit6568 raises ExceededReactiveCacheLimit exception and does not cache new data6569 when reactive_cache_limit_enabled? is overridden to return false6570 behaves like successful cache6571 caches the result of #calculate_reactive_cache6572 does not raise the exception6573 when cache size is within the overridden limit6574 behaves like successful cache6575 caches the result of #calculate_reactive_cache6576 does not raise the exception6577 and #calculate_reactive_cache raises an exception6578 leaves the cache untouched6579 does not enqueue a repeat worker6580 when lifetime is exceeded6581 skips the calculation6582 deletes the value key6583 when the lease is already taken6584 skips the calculation6585 default options6586 is expected to be a kind of ActiveSupport::Duration6587 is expected to be a kind of ActiveSupport::Duration6588 is expected to be a kind of ActiveSupport::Duration6589 is expected to respond to #call6590 is expected to be nil6591 is expected to respond to #call6592 classes including this concern6593 sets reactive_cache_work_type6594Projects::TopicsFinder6595 #execute6596 returns topics6597 filter by name6598 search: "topic", result: ["topicC", "topicA", "topicB"]6599 returns filtered topics6600 search: "pic", result: ["topicC", "topicA", "topicB"]6601 returns filtered topics6602 search: "B", result: []6603 returns filtered topics6604 search: "cB", result: []6605 returns filtered topics6606 search: "icB", result: ["topicB"]6607 returns filtered topics6608 search: "topicA", result: ["topicA"]6609 returns filtered topics6610 search: "topica", result: ["topicA"]6611 returns filtered topics6612Gitlab::Regex6613 .debian_architecture_regex6614 is expected to match "amd64"6615 is expected to match "kfreebsd-i386"6616 is expected not to match ""6617 is expected not to match "-a"6618 is expected not to match "+a"6619 is expected not to match ".a"6620 is expected not to match "_a"6621 is expected not to match "a+b"6622 is expected not to match "a.b"6623 is expected not to match "a_b"6624 is expected not to match "a~"6625 is expected not to match "aé"6626 is expected not to match "AMD64"6627 is expected not to match "Amd64"6628 is expected not to match "aMD64"6629 .npm_package_name_regex6630 is expected to match "@scope/package"6631 is expected to match "unscoped-package"6632 is expected not to match "@first-scope@second-scope/package"6633 is expected not to match "scope-without-at-symbol/package"6634 is expected not to match "@not-a-scoped-package"6635 is expected not to match "@scope/sub/package"6636 is expected not to match "@scope/../../package"6637 is expected not to match "@scope%2e%2e%2fpackage"6638 is expected not to match "@%2e%2e%2f/package"6639 capturing group6640 extracts the scope name for @scope/package6641 extracts the scope name for unscoped-package6642 extracts the scope name for @not-a-scoped-package6643 extracts the scope name for @scope/sub/package6644 extracts the scope name for @inv@lid-scope/package6645 .debian_distribution_regex6646 is expected to match "buster"6647 is expected to match "buster-updates"6648 is expected to match "Debian10.5"6649 is expected not to match "jessie/updates"6650 is expected not to match "hé"6651 .debian_component_regex6652 is expected to match "main"6653 is expected to match "non-free"6654 is expected not to match "non/free"6655 is expected not to match "hé"6656gitlab:cleanup rake tasks6657 cleanup:project_uploads6658 with a fixable orphaned project upload file6659 with DRY_RUN disabled6660 moves the file to its proper location6661 logs action as done6662 with DRY_RUN explicitly enabled6663 behaves like does not move the file6664 does not move the file6665 logs action as able to be done6666 with DRY_RUN set to an unknown value6667 behaves like does not move the file6668 does not move the file6669 logs action as able to be done6670 with DRY_RUN unset6671 behaves like does not move the file6672 does not move the file6673 logs action as able to be done6674 gitlab:cleanup:orphan_job_artifact_files6675 runs the task without errors6676 with DRY_RUN set to false6677 passes dry_run correctly6678 gitlab:cleanup:orphan_lfs_file_references6679 runs the task without errors6680 with DRY_RUN set to false6681 passes dry_run correctly6682 gitlab:cleanup:orphan_lfs_files6683 runs RemoveUnreferencedLfsObjectsWorker6684 sessions6685 gitlab:cleanup:sessions:active_sessions_lookup_keys6686 runs the task without errors6687 removes expired active session lookup keys6688BulkImports::Entity6689 associations6690 is expected to belong to bulk_import required: true6691 is expected to belong to parent required: false6692 is expected to belong to group required: false6693 is expected to belong to project required: false6694 validations6695 is expected to validate that :source_type cannot be empty/falsy6696 is expected to validate that :source_full_path cannot be empty/falsy6697 is expected to validate that :destination_name cannot be empty/falsy6698 is expected to define :source_type as an enum backed by an integer with values ‹[:group_entity, :project_entity]›6699 when associated with a group and project6700 is invalid6701 when not associated with a group or project6702 is valid6703 when associated with a group and no project6704 is valid as a group_entity6705 is valid when destination_namespace is empty6706 is invalid as a project_entity6707 when associated with a project and no group6708 is valid6709 is invalid when destination_namespace is nil6710 is invalid as a project_entity6711 when the parent is a group import6712 is valid6713 when the parent is a project import6714 is invalid6715 validate destination namespace of a group_entity6716 is invalid if destination namespace is the source namespace6717 is invalid if destination namespace is a descendant of the source6718 #encoded_source_full_path6719 encodes entity source full path6720 scopes6721 .by_user_id6722 returns entities associated with specified user6723 .all_human_statuses6724 returns all human readable entity statuses6725 #pipelines6726 when entity is group6727 returns group pipelines6728 when entity is project6729 returns project pipelines6730 #pipeline_exists?6731 returns true when the given pipeline name exists in the pipelines list6732 returns false when the given pipeline name exists in the pipelines list6733 #pluralized_name6734 when entity is group6735 returns groups6736 when entity is project6737 returns projects6738 #export_relations_url_path6739 when entity is group6740 returns group export relations url6741 when entity is project6742 returns project export relations url6743 #relation_download_url_path6744 returns export relations url with download query string6745 #entity_type6746 returns entity type6747 #project?6748 returns true if project entity6749 #group?6750 returns true if group entity6751 #base_resource_url_path6752 returns base entity url path6753 #wiki_url_path6754 returns entity wiki url path6755 #update_service6756 returns correct update service class6757gitlab:packages:events namespace rake task6758 generate_unique6759 excludes guest events6760 includes `maven` scope6761 includes `npm` scope6762 includes `conan` scope6763 includes `nuget` scope6764 includes `pypi` scope6765 includes `composer` scope6766 includes `generic` scope6767 includes `golang` scope6768 includes `debian` scope6769 includes `rubygems` scope6770 includes `helm` scope6771 includes `terraform_module` scope6772 includes `container` scope6773 includes `tag` scope6774 includes `dependency_proxy` scope6775 excludes some event types6776 generate_counts6777 includes `maven` scope6778 includes `npm` scope6779 includes `conan` scope6780 includes `nuget` scope6781 includes `pypi` scope6782 includes `composer` scope6783 includes `generic` scope6784 includes `golang` scope6785 includes `debian` scope6786 includes `rubygems` scope6787 includes `helm` scope6788 includes `terraform_module` scope6789 includes `container` scope6790 includes `tag` scope6791 includes `dependency_proxy` scope6792 excludes some event types6793NamespaceSettings::UpdateService6794 #execute6795 group has no namespace_settings6796 builds out a new namespace_settings record6797 group has a namespace_settings6798 doesn't create a new namespace_setting record6799 updating :default_branch_name6800 changes settings6801 updating :resource_access_token_creation_allowed6802 when user is a group owner6803 changes settings6804 when user is not a group owner6805 does not change settings6806 returns the group owner error6807 validating settings param for root group6808 setting_key: :prevent_sharing_groups_outside_hierarchy, setting_changes_from: false, setting_changes_to: true6809 when user is not a group owner6810 does not change settings6811 returns the group owner error6812 with a subgroup6813 does not change settings6814 when user is a group owner6815 changes settings6816 setting_key: :new_user_signups_cap, setting_changes_from: nil, setting_changes_to: 1006817 when user is not a group owner6818 does not change settings6819 returns the group owner error6820 with a subgroup6821 does not change settings6822 when user is a group owner6823 changes settings6824Mutations::Namespace::PackageSettings::Update6825 is expected to require graphql authorizations :admin_package6826 #resolve6827 with existing namespace package setting6828 user_role: :maintainer, shared_examples_name: "updating the namespace package setting"6829 behaves like updating the namespace package setting6830 behaves like updating the namespace package setting attributes6831 updates the namespace package setting6832 behaves like not creating the namespace package setting6833 doesn't create the namespace package setting6834 behaves like returning a success6835 returns the namespace package setting with no errors6836 with invalid params6837 doesn't update the maven_duplicates_allowed6838 returns an error6839 behaves like not creating the namespace package setting6840 doesn't create the namespace package setting6841 user_role: :developer, shared_examples_name: "denying access to namespace package setting"6842 behaves like denying access to namespace package setting6843 raises Gitlab::Graphql::Errors::ResourceNotAvailable6844 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6845 behaves like denying access to namespace package setting6846 raises Gitlab::Graphql::Errors::ResourceNotAvailable6847 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6848 behaves like denying access to namespace package setting6849 raises Gitlab::Graphql::Errors::ResourceNotAvailable6850 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6851 behaves like denying access to namespace package setting6852 raises Gitlab::Graphql::Errors::ResourceNotAvailable6853 without existing namespace package setting6854 user_role: :maintainer, shared_examples_name: "creating the namespace package setting"6855 behaves like creating the namespace package setting6856 creates a new package setting6857 saves the settings6858 behaves like returning a success6859 returns the namespace package setting with no errors6860 user_role: :developer, shared_examples_name: "denying access to namespace package setting"6861 behaves like denying access to namespace package setting6862 raises Gitlab::Graphql::Errors::ResourceNotAvailable6863 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6864 behaves like denying access to namespace package setting6865 raises Gitlab::Graphql::Errors::ResourceNotAvailable6866 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6867 behaves like denying access to namespace package setting6868 raises Gitlab::Graphql::Errors::ResourceNotAvailable6869 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6870 behaves like denying access to namespace package setting6871 raises Gitlab::Graphql::Errors::ResourceNotAvailable6872Packages::PackagesFinder6873 #execute6874 with package_type6875 conan packages6876 is expected to eq [#<Packages::Package id: 4, project_id: 838, created_at: "2022-06-28 20:25:45.350883949 +0000", updat...0000", name: "conan", version: "1.0.0", package_type: "conan", creator_id: 2416, status: "default">]6877 npm packages6878 is expected to contain exactly #<Packages::Package id: 5, project_id: 838, created_at: "2022-06-29 20:25:45.967788121 +0000", update...amespace1551/package-1", version: "1.0.1", package_type: "npm", creator_id: 2416, status: "default"> and #<Packages::Package id: 6, project_id: 838, created_at: "2022-06-29 20:25:46.008398064 +0000", update...amespace1551/package-2", version: "1.0.2", package_type: "npm", creator_id: 2416, status: "default">6879 with order_by6880 by default is created_at6881 is expected to eq [#<Packages::Package id: 2, project_id: 838, created_at: "2022-06-27 20:25:44.951167744 +0000", updat...0000", name: "conan", version: "1.0.0", package_type: "conan", creator_id: 2416, status: "default">]6882 order by name6883 is expected to eq [#<Packages::Package id: 4, project_id: 838, created_at: "2022-06-28 20:25:45.350883949 +0000", updat...0000", name: "maven", version: "2.0.0", package_type: "maven", creator_id: 2416, status: "default">]6884 order by version6885 is expected to eq [#<Packages::Package id: 4, project_id: 838, created_at: "2022-06-28 20:25:45.350883949 +0000", updat...0000", name: "maven", version: "2.0.0", package_type: "maven", creator_id: 2416, status: "default">]6886 order by type6887 is expected to eq [#<Packages::Package id: 2, project_id: 838, created_at: "2022-06-27 20:25:44.951167744 +0000", updat...0000", name: "conan", version: "1.0.0", package_type: "conan", creator_id: 2416, status: "default">]6888 with sort6889 by default is ascending6890 is expected to eq [#<Packages::Package id: 2, project_id: 838, created_at: "2022-06-27 20:25:44.951167744 +0000", updat...0000", name: "conan", version: "1.0.0", package_type: "conan", creator_id: 2416, status: "default">]6891 can sort descended6892 is expected to eq [#<Packages::Package id: 4, project_id: 838, created_at: "2022-06-28 20:25:45.350883949 +0000", updat...0000", name: "maven", version: "2.0.0", package_type: "maven", creator_id: 2416, status: "default">]6893 with package_name6894 is expected to eq [#<Packages::Package id: 2, project_id: 838, created_at: "2022-06-27 20:25:44.951167744 +0000", updat...0000", name: "maven", version: "2.0.0", package_type: "maven", creator_id: 2416, status: "default">]6895 with nil params6896 is expected to contain exactly #<Packages::Package id: 4, project_id: 838, created_at: "2022-06-28 20:25:45.350883949 +0000", update...+0000", name: "conan", version: "1.0.0", package_type: "conan", creator_id: 2416, status: "default"> and #<Packages::Package id: 2, project_id: 838, created_at: "2022-06-27 20:25:44.951167744 +0000", update...+0000", name: "maven", version: "2.0.0", package_type: "maven", creator_id: 2416, status: "default">6897 with processing packages6898 is expected to contain exactly #<Packages::Package id: 4, project_id: 838, created_at: "2022-06-28 20:25:45.350883949 +0000", update...+0000", name: "conan", version: "1.0.0", package_type: "conan", creator_id: 2416, status: "default"> and #<Packages::Package id: 2, project_id: 838, created_at: "2022-06-27 20:25:44.951167744 +0000", update...+0000", name: "maven", version: "2.0.0", package_type: "maven", creator_id: 2416, status: "default">6899 preload_pipelines6900 preloads pipelines by default6901 set to false6902 does not preload pipelines6903 behaves like concerning versionless param6904 is expected not to include #<Packages::Package id: 9, project_id: 838, created_at: "2022-06-29 20:25:46.862824727 +0000", update...: "my/company/app/my-app", version: nil, package_type: "maven", creator_id: 2416, status: "default">6905 with valid include_versionless param6906 is expected to include #<Packages::Package id: 9, project_id: 838, created_at: "2022-06-29 20:25:46.862824727 +0000", update...: "my/company/app/my-app", version: nil, package_type: "maven", creator_id: 2416, status: "default">6907 with empty include_versionless param6908 is expected not to include #<Packages::Package id: 9, project_id: 838, created_at: "2022-06-29 20:25:46.862824727 +0000", update...: "my/company/app/my-app", version: nil, package_type: "maven", creator_id: 2416, status: "default">6909 behaves like concerning package statuses6910 displayable packages6911 is expected not to include #<Packages::Package id: 11, project_id: 838, created_at: "2022-06-29 20:25:47.253558704 +0000", updat...any/app/my-app", version: "1.3-SNAPSHOT", package_type: "maven", creator_id: 2416, status: "hidden">6912 is expected to include #<Packages::Package id: 13, project_id: 838, created_at: "2022-06-29 20:25:47.521465301 +0000", updat...pany/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 2416, status: "error">6913 with status param6914 is expected to contain exactly #<Packages::Package id: 11, project_id: 838, created_at: "2022-06-29 20:25:47.253558704 +0000", updat...any/app/my-app", version: "1.3-SNAPSHOT", package_type: "maven", creator_id: 2416, status: "hidden">6915 with invalid status param6916 is expected to raise Packages::FinderHelper::InvalidStatusError6917Email6918 normalize email value6919 modules6920 is expected to includes the AsyncDeviseEmail module6921 validations6922 behaves like an object with email-formatted attributes6923 specifically its :email attribute6924 with a value of 'info@example.com'6925 is valid6926 with a value of 'info+test@example.com'6927 is valid6928 with a value of 'o'reilly@example.com'6929 is valid6930 with a value of 'mailto:test@example.com'6931 is valid6932 with a value of 'lol!'+=?><#$%^&*()@gmail.com'6933 is valid6934 with a value of 'foobar'6935 is invalid6936 with a value of 'test@test@example.com'6937 is invalid6938 when the email conflicts with the primary email of a different user6939 is invalid6940 #update_invalid_gpg_signatures6941 synchronizes the gpg keys when the email is updated6942 scopes6943 scopes confirmed emails6944 delegations6945 is expected to delegate #can? to the #user object6946 is expected to delegate #username to the #user object6947 is expected to delegate #pending_invitations to the #user object6948 is expected to delegate #accept_pending_invitations! to the #user object6949 Devise emails6950 behaviour6951 sends emails asynchronously6952 #confirm6953 when the confirmation period has expired6954 does not confirm the email6955 behaves like unconfirmed email6956 returns unconfirmed6957 when the confirmation period has not expired6958 confirms the email6959 behaves like unconfirmed email6960 returns unconfirmed6961 #force_confirm6962 when the confirmation period has expired6963 behaves like unconfirmed email6964 returns unconfirmed6965 behaves like confirms the email on force_confirm6966 confirms an email6967 when the confirmation period has not expired6968 behaves like unconfirmed email6969 returns unconfirmed6970 behaves like confirms the email on force_confirm6971 confirms an email6972Gitlab::Logger6973 .build6974 builds logger using Gitlab::Logger.log_level6975 raises ArgumentError if invalid log level6976 env_value: 0, resulting_level: 06977 builds logger if valid log level6978 env_value: :debug, resulting_level: 06979 builds logger if valid log level6980 env_value: "debug", resulting_level: 06981 builds logger if valid log level6982 env_value: "DEBUG", resulting_level: 06983 builds logger if valid log level6984 env_value: "DeBuG", resulting_level: 06985 builds logger if valid log level6986 env_value: 1, resulting_level: 16987 builds logger if valid log level6988 env_value: :info, resulting_level: 16989 builds logger if valid log level6990 env_value: "info", resulting_level: 16991 builds logger if valid log level6992 env_value: "INFO", resulting_level: 16993 builds logger if valid log level6994 env_value: "InFo", resulting_level: 16995 builds logger if valid log level6996 env_value: 2, resulting_level: 26997 builds logger if valid log level6998 env_value: :warn, resulting_level: 26999 builds logger if valid log level7000 env_value: "warn", resulting_level: 27001 builds logger if valid log level7002 env_value: "WARN", resulting_level: 27003 builds logger if valid log level7004 env_value: "WaRn", resulting_level: 27005 builds logger if valid log level7006 env_value: 3, resulting_level: 37007 builds logger if valid log level7008 env_value: :error, resulting_level: 37009 builds logger if valid log level7010 env_value: "error", resulting_level: 37011 builds logger if valid log level7012 env_value: "ERROR", resulting_level: 37013 builds logger if valid log level7014 env_value: "ErRoR", resulting_level: 37015 builds logger if valid log level7016 env_value: 4, resulting_level: 47017 builds logger if valid log level7018 env_value: :fatal, resulting_level: 47019 builds logger if valid log level7020 env_value: "fatal", resulting_level: 47021 builds logger if valid log level7022 env_value: "FATAL", resulting_level: 47023 builds logger if valid log level7024 env_value: "FaTaL", resulting_level: 47025 builds logger if valid log level7026 env_value: 5, resulting_level: 57027 builds logger if valid log level7028 env_value: :unknown, resulting_level: 57029 builds logger if valid log level7030 env_value: "unknown", resulting_level: 57031 builds logger if valid log level7032 env_value: "UNKNOWN", resulting_level: 57033 builds logger if valid log level7034 env_value: "UnKnOwN", resulting_level: 57035 builds logger if valid log level7036 .log_level7037 if GITLAB_LOG_LEVEL is set7038 returns value of GITLAB_LOG_LEVEL7039 ignores fallback7040 if GITLAB_LOG_LEVEL is not set7041 returns default fallback DEBUG7042 returns passed fallback7043Feature::Definition7044 #key7045 returns a symbol from name7046 #validate!7047 param: :name, value: nil, result: /Feature flag is missing name/7048 is expected to raise /Feature flag is missing name/7049 param: :path, value: nil, result: /Feature flag 'feature_flag' is missing path/7050 is expected to raise /Feature flag 'feature_flag' is missing path/7051 param: :type, value: nil, result: /Feature flag 'feature_flag' is missing type/7052 is expected to raise /Feature flag 'feature_flag' is missing type/7053 param: :type, value: "invalid", result: /Feature flag 'feature_flag' type 'invalid' is invalid/7054 is expected to raise /Feature flag 'feature_flag' type 'invalid' is invalid/7055 param: :path, value: "development/invalid.yml", result: /Feature flag 'feature_flag' has an invalid path/7056 is expected to raise /Feature flag 'feature_flag' has an invalid path/7057 param: :path, value: "invalid/feature_flag.yml", result: /Feature flag 'feature_flag' has an invalid type/7058 is expected to raise /Feature flag 'feature_flag' has an invalid type/7059 param: :default_enabled, value: nil, result: /Feature flag 'feature_flag' is missing default_enabled/7060 is expected to raise /Feature flag 'feature_flag' is missing default_enabled/7061 #valid_usage!7062 validates type7063 raises exception for invalid type7064 .paths7065 returns at least one path7066 .load_from_file7067 properly loads a definition from file7068 for missing file7069 raises exception7070 for invalid definition7071 raises exception7072 .load_all!7073 when there's no feature flags a list of definitions is empty7074 when there's a single feature flag it properly loads them7075 when the same feature flag is stored multiple times raises exception7076 when one of the YAMLs is invalid it does raise exception7077 .for_upcoming_milestone?7078 ctx: "no milestone", milestone: nil, current_milestone: "1.0.0", expected: false7079 is expected to equal false7080 ctx: "upcoming milestone - major", milestone: "2.3", current_milestone: "1.9.999", expected: true7081 is expected to equal true7082 ctx: "upcoming milestone - minor", milestone: "2.3", current_milestone: "2.2.999", expected: true7083 is expected to equal true7084 ctx: "current milestone", milestone: "2.3", current_milestone: "2.3.999", expected: true7085 is expected to equal true7086 ctx: "past milestone - major", milestone: "1.9", current_milestone: "2.3.999", expected: false7087 is expected to equal false7088 ctx: "past milestone - minor", milestone: "2.2", current_milestone: "2.3.999", expected: false7089 is expected to equal false7090 .valid_usage!7091 when a known feature flag is used7092 validates it usage7093 when an unknown feature flag is used7094 for a type that is required to have all feature flags registered7095 raises exception7096 for a type that is optional7097 does not raise exception7098 for an unknown type7099 raises exception7100 .log_states?7101 ctx: "When flag does not exist", key: :no_flag, milestone: "0.0", log_state_change: true, expected: false7102 is expected to equal false7103 ctx: "When flag is old, and logging is not forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: false, expected: false7104 is expected to equal false7105 ctx: "When flag is old, but logging is forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: true, expected: true7106 is expected to equal true7107 ctx: "When flag is current", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true7108 is expected to equal true7109 ctx: "Flag is upcoming", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true7110 is expected to equal true7111 .default_enabled?7112 when feature flag exist7113 when default_enabled is true7114 returns the value from the definition7115 when default_enabled is false7116 returns the value from the definition7117 when feature flag does not exist7118 when passing default value7119 returns default value7120 when default value is undefined7121 when on dev or test environment7122 raises an error7123 when on production environment7124 returns false7125PrometheusAlert7126 .distinct_projects7127 returns a count of all distinct projects which have an alert7128 operators7129 contains the correct equality operator7130 associations7131 is expected to belong to project required: false7132 is expected to belong to environment required: false7133 is expected to belong to prometheus_metric required: false7134 is expected to have many prometheus_alert_events7135 is expected to have many related_issues7136 is expected to have many alert_management_alerts7137 project validations7138 is expected to validate that :environment cannot be empty/falsy7139 is expected to validate that :project cannot be empty/falsy7140 is expected to validate that :prometheus_metric cannot be empty/falsy7141 is expected to validate that :operator cannot be empty/falsy7142 is expected to validate that :threshold cannot be empty/falsy7143 when environment and metric belongs same project7144 is expected to be valid7145 when environment belongs to different project7146 is expected not to be valid7147 when metric belongs to different project7148 is expected not to be valid7149 when metric is common7150 is expected to be valid7151 runbook validations7152 disallow invalid urls7153 allow valid urls7154 #full_query7155 returns the concatenated query7156 #to_param7157 returns the params of the prometheus alert7158Deployments::ArchiveInProjectService7159 #execute7160 when there are archivable deployments7161 returns result code7162 archives the deployment7163 when ref does not exist by some reason7164 does not raise an error7165 when there are no archivable deployments7166 returns result code7167Integrations::Test::ProjectService7168 #execute7169 without event specified7170 tests the integration with default data7171 with Integrations::PipelinesEmail7172 behaves like tests for integration with pipeline data7173 tests the integration with pipeline data7174 with event specified7175 event not supported by integration7176 returns error message7177 push7178 executes integration7179 tag_push7180 executes integration7181 note7182 returns error message if not enough data7183 executes integration7184 issue7185 behaves like a test of an integration that operates on issues7186 returns error message if not enough data7187 executes integration7188 confidential_issue7189 behaves like a test of an integration that operates on issues7190 returns error message if not enough data7191 executes integration7192 merge_request7193 returns error message if not enough data7194 executes integration7195 deployment7196 returns error message if not enough data7197 executes integration7198 pipeline7199 returns error message if not enough data7200 executes integration7201 wiki_page7202 returns error message if wiki disabled7203 returns error message if not enough data7204 executes integration7205SystemNotes::CommitService7206 #add_commits7207 behaves like a system note7208 has the correct attributes7209 note body7210 comparison diff link line7211 adds the comparison text7212 without existing commits7213 adds a message header7214 adds a message for each commit7215 summary line for existing commits7216 with one existing commit7217 includes the existing commit7218 with multiple existing commits7219 with oldrev7220 includes a commit range and count7221 without oldrev7222 includes a commit range and count7223 on a fork7224 includes the project namespace7225 #tag_commit7226 sets the note text7227 behaves like a system note7228 has the correct attributes7229 #new_commit_summary7230 escapes HTML titles7231Gitlab::SidekiqDaemon::MemoryKiller7232 #run_thread7233 not invoke restart_sidekiq when rss in range7234 invoke restart_sidekiq when rss not in range7235 when structured logging is used7236 logs start message once7237 logs StandardError message twice7238 logs exception message once and raise exception and log stop message7239 logs stop message once7240 #stop_working7241 changes enable? to false7242 #rss_within_range?7243 return true when everything is within limit7244 return false when rss exceeds hard_limit_rss7245 return false when rss exceed hard_limit_rss after a while7246 return true when rss below soft_limit_rss after a while within GRACE_BALLOON_SECONDS7247 when exceeding GRACE_BALLOON_SECONDS7248 return false when rss exceed soft_limit_rss7249 #restart_sidekiq7250 send signal7251 #signal_and_wait7252 send signal and return when all jobs finished7253 send signal and wait till deadline if any job not finished7254 #signal_pgroup7255 send signal to this proces if it is not group leader7256 send signal to whole process group as group leader7257 #log_rss_out_of_range7258 invoke sidekiq logger warn7259 #out_of_range_description7260 when rss > hard_limit7261 tells reason7262 when rss <= hard_limit7263 tells reason7264 #rss_increase_by_jobs7265 adds up individual rss_increase_by_job7266 return 0 if no job7267 #rss_increase_by_job7268 return 0 if memory_growth_kb return 07269 return time factored growth value when it does not exceed max growth limit for whilited job7270 return max growth limit when time factored growth value exceed max growth limit for whilited job7271 #get_job_options7272 return default if key is not defined7273 return default if get StandardError when retrieve sidekiq_options7274 return right value if sidekiq_options has the key7275 #refresh_state7276 calls gitlab metrics gauge set methods7277Gitlab::Ci::Pipeline::Seed::Environment7278 #to_resource7279 when job has environment name attribute7280 behaves like returning a correct environment7281 returns a persisted environment object7282 when environment has already existed7283 returns the existing environment object7284 and job environment also has an auto_stop_in attribute7285 behaves like returning a correct environment7286 returns a persisted environment object7287 when environment has already existed7288 returns the existing environment object7289 when job has deployment tier attribute7290 when environment has not been created yet7291 sets the specified deployment tier7292 when deployment tier is staging7293 sets the specified deployment tier7294 when deployment tier is unknown7295 raises an error7296 when environment has already been created7297 does not overwrite the specified deployment tier7298 when job starts a review app7299 behaves like returning a correct environment7300 returns a persisted environment object7301 when environment has already existed7302 returns the existing environment object7303 when job stops a review app7304 behaves like returning a correct environment7305 returns a persisted environment object7306 when environment has already existed7307 returns the existing environment object7308DesignManagement::DesignCollection7309 .find_or_create_design!7310 finds an existing design7311 creates a new design if one didn't exist7312 only queries the designs once7313 inserts the design after any existing designs7314 #copy_state7315 defaults to ready7316 persists its state changes between initializations7317 state: "ready", can_start: true, can_end: false, can_error: true, can_reset: true7318 maintains state machine transition rules7319 state: "in_progress", can_start: false, can_end: true, can_error: true, can_reset: true7320 maintains state machine transition rules7321 state: "error", can_start: false, can_end: false, can_error: false, can_reset: true7322 maintains state machine transition rules7323 clearing the redis cached state when state changes back to ready7324 clears the cached state on end_copy!7325 clears the cached state on reset_copy!7326 #empty?7327 is true when the design collection has no designs7328 is false when the design collection has designs7329 #versions7330 includes versions for all designs7331 #repository7332 builds a design repository7333 #designs_by_filename7334 finds all the designs with those filenames on this issue7335 only makes a single query7336 some are deleted7337 takes deletion into account7338Gitlab::X509::Certificate7339 testing environment setup7340 generate_root7341 generates a root CA that expires a long way in the future7342 generate_intermediate7343 generates an intermediate CA that expires a long way in the future7344 generates an intermediate CA properly signed by the root CA7345 generate_cert7346 generates a cert properly signed by the intermediate CA7347 generates a cert that expires soon7348 generates a cert intended for email signing7349 passing in INFINITE_EXPIRY7350 generates a cert that expires a long way in the future7351 .from_strings7352 parses correctly a certificate and key7353 .from_files7354 parses correctly a certificate and key7355 with optional ca_certs7356 parses correctly certificate, key and ca_certs7357 with no intermediate CA7358 parses correctly a certificate and key7359 .default_cert_dir7360 when SSL_CERT_DIR env variable is not set7361 returns default directory from OpenSSL7362 when SSL_CERT_DIR env variable is set7363 returns specified directory7364 .default_cert_file7365 when SSL_CERT_FILE env variable is not set7366 returns default file from OpenSSL7367 when SSL_CERT_FILE env variable is set7368 returns specified file7369 .ca_certs_paths7370 returns all files specified by OpenSSL defaults7371 .ca_certs_bundle7372 skips certificates if OpenSSLError is raised and report it7373 returns a list certificates as strings7374 .load_ca_certs_bundle7375 loads a PEM-encoded certificate bundle into an OpenSSL::X509::Certificate array7376Gitlab::Ci::Config::Entry::Trigger7377 when trigger config is a non-empty string7378 #valid?7379 is expected to be valid7380 #value7381 returns a trigger configuration hash7382 when trigger config an empty string7383 #valid?7384 is expected not to be valid7385 #errors7386 returns an error about an empty config7387 when trigger is a hash - cross-project7388 when branch is provided7389 #valid?7390 is expected to be valid7391 #value7392 returns a trigger configuration hash7393 when strategy is provided7394 when strategy is depend7395 #valid?7396 is expected to be valid7397 #value7398 returns a trigger configuration hash7399 when strategy is invalid7400 #valid?7401 is expected not to be valid7402 #errors7403 returns an error about unknown config key7404 when config contains unknown keys7405 #valid?7406 is expected not to be valid7407 #errors7408 returns an error about unknown config key7409 with forward7410 is expected to be valid7411 returns a trigger configuration hash7412 when trigger is a hash - parent-child7413 with simple include7414 is expected to be valid7415 returns a trigger configuration hash7416 with project7417 is expected not to be valid7418 returns an error7419 with branch7420 is expected not to be valid7421 returns an error7422 with forward7423 is expected to be valid7424 returns a trigger configuration hash7425 when trigger configuration is not valid7426 when branch is not provided7427 #valid?7428 is expected not to be valid7429 #errors7430 returns an error message7431Badge7432 validations7433 link_url format7434 behaves like placeholder url7435 allows url with http protocol7436 allows url with https protocol7437 cannot be empty7438 cannot be nil7439 accept badges placeholders7440 sanitize url7441 image_url format7442 behaves like placeholder url7443 allows url with http protocol7444 allows url with https protocol7445 cannot be empty7446 cannot be nil7447 accept badges placeholders7448 sanitize url7449 methods7450 #rendered_link_url7451 behaves like rendered_links7452 uses the project information to populate the url placeholders7453 returns the url if the project used is nil7454 #rendered_image_url7455 behaves like rendered_links7456 uses the project information to populate the url placeholders7457 returns the url if the project used is nil7458 when asset proxy is enabled7459 returns a proxied URL7460NamespaceStatistics7461 is expected to belong to namespace required: false7462 is expected to validate that :namespace cannot be empty/falsy7463 #refresh!7464 when database is read_only7465 does not save the object7466 when namespace belong to a user7467 does not save the object7468 when invalid option is passed7469 does not update any column7470 behaves like creates the namespace statistics7471 is expected to receive save!(*(any args)) 1 time7472 when no option is passed7473 updates the dependency proxy size7474 behaves like creates the namespace statistics7475 is expected to receive save!(*(any args)) 1 time7476 when dependency_proxy_size option is passed7477 updates the dependency proxy size7478 behaves like creates the namespace statistics7479 is expected to receive save!(*(any args)) 1 time7480 #update_storage_size7481 sets storage_size to the dependency_proxy_size7482 #update_dependency_proxy_size7483 updates the dependency proxy size7484 when namespace does not belong to a group7485 does not update the dependency proxy size7486 before saving statistics7487 updates storage size7488 after saving statistics7489 when storage_size is not updated7490 does not enqueue the job to update root storage statistics7491 when storage_size is updated7492 enqueues the job to update root storage statistics7493 when namespace does not belong to a group7494 does not enqueue the job to update root storage statistics7495 when other columns are updated7496 does not enqueue the job to update root storage statistics7497 after destroy statistics7498 enqueues the job to update root storage statistics7499 when namespace belongs to a group7500 does not enqueue the job to update root storage statistics7501BulkInsertSafe7502-- create_table(:_test_bulk_insert_parent_items, {:force=>true})7503 -> 0.0046s7504-- create_table(:_test_bulk_insert_items, {:force=>true})7505 -> 0.0089s7506-- create_table(:_test_bulk_insert_items_with_composite_pk, {:id=>false, :force=>true})7507 -> 0.0029s7508-- execute("ALTER TABLE _test_bulk_insert_items_with_composite_pk ADD PRIMARY KEY (id,name);")7509 -> 0.0016s7510 BulkInsertItem7511 behaves like a BulkInsertSafe model7512 when calling class methods directly7513 raises an error when method is not bulk-insert safe7514 does not raise an error when method is bulk-insert safe7515 .bulk_insert!7516 when all items are valid7517 inserts them all7518 returns an empty array7519 when some items are invalid7520 does not insert any of them and raises an error7521 inserts them anyway when bypassing validations7522 when inheriting class methods7523 raises an error when method is not bulk-insert safe7524 does not raise an error when method is bulk-insert safe7525 primary keys7526 raises error if primary keys are set prior to insertion7527 .bulk_insert!7528 inserts items in the given number of batches7529 inserts items with belongs_to association7530 items can be properly fetched from database7531 rolls back the transaction when any item is invalid7532 does nothing and returns an empty array when items are empty7533 with returns option set7534 when is set to :ids7535 is expected to contain exactly (a kind of Integer)7536 when is set to nil7537 is expected to eq []7538 when is set to a list of attributes7539 is expected to contain exactly [(a kind of Integer), "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"]7540 when duplicate items are to be inserted7541 .bulk_insert!7542 when skip_duplicates is set to false7543 raises an exception7544 when skip_duplicates is set to true7545 does not update existing object7546 .bulk_upsert!7547 updates existing object7548 when the `created_at` attribute is provided7549 does not change the existing `created_at` value7550 when a model with composite primary key is inserted7551WARNING: Active Record does not support composite primary key.7552_test_bulk_insert_items_with_composite_pk has composite primary key. Composite primary key is ignored.7553 successfully inserts an item7554-- drop_table(:_test_bulk_insert_items, {:force=>true})7555 -> 0.0043s7556-- drop_table(:_test_bulk_insert_parent_items, {:force=>true})7557 -> 0.0019s7558-- drop_table(:_test_bulk_insert_items_with_composite_pk, {:force=>true})7559 -> 0.0016s7560Gitlab::Middleware::Multipart7561 #call7562 remote file mode7563 behaves like handling all upload parameters conditions7564 one root parameter7565 builds an UploadedFile7566 two root parameters7567 builds UploadedFiles7568 one nested parameter7569 builds an UploadedFile7570 two nested parameters7571 builds UploadedFiles7572 one deeply nested parameter7573 builds an UploadedFile7574 two deeply nested parameters7575 builds UploadedFiles7576 three parameters nested at different levels7577 builds UploadedFiles7578 and a path set7579 builds an UploadedFile7580 local file mode7581 behaves like handling all upload parameters conditions7582 one root parameter7583 builds an UploadedFile7584 two root parameters7585 builds UploadedFiles7586 one nested parameter7587 builds an UploadedFile7588 two nested parameters7589 builds UploadedFiles7590 one deeply nested parameter7591 builds an UploadedFile7592 two deeply nested parameters7593 builds UploadedFiles7594 three parameters nested at different levels7595 builds UploadedFiles7596 when file is7597 in allowed paths7598 builds an UploadedFile7599 not in allowed paths7600 returns an error7601 with dummy params in remote mode7602 with an invalid secret7603 is expected to raise JWT::VerificationError7604 with an invalid issuer7605 is expected to raise JWT::InvalidIssuerError7606 with invalid rewritten field key7607 [file]7608 is expected to raise RuntimeError with "invalid field: \"[file]\""7609 ;file7610 is expected to raise RuntimeError with "invalid field: \";file\""7611 file]7612 is expected to raise RuntimeError with "invalid field: \"file]\""7613 ;file]7614 is expected to raise RuntimeError with "invalid field: \";file]\""7615 file]]7616 is expected to raise RuntimeError with "invalid field: \"file]]\""7617 file;;7618 is expected to raise RuntimeError with "invalid field: \"file;;\""7619 with an invalid upload key7620 behaves like rejecting the invalid key7621 raises an error7622 behaves like rejecting the invalid key7623 raises an error7624 behaves like rejecting the invalid key7625 raises an error7626 behaves like rejecting the invalid key7627 raises an error7628 behaves like rejecting the invalid key7629 raises an error7630 behaves like rejecting the invalid key7631 raises an error7632 behaves like rejecting the invalid key7633 raises an error7634 with a modified JWT payload7635 raises an error7636 with a modified JWT sig7637 raises an error7638Commits::CherryPickService7639 #execute7640 behaves like successful cherry-pick7641 picks the commit into the branch7642 supports a custom commit message7643 when picking a merge-request7644 adds a system note7645 behaves like successful cherry-pick7646 picks the commit into the branch7647 supports a custom commit message7648CachingArrayResolver7649 #resolve7650 does not perform a union of a query with itself7651 force . resolve === to_a . query_for . query_input7652 there are more than MAX_UNION_SIZE queries7653 executes the queries in multiple batches7654 all queries return results7655 batches the queries7656 finds the correct values7657 one of the queries returns no results7658 finds the correct values7659 one of the queries has already been cached7660 avoids further queries7661 the resolver overrides item_found7662 receives item_found for each key the item mapped to7663 the max_page_size is lower than the total result size7664 respects the max_page_size, on a per subset basis7665 the field does not declare max_page_size7666 takes the page size from schema.default_max_page_size7667Gitlab::Ci::Config::Entry::Default7668 behaves like with inheritable CI config7669 does prepend an Inheritable mixin7670 all inheritable entries are covered7671 all entries do have inherit flag7672 for non-inheritable entries7673 entry_key: :interruptible7674 inheritable_class does not define entry7675 entry_key: :timeout7676 inheritable_class does not define entry7677 entry_key: :retry7678 inheritable_class does not define entry7679 entry_key: :tags7680 inheritable_class does not define entry7681 entry_key: :artifacts7682 inheritable_class does not define entry7683 for inheritable entries7684 entry_key: :before_script, entry_class: Gitlab::Ci::Config::Entry::Commands7685 inheritable_class does define entry7686 when is specified7687 does inherit value7688 when entry is specified7689 does not inherit value7690 when inheritable does not specify7691 does not inherit value7692 entry_key: :image, entry_class: Gitlab::Ci::Config::Entry::Image7693 inheritable_class does define entry7694 when is specified7695 does inherit value7696 when entry is specified7697 does not inherit value7698 when inheritable does not specify7699 does not inherit value7700 entry_key: :services, entry_class: Gitlab::Ci::Config::Entry::Services7701 inheritable_class does define entry7702 when is specified7703 does inherit value7704 when entry is specified7705 does not inherit value7706 when inheritable does not specify7707 does not inherit value7708 entry_key: :after_script, entry_class: Gitlab::Ci::Config::Entry::Commands7709 inheritable_class does define entry7710 when is specified7711 does inherit value7712 when entry is specified7713 does not inherit value7714 when inheritable does not specify7715 does not inherit value7716 entry_key: :cache, entry_class: Gitlab::Ci::Config::Entry::Caches7717 inheritable_class does define entry7718 when is specified7719 does inherit value7720 when entry is specified7721 does not inherit value7722 when inheritable does not specify7723 does not inherit value7724 .nodes7725 returns a hash7726 when filtering all the entry/node names7727 contains the expected node names7728 validations7729 when default entry value is correct7730 #valid?7731 is valid7732 when default entry is empty7733 #valid7734 is valid7735 when default entry is not correct7736 incorrect config value type7737 #errors7738 reports error about a config type7739 when unknown keys detected7740 #valid7741 is not valid7742 #compose!7743 when default entry inherits configuration from root7744 raises error7745 when default entry inherits a non-defined configuration from root7746 inherits non-defined configuration entries7747ErrorTracking::ListIssuesService7748 #execute7749 Sentry backend7750 with authorized user7751 returns the issues with resolved issue_status7752 returns the issues with unresolved issue_status7753 returns the issues with ignored issue_status7754 returns the issues with no issue_status7755 returns bad request for an issue_status not on the whitelist7756 when list_sentry_issues returns nil7757 result is not ready7758 when list_sentry_issues returns error7759 returns the error7760 when list_sentry_issues returns error with http_status7761 returns the error with correct http_status7762 with unauthorized user7763 returns error7764 with error tracking disabled7765 raises error7766 GitLab backend7767 returns the error in expected format7768 #external_url7769 calls the project setting sentry_external_url7770MergeWorker7771 remove source branch7772 clears cache of source repo after removing source branch7773 behaves like an idempotent worker7774 is labeled as idempotent7775 performs multiple times sequentially without raising an exception7776 the merge request is still shown as merged7777Gitlab::Tracking::StandardContext7778 #to_context7779 contains source7780 contains context_generated_at timestamp7781 contains user id7782 contains namespace and project ids7783 accepts just project id as integer7784 environment7785 development or test7786 contains environment7787 staging7788 contains environment7789 production7790 contains environment7791 org7792 contains environment7793 other self-managed instance7794 contains environment7795 plan7796 when namespace is not available7797 is nil7798 when namespace is available7799 contains plan name7800 with extra data7801 includes extra data in `extra` hash7802 without extra data7803 contains an empty `extra` hash7804 with incorrect argument type7805 when standard_context_type_check FF is disabled7806 does not call `track_and_raise_for_dev_exception`7807 when standard_context_type_check FF is enabled7808 does call `track_and_raise_for_dev_exception`7809SensitiveSerializableHash7810 .prevent_from_serialization7811 does not include the field in serializable_hash7812 does not change parent class attributes_exempt_from_serializable_hash7813 unsafe_serialization_hash option7814 includes the field in serializable_hash7815 #serializable_hash7816 for a web hook7817 behaves like attr_encrypted attribute7818 WebHook#token7819 has a encrypted_attributes field7820 does not include the attribute in serializable_hash7821 unsafe_serialization_hash option7822 includes the field in serializable_hash7823 behaves like attr_encrypted attribute7824 WebHook#url7825 has a encrypted_attributes field7826 does not include the attribute in serializable_hash7827 unsafe_serialization_hash option7828 includes the field in serializable_hash7829 behaves like attr_encrypted attribute7830 WebHook#url_variables7831 has a encrypted_attributes field7832 does not include the attribute in serializable_hash7833 unsafe_serialization_hash option7834 includes the field in serializable_hash7835 behaves like attr_encrypted attribute7836 Ci::InstanceVariable#value7837 has a encrypted_attributes field7838 does not include the attribute in serializable_hash7839 unsafe_serialization_hash option7840 includes the field in serializable_hash7841 behaves like add_authentication_token_field attribute7842 does not include token_expires_at in serializable_hash7843 Ci::Runner#token7844 has a add_authentication_token_field field7845 does not include the attribute in serializable_hash7846 unsafe_serialization_hash option7847 includes the field in serializable_hash7848 behaves like add_authentication_token_field attribute7849 ApplicationSetting#health_check_access_token7850 has a add_authentication_token_field field7851 does not include the attribute in serializable_hash7852 unsafe_serialization_hash option7853 includes the field in serializable_hash7854 behaves like add_authentication_token_field attribute7855 PersonalAccessToken#token7856 has a add_authentication_token_field field7857 does not include the attribute in serializable_hash7858 unsafe_serialization_hash option7859 includes the field in serializable_hash7860Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestFirstDeployedToProduction7861 behaves like value stream analytics event7862 is expected to be a kind of String7863 is expected to be a kind of Symbol7864 is expected to include ApplicationRecord(abstract)7865 is expected to respond to #timestamp_projection7866 is expected to respond to #html_description7867 is expected to be a kind of Array7868 #apply_query_customization7869 expects an ActiveRecord::Relation object as argument and returns a modified version of it7870 #hash_code7871 returns a hash that uniquely identifies an event7872 does not differ when the same object is built with the same params7873 behaves like LEFT JOIN-able value stream analytics event7874 can use the event as LEFT JOIN7875 when looking at the record with data7876 contains the timestamp expression7877 when looking at the record without data7878 returns nil for the timestamp expression7879Ci::JobsFinder#execute7880 no project7881 returns all jobs7882 non admin user7883 returns no jobs7884 without user7885 returns no jobs7886 scope is present7887 scope: "pending", index: 07888 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-29 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 196, stage_id: 159, tag_list: nil>7889 scope: "running", index: 17890 is expected to contain exactly #<Ci::Build status: "running", finished_at: nil, trace: nil, created_at: "2022-06-29 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 197, stage_id: 160, tag_list: nil>7891 scope: "finished", index: 27892 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2022-06-29 08:53:29.000000000 +0000", trace: nil, create...resource_at: nil, processed: false, scheduling_type: "stage", id: 198, stage_id: 161, tag_list: nil>7893 scope is an array7894 filters by the job statuses in the scope7895 a project is present7896 user has access to the project7897 returns jobs for the specified project7898 user has no access to project builds7899 returns no jobs7900 without user7901 returns no jobs7902 when pipeline is present7903 does not return retried jobs by default7904 when include_retried is false7905 does not return retried jobs7906 when include_retried is true7907 returns retried jobs7908 a runner is present7909 user has access to the runner7910 returns jobs for the specified project7911 user has no access to project builds7912 returns no jobs7913 without user7914 returns no jobs7915Gitlab::GithubImport::ParallelScheduling7916 #parallel?7917 returns true when running in parallel mode7918 returns false when running in sequential mode7919 #execute7920 imports data in parallel when running in parallel mode7921 imports data in parallel when running in sequential mode7922 expires the cache used for tracking already imported objects7923 logs the the process7924 when abort_on_failure is false7925 logs the error when it fails7926 when abort_on_failure is true7927 logs the error when it fails and marks import as failed7928 #sequential_import7929 imports data in sequence7930 #parallel_import7931 with multiple objects7932 imports data in parallel batches with delays7933 #each_object_to_import7934 yields every object to import7935 resumes from the last page7936 does not yield any objects if the page number was not set7937 does not yield the object if it was already imported7938 #already_imported?7939 returns false when an object has not yet been imported7940 returns true when an object has already been imported7941 #mark_as_imported7942 marks an object as already imported7943Gitlab::SubscriptionPortal7944 .default_subscriptions_url7945 test: false, development: false, result: "https://customers.gitlab.com"7946 is expected to eq "https://customers.gitlab.com"7947 test: false, development: true, result: "https://customers.staging.gitlab.com"7948 is expected to eq "https://customers.staging.gitlab.com"7949 test: true, development: false, result: "https://customers.staging.gitlab.com"7950 is expected to eq "https://customers.staging.gitlab.com"7951 .subscriptions_url7952 when CUSTOMER_PORTAL_URL ENV is unset7953 is expected to eq "https://customers.staging.gitlab.com"7954 when CUSTOMER_PORTAL_URL ENV is set7955 is expected to eq "https://customers.example.com"7956 .subscriptions_comparison_url7957 is expected to match /\Ahttps:\/\/about\.gitlab\.((cn\/pricing\/saas)|(com\/pricing\/gitlab-com))\/feature-comparison\z/7958 url methods7959 method_name: :default_subscriptions_url, result: "https://customers.staging.gitlab.com"7960 is expected to eq "https://customers.staging.gitlab.com"7961 method_name: :payment_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_validation"7962 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_validation"7963 method_name: :payment_validation_form_id, result: "payment_method_validation"7964 is expected to eq "payment_method_validation"7965 method_name: :registration_validation_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"7966 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"7967 method_name: :subscriptions_graphql_url, result: "https://customers.staging.gitlab.com/graphql"7968 is expected to eq "https://customers.staging.gitlab.com/graphql"7969 method_name: :subscriptions_more_minutes_url, result: "https://customers.staging.gitlab.com/buy_pipeline_minutes"7970 is expected to eq "https://customers.staging.gitlab.com/buy_pipeline_minutes"7971 method_name: :subscriptions_more_storage_url, result: "https://customers.staging.gitlab.com/buy_storage"7972 is expected to eq "https://customers.staging.gitlab.com/buy_storage"7973 method_name: :subscriptions_manage_url, result: "https://customers.staging.gitlab.com/subscriptions"7974 is expected to eq "https://customers.staging.gitlab.com/subscriptions"7975 method_name: :subscriptions_instance_review_url, result: "https://customers.staging.gitlab.com/instance_review"7976 is expected to eq "https://customers.staging.gitlab.com/instance_review"7977 method_name: :subscriptions_gitlab_plans_url, result: "https://customers.staging.gitlab.com/gitlab_plans"7978 is expected to eq "https://customers.staging.gitlab.com/gitlab_plans"7979 method_name: :edit_account_url, result: "https://customers.staging.gitlab.com/customers/edit"7980 is expected to eq "https://customers.staging.gitlab.com/customers/edit"7981 .add_extra_seats_url7982 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/extra_seats"7983 .upgrade_subscription_url7984 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/upgrade/5"7985 .renew_subscription_url7986 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/renew"7987Gitlab::Ci::Pipeline::Chain::Build7988 does not break the chain7989 builds a pipeline with the expected attributes7990 returns a valid pipeline7991 does not persist a pipeline7992 when pipeline is running for a tag7993 correctly indicated that this is a tagged pipeline7994 when origin_ref is branch but tag ref with the same name exists7995 correctly indicated that a pipeline is not tagged7996 when pipeline is running for a merge request7997 correctly indicated that this is a merge request pipeline7998 correctly sets souce sha and target sha to pipeline7999 when pipeline is running for an external pull request8000 correctly indicated that this is an external pull request pipeline8001 correctly sets source sha and target sha to pipeline8002 when keep_latest_artifact is set8003 keep_latest_artifact: true, locking_result: "artifacts_locked"8004 builds a pipeline with appropriate locked value8005 keep_latest_artifact: false, locking_result: "unlocked"8006 builds a pipeline with appropriate locked value8007Gitlab::Ci::ArtifactFileReader8008 #read8009 when job has artifacts and metadata8010 returns the content at the path8011 when path does not exist8012 raises an error8013 when path points to a directory8014 raises an error8015 when path is nested8016 returns the content at the nested path8017 when artifact archive size is greater than the limit8018 raises an error8019 when metadata entry shows size greater than the limit8020 raises an error8021 when job does not have metadata artifacts8022 raises an error8023 when job does not have artifacts8024 raises ArgumentError8025Gitlab::EventStore::Store8026 #subscribe8027 subscribes a worker to an event8028 subscribes multiple workers to an event8029 subscribes a worker to multiple events is separate calls8030 subscribes a worker to multiple events in a single call8031 subscribes a worker to an event with condition8032 refuses the subscription if the target is not an Event object8033 refuses the subscription if the subscriber is not a worker8034 #publish8035 when event has a subscribed worker8036 dispatches the event to the subscribed worker8037 does not raise any Sidekiq warning8038 raises and tracks an error when event is published inside a database transaction8039 refuses publishing if the target is not an Event object8040 when other workers subscribe to the same event8041 dispatches the event to each subscribed worker8042 when an error is raised8043 is rescued and tracked8044 when event has subscribed workers with condition8045 dispatches the event to the workers satisfying the condition8046 when the event does not have any subscribers8047 returns successfully8048 does not dispatch the event to another subscription8049 subscriber8050 is a Sidekiq worker8051 handles the event8052 when the event name does not exist8053 raises an error8054 when the worker does not define handle_event method8055 raises an error8056SystemCheck::SimpleExecutor8057 #component8058 returns stored component name8059 #checks8060 returns a set of classes8061 #<<8062 appends a new check to the Set8063 inserts unique itens only8064 errors out when passing multiple items8065 #execute8066 runs included checks8067 #run_check8068 prints check name8069 when check pass8070 prints yes8071 when check fails8072 prints no8073 displays error message from #show_error8074 when check implements #repair!8075 executes #repair!8076 when repair succeeds8077 does not execute #show_error8078 when repair fails8079 does not execute #show_error8080 when check implements skip?8081 executes #skip? method8082 displays .skip_reason8083 displays #skip_reason8084 does not execute #check when #skip? is true8085 when implements a #multi_check8086 executes #multi_check method8087 does not execute #check method8088 when check implements #skip?8089 executes #skip? method8090 when there is an exception8091 rescues the exception8092Gitlab::ErrorTracking8093 .track_and_raise_for_dev_exception8094 when exceptions for dev should be raised8095 raises the exception8096 when exceptions for dev should not be raised8097 logs the exception with all attributes passed8098 calls Gitlab::ErrorTracking::Logger.error with formatted payload8099 .track_and_raise_exception8100 always raises the exception8101 calls Gitlab::ErrorTracking::Logger.error with formatted payload8102 .track_exception8103 calls Raven.capture_exception8104 calls Gitlab::ErrorTracking::Logger.error with formatted payload8105 with filterable parameters8106 filters parameters8107 the exception implements :sentry_extra_data8108 includes the extra data from the exception in the tracking information8109 the exception implements :sentry_extra_data, which returns nil8110 just includes the other extra info8111 event processors8112 custom GitLab context when using Raven.capture_exception directly8113 merges a default set of tags into the existing tags8114 merges the current user information into the existing user information8115 custom GitLab context when using Sentry.capture_exception directly8116 merges a default set of tags into the existing tags8117 merges the current user information into the existing user information8118 with sidekiq args8119 when the args does not have anything sensitive8120 ensures extra.sidekiq.args is a string8121 does not filter parameters when sending to Sentry8122 when the args has sensitive information8123 filters sensitive arguments before sending and logging8124 when the error is a GRPC error8125 when the GRPC error contains a debug_error_string value8126 sets the GRPC debug error string in the Sentry event and adds a custom fingerprint8127 when the GRPC error does not contain a debug_error_string value8128 does not do any processing on the event8129 when processing invalid URI exceptions8130 when the error is a URI::InvalidURIError8131 filters the URI from the error message8132 when the error is a Addressable::URI::InvalidURIError8133 filters the URI from the error message8134Gitlab::Ci::Pipeline::Expression::Lexeme::Or8135 .build8136 creates a new instance of the token8137 with non-evaluable operands8138 raises an operator error8139 .type8140 is an operator8141 .precedence8142 has a precedence8143 #evaluate8144 when left and right are truthy8145 left_value: true, right_value: 18146 is expected to be truthy8147 is expected to eq true8148 left_value: true, right_value: "a"8149 is expected to be truthy8150 is expected to eq true8151 left_value: 1, right_value: true8152 is expected to be truthy8153 is expected to eq 18154 left_value: 1, right_value: "a"8155 is expected to be truthy8156 is expected to eq 18157 left_value: "a", right_value: true8158 is expected to be truthy8159 is expected to eq "a"8160 left_value: "a", right_value: 18161 is expected to be truthy8162 is expected to eq "a"8163 when left or right is truthy8164 left_value: true, right_value: false8165 is expected to be truthy8166 left_value: true, right_value: "a"8167 is expected to be truthy8168 left_value: false, right_value: true8169 is expected to be truthy8170 left_value: false, right_value: "a"8171 is expected to be truthy8172 left_value: "a", right_value: true8173 is expected to be truthy8174 left_value: "a", right_value: false8175 is expected to be truthy8176 when left and right are falsey8177 left_value: false, right_value: nil8178 is expected to be falsey8179 is expected to eq nil8180 left_value: nil, right_value: false8181 is expected to be falsey8182 is expected to eq false8183UsersStatistics8184 scopes8185 .order_created_at_desc8186 returns the entries ordered by created at descending8187 .latest8188 returns the latest entry8189 .create_current_stats!8190 when successful8191 creates an entry with the current statistics values8192 when unsuccessful8193 raises an ActiveRecord::RecordInvalid exception8194 #active8195 sums users statistics values without the value for blocked8196 #total8197 sums all users statistics values8198StageUpdateWorker8199 #perform8200 when stage exists8201 updates stage status8202 behaves like an idempotent worker8203 is labeled as idempotent8204 performs multiple times sequentially without raising an exception8205 results in the stage getting the skipped status8206 when stage does not exist8207 does not raise exception8208Gitlab::Graphql::Pagination::Keyset::OrderInfo8209 #build_order_list8210 when multiple orders with SQL is specified8211 ignores the SQL order8212 when order contains NULLS LAST8213 does not ignore the SQL order8214 when order contains invalid formatted NULLS LAST8215 ignores the SQL order8216 when order contains LOWER8217 does not ignore the SQL order8218 when ordering by CASE8219 assigns the right attribute name, named function, and direction8220 when ordering by ARRAY_POSITION8221 assigns the right attribute name, named function, and direction8222 #validate_ordering8223 when number of ordering fields is 08224 raises an error8225 when number of ordering fields is over 28226 raises an error8227 when the second (or first) column is nullable8228 raises an error8229 for last ordering field8230 raises error if primary key is not last field8231Metrics::Dashboard::ClusterMetricsEmbedService8232 .valid_params?8233 is expected to be truthy8234 returns false with missing param8235 returns false with missing param8236 returns false with missing param8237 returns false with missing param8238 returns false with missing param8239 missing all params8240 is expected to be falsy8241 #get_dashboard8242 returns one panel8243 returns panel by title and y_label8244 behaves like valid embedded dashboard service response8245 behaves like valid dashboard service response for schema8246 returns a json representation of the dashboard8247 behaves like caches the unprocessed dashboard for subsequent calls8248 is expected to receive load_raw!(*(any args)) 1 time8249Gitlab::GithubImport::Importer::PullRequestReviewImporter8250 when the review author can be mapped to a gitlab user8251 when the review has no note text8252 when the review is "APPROVED"8253 creates a note for the review and approves the Merge Request8254 does nothing if the user already approved the merge request8255 when the review is "COMMENTED"8256 creates a note for the review8257 when the review is "CHANGES_REQUESTED"8258 creates a note for the review8259 when the review has a note text8260 when the review is "APPROVED"8261 creates a note for the review8262 when the review is "COMMENTED"8263 creates a note for the review8264 when the review is "CHANGES_REQUESTED"8265 creates a note for the review8266 when the review author cannot be mapped to a gitlab user8267 when the review has no note text8268 when the review is "APPROVED"8269 creates a note for the review with *Approved by by<author>*8270 when the review is "COMMENTED"8271 creates a note for the review with *Commented by<author>*8272 when the review is "CHANGES_REQUESTED"8273 creates a note for the review with *Changes requested by <author>*8274 when original author was deleted in github8275 creates a note for the review without the author information8276 when the submitted_at is not provided8277 creates a note for the review without the author information8278 when the review has a note text8279 when the review is "APPROVED"8280 creates a note for the review with *Approved by by<author>*8281 when the review is "COMMENTED"8282 creates a note for the review with *Commented by<author>*8283 when the review is "CHANGES_REQUESTED"8284 creates a note for the review with *Changes requested by <author>*8285Clusters::Agents::AuthorizationConfigScopes8286 .with_available_ci_access_fields8287 is expected to contain exactly #<Clusters::Agents::ProjectAuthorization id: 1, project_id: 920, agent_id: 1, config: {"default_namespace"=>"production"}>, #<Clusters::Agents::ProjectAuthorization id: 2, project_id: 920, agent_id: 2, config: {"access_as"=>{}}>, and #<Clusters::Agents::ProjectAuthorization id: 3, project_id: 920, agent_id: 3, config: {"access_as"=>{"agent"=>{}}}>8288Gitlab::Ci::Parsers::Security::Sast8289 #parse!8290 when parsing valid reports8291 report_format: :sast, report_version: "14.0.0", scanner_length: 1, finding_length: 5, identifier_length: 6, file_path: "groovy/src/main/java/com/gitlab/security_products/tests/App.groovy", line: 478292 parses all identifiers and findings8293 generates expected location8294 generates expected metadata_version8295 report_format: :sast_deprecated, report_version: "1.2", scanner_length: 3, finding_length: 33, identifier_length: 17, file_path: "python/hardcoded/hardcoded-tmp.py", line: 18296 parses all identifiers and findings8297 generates expected location8298 generates expected metadata_version8299 when parsing an empty report8300 is expected to be empty8301TaskListToggleService8302 checks Task 18303 unchecks Item 18304 checks task in loose list8305 checks task with no-break space8306 returns false if line_source does not match the text8307 tolerates \r\n line endings8308 returns false if markdown is nil8309 returns false if markdown_html is nil8310 properly handles tasks in a blockquote8311 properly handles a GitLab blockquote8312 when clicking an embedded subtask8313 properly handles it inside an unordered list8314 properly handles it inside an ordered list8315Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildStarted8316 behaves like value stream analytics event8317 is expected to be a kind of String8318 is expected to be a kind of Symbol8319 is expected to include ApplicationRecord(abstract)8320 is expected to respond to #timestamp_projection8321 is expected to respond to #html_description8322 is expected to be a kind of Array8323 #apply_query_customization8324 expects an ActiveRecord::Relation object as argument and returns a modified version of it8325 #hash_code8326 returns a hash that uniquely identifies an event8327 does not differ when the same object is built with the same params8328 behaves like LEFT JOIN-able value stream analytics event8329 can use the event as LEFT JOIN8330 when looking at the record with data8331 contains the timestamp expression8332 when looking at the record without data8333 returns nil for the timestamp expression8334Gitlab::Bullet::Exclusions8335 #execute8336 with preferred method of path and method name8337 behaves like loads exclusion results8338 is expected to match [["_path_", "_method_"]]8339 with file pattern8340 behaves like loads exclusion results8341 is expected to match [["_file_pattern_"]]8342 with file name and line range8343 behaves like loads exclusion results8344 is expected to match [["file_name.rb", 5..10]]8345 without exclusions8346 behaves like loads exclusion results8347 is expected to match [[]]8348 without exclusions key in config8349 behaves like loads exclusion results8350 is expected to match []8351 when config file does not exist8352 provides an empty array for exclusions8353 #validate_paths!8354 when validating scenarios8355 when using paths with method name8356 when source file for exclusion exists8357 is expected not to raise Exception8358 when source file for exclusion does not exist8359 is expected to raise RuntimeError8360 when using path only8361 when source file for exclusion exists8362 is expected not to raise Exception8363 when source file for exclusion does not exist8364 is expected to raise RuntimeError8365 when path_with_method is false for a file pattern8366 is expected not to raise Exception8367Resolvers::ProjectPackagesResolver8368 #resolve8369 behaves like group and projects packages resolver8370 without sort8371 returns the proper packages8372 with sorting and filtering8373 CREATED_DESC8374 is expected to eq [#<Packages::Package id: 18, project_id: 937, created_at: "2022-06-29 19:27:34.020627261 +0000", upda... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2601, status: "default">]8375 NAME_DESC8376 is expected to eq [#<Packages::Package id: 18, project_id: 937, created_at: "2022-06-29 19:27:34.020627261 +0000", upda... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2601, status: "default">]8377 VERSION_DESC8378 is expected to eq [#<Packages::Package id: 18, project_id: 937, created_at: "2022-06-29 19:27:34.020627261 +0000", upda... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2601, status: "default">]8379 TYPE_ASC8380 is expected to eq [#<Packages::Package id: 18, project_id: 937, created_at: "2022-06-29 19:27:34.020627261 +0000", upda... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2601, status: "default">]8381 CREATED_ASC8382 is expected to eq [#<Packages::Package id: 16, project_id: 937, created_at: "2022-06-28 20:27:33.524486880 +0000", upda...79 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2601, status: "error">]8383 NAME_ASC8384 is expected to eq [#<Packages::Package id: 16, project_id: 937, created_at: "2022-06-28 20:27:33.524486880 +0000", upda...79 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2601, status: "error">]8385 VERSION_ASC8386 is expected to eq [#<Packages::Package id: 16, project_id: 937, created_at: "2022-06-28 20:27:33.524486880 +0000", upda...79 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2601, status: "error">]8387 TYPE_DESC8388 is expected to eq [#<Packages::Package id: 16, project_id: 937, created_at: "2022-06-28 20:27:33.524486880 +0000", upda...79 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2601, status: "error">]8389 filter by package_name8390 is expected to eq [#<Packages::Package id: 16, project_id: 937, created_at: "2022-06-28 20:27:33.524486880 +0000", upda... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2601, status: "default">]8391 filter by package_type8392 is expected to eq [#<Packages::Package id: 16, project_id: 937, created_at: "2022-06-28 20:27:33.524486880 +0000", upda... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2601, status: "default">]8393 filter by status8394 is expected to eq [#<Packages::Package id: 18, project_id: 937, created_at: "2022-06-29 19:27:34.020627261 +0000", upda...79 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2601, status: "error">]8395 include_versionless8396 is expected to include #<Packages::Package id: 20, project_id: 937, created_at: "2022-06-29 20:26:34.325102832 +0000", updat...56871 +0000", name: "baz", version: nil, package_type: "maven", creator_id: 2601, status: "default">8397HasEnvironmentScope8398 is expected to allow :environment_scope to be ‹"*"›8399 is expected to allow :environment_scope to be ‹"review/*"›8400 is expected not to allow :environment_scope to be ‹""›8401 is expected not to allow :environment_scope to be ‹"!!()()"›8402 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 failure8403 .on_environment8404 returns scoped objects8405 returns only the most relevant object if relevant_only is true8406 returns scopes ordered by lowest precedence first8407 #environment_scope=8408 when the new environment_scope is nil8409 strips leading and trailing whitespaces8410 when the new environment_scope has leadind and trailing whitespaces8411 strips leading and trailing whitespaces8412 .for_environment8413 when the environment is present8414 is expected to eq [#<Ci::Variable id: 11, key: [FILTERED], value: nil, encrypted_value: "xvj6d9hOnLMANaswQf2SPw==\n", e...cted: false, environment_scope: "production/*", masked: false, variable_type: "env_var", raw: true>]8415 when the environment is nil8416 is expected to eq [#<Ci::Variable id: 11, key: [FILTERED], value: nil, encrypted_value: "xvj6d9hOnLMANaswQf2SPw==\n", e... 941, protected: false, environment_scope: "*", masked: false, variable_type: "env_var", raw: true>]8417Banzai::ReferenceParser::ProjectParser8418 #referenced_by8419 when the link has a data-project attribute8420 using an existing project ID8421 returns an Array of projects8422 using a non-existing project ID8423 returns an empty Array8424 using a private project ID8425 returns an empty Array when unauthorized8426 returns an Array when authorized8427Integrations::SlackSlashCommands8428 behaves like Integrations::BaseSlashCommands8429 Associations8430 is expected to respond to #token8431 is expected to have many chat_names8432 #valid_token?8433 when the token is empty8434 is false8435 when there is a token8436 accepts equal tokens8437 #trigger8438 no token is passed8439 returns nil8440 with a token passed8441 no user can be found8442 when no url can be generated8443 responds with the authorize url8444 when an auth url can be generated8445 generates the url8446 when the user is authenticated8447 triggers the command8448 when user is blocked8449 behaves like blocks command execution8450 is expected to match "you do not have access to the GitLab project"8451 when user is deactivated8452 behaves like blocks command execution8453 is expected to match "your account has been deactivated by your administrator"8454 #trigger8455 when an auth url is generated8456 uses slack compatible links8457 #chat_responder8458 returns the responder to use for Slack8459SafeZip::Entry8460 #path_dir8461 is expected to eq "/tmp/safe-zip20220629-465-1sl3zaf/public/folder"8462 #exist?8463 when entry does not exist8464 is expected not to be truthy8465 when entry does exist8466 is expected to be truthy8467 #extract8468 when entry does not match the filtered directories8469 entry_name: "assets/folder/index.html"8470 does not extract file8471 entry_name: "public/../folder/index.html"8472 does not extract file8473 entry_name: "public/../../../../../index.html"8474 does not extract file8475 entry_name: "../../../../../public/index.html"8476 does not extract file8477 entry_name: "/etc/passwd"8478 does not extract file8479 when entry does exist8480 raises an exception8481 when entry type is unknown8482 raises an exception8483 when entry is valid8484 and is file8485 does extract file8486 behaves like secured symlinks8487 when we try to extract entry into symlinked folder8488 raises an exception8489 and is directory8490 does create directory8491 behaves like secured symlinks8492 when we try to extract entry into symlinked folder8493 raises an exception8494 and is symlink8495 when source is within target8496 but does not exist8497 raises an exception8498 and does exist8499 behaves like a valid symlink8500 does create symlink8501 when source points outside of target8502 raises an exception8503 when source points to /etc/passwd8504 raises an exception8505API::Helpers::Authentication8506 class methods8507 .authenticate_with8508 sets namespace_inheritable :authentication to correctly when body is empty8509 sets namespace_inheritable :authentication to correctly when body is not empty8510 helper methods8511 #token_from_namespace_inheritable8512 with no allowed authentication strategies8513 behaves like an anonymous request8514 returns nil8515 with no located credentials8516 behaves like an anonymous request8517 returns nil8518 with one set of located credentials8519 when the credentials contain a valid token8520 behaves like an authenticated request8521 returns the token8522 when the credentials do not contain a valid token8523 behaves like an unauthorized request8524 behaves like stops early8525 calls #unauthorized!8526 with multiple located credentials8527 behaves like stops early8528 calls #bad_request!8529 when a resolver raises UnauthorizedError8530 behaves like an unauthorized request8531 behaves like stops early8532 calls #unauthorized!8533 #access_token_from_namespace_inheritable8534 returns #token_from_namespace_inheritable if it is a personal access token8535 returns nil if #token_from_namespace_inheritable is not a personal access token8536 #ci_build_from_namespace_inheritable8537 returns #token_from_namespace_inheritable if it is a ci build8538 returns nil if #token_from_namespace_inheritable is not a ci build8539 #user_from_namespace_inheritable8540 returns #token_from_namespace_inheritable if it is a deploy token8541 returns #token_from_namespace_inheritable.user if the token is not a deploy token8542 falls back to #find_user_from_warden if #token_from_namespace_inheritable.user is nil8543 falls back to #find_user_from_warden if #token_from_namespace_inheritable is nil8544DesignManagement::DesignUserNotesCountService8545 behaves like a counter caching service8546 #count8547 caches the count8548 #refresh_cache8549 refreshes the cache8550 #delete_cache8551 removes the cache8552 #uncached_count8553 does not cache the count8554 #count8555 returns the count of notes8556 #cache_key8557 contains the `VERSION` and `design.id`8558 cache invalidation8559 changes when a new note is created8560 changes when a note is destroyed8561API::Entities::MergeRequestChanges8562 exposes basic entity fields8563 when #expose_raw_diffs? returns false8564 does not access merge_request.raw_diffs8565 when #expose_raw_diffs? returns true8566 does not access merge_request.raw_diffs8567 :overflow field8568 when :access_raw_diffs is true8569 reports false8570Projects::ContainerRepository::ThirdParty::DeleteTagsService8571 #execute8572 with tags to delete8573 deletes the tags by name8574 succeeds when tag delete returns 4048575 with failures8576 when the dummy manifest generation fails8577 is expected to eq {:message=>"could not generate manifest", :status=>:error}8578 when updating tags fails8579 all tag updates fail8580 is expected to eq {:message=>"could not delete tags: A, Ba", :status=>:error}8581 when a large list of tag updates fails8582 truncates the log message8583 a single tag update fails8584 is expected to eq {:deleted=>["A"], :status=>:success}8585 with empty tags8586 does not remove anything8587Packages::CleanupPackageFileWorker8588 #perform_work8589 with no work to do8590 is expected to be nil8591 with work to do8592 deletes the oldest package file pending destruction based on id8593 with a duplicated PyPI package file8594 deletes one of the duplicates8595 with a package file to destroy8596 with an error during the destroy8597 handles the error8598 when trying to destroy a destroyed record8599 handles the error8600 removing the last package file8601 deletes the package file and the package8602 #max_running_jobs8603 is expected to eq 58604 #remaining_work_count8605 is expected to eq 28606RuboCop::Cop::Gitlab::AvoidFeatureCategoryNotOwned8607 in controllers8608 behaves like defining feature category on a class8609 flags a method call on a class8610 flags a method call on a class with an array passed8611 flags a method call on a class with an array passed8612 in workers8613 behaves like defining feature category on a class8614 flags a method call on a class8615 flags a method call on a class with an array passed8616 flags a method call on a class with an array passed8617 for grape endpoints8618 flags when passed as a hash for a Grape endpoint as keyword args8619 flags when passed as a hash for a Grape endpoint in a hash8620 behaves like defining feature category on a class8621 flags a method call on a class8622 flags a method call on a class with an array passed8623 flags a method call on a class with an array passed8624Ci::UnitTest8625 behaves like cleanup by a loose foreign key8626 cleans up (delete or nullify) the model8627 relationships8628 is expected to belong to project required: false8629 is expected to have many unit_test_failures8630 validations8631 is expected to validate that :project cannot be empty/falsy8632 is expected to validate that :key_hash cannot be empty/falsy8633 is expected to validate that :name cannot be empty/falsy8634 is expected to validate that :suite_name cannot be empty/falsy8635 .find_or_create_by_batch8636 finds or creates records for the given unit test keys8637 when a given name or suite_name exceeds the string size limit8638 truncates the values before storing the information8639Gitlab::Access::BranchProtection8640 #any?8641 level: 0, result: false8642 is expected to eq false8643 level: 1, result: true8644 is expected to eq true8645 level: 3, result: true8646 is expected to eq true8647 level: 2, result: true8648 is expected to eq true8649 #developer_can_push?8650 level: 0, result: false8651 is expected to eq false8652 level: 1, result: true8653 is expected to eq true8654 level: 3, result: false8655 is expected to eq false8656 level: 2, result: false8657 is expected to eq false8658 #developer_can_merge?8659 level: 0, result: false8660 is expected to eq false8661 level: 1, result: false8662 is expected to eq false8663 level: 3, result: true8664 is expected to eq true8665 level: 2, result: false8666 is expected to eq false8667 #fully_protected?8668 level: 0, result: false8669 is expected to eq false8670 level: 1, result: false8671 is expected to eq false8672 level: 3, result: false8673 is expected to eq false8674 level: 2, result: true8675 is expected to eq true8676FreezePeriodsFinder8677 when user is a maintainer8678 behaves like returns freeze_periods ordered by created_at asc8679 returns freeze_periods ordered by created_at8680 when user is a guest8681 behaves like returns nothing8682 is expected to be empty8683 when user is a developer8684 behaves like returns nothing8685 is expected to be empty8686 when user is not a project member8687 behaves like returns nothing8688 is expected to be empty8689 when project is public8690 behaves like returns nothing8691 is expected to be empty8692SidekiqHelper8693 parse_sidekiq_ps8694 parses line with time8695 parses line with date8696 parses line with two digit date8697 parses line with dot as float separator8698 parses OSX output8699 parses Ubuntu output8700 parses Debian output8701 parses OpenBSD output8702 does fail gracefully on line not matching the format8703Gitlab::PhabricatorImport::BaseWorker8704 .schedule8705 schedules the job8706 counts the scheduled job8707 #perform8708 does not break for a non-existing project8709 does not do anything when the import is not in progress8710 calls import for the project8711 marks the project as imported if there was only one job running8712 does not mark the job as finished when there are more scheduled jobs8713 decrements the job counter8714Gitlab::GitalyClient::Call8715 #call8716 when the response is not an enumerator8717 returns the response8718 stores timings and call details8719 when err8720 stores timings and call details8721 when the response is an enumerator8722 returns a consumable enumerator8723 time measurements8724 records full rpc stream consumption8725 records partial rpc stream consumption8726 when err8727 records partial rpc stream consumption8728Mutations::MergeRequests::SetSubscription8729 is expected to require graphql authorizations :update_subscription8730 when user does not have access to the project8731 behaves like a subscribeable not accessible graphql resource8732 raises an error if the resource is not accessible to the user8733 when user is developer member of the project8734 behaves like a subscribeable graphql resource8735 subscribes to the resource8736 when passing subscribe as false8737 unsubscribes from the discussion8738 when the project is public8739 behaves like a subscribeable graphql resource8740 subscribes to the resource8741 when passing subscribe as false8742 unsubscribes from the discussion8743BitbucketServer::Representation::Repo8744 #project_key8745 is expected to eq "TEST"8746 #project_name8747 is expected to eq "test"8748 #slug8749 is expected to eq "rouge"8750 #browse_url8751 is expected to eq "http://localhost:7990/projects/TEST/repos/rouge/browse"8752 #clone_url8753 is expected to eq "http://root@localhost:7990/scm/test/rouge.git"8754 #description8755 is expected to eq "Rogue Repo"8756 #full_name8757 is expected to eq "test/rouge"8758Gitlab::ExclusiveLeaseHelpers8759 #in_lock8760 when unique key is not set8761 raises an error8762 when the lease is not obtained yet8763 calls the given block8764 calls the given block continuously8765 cancels the exclusive lease after the block8766 when the lease is obtained already8767 retries to obtain a lease and raises an error8768 when ttl is specified8769 receives the specified argument8770 when retry count is specified8771 retries for the specified times8772 when lease is granted after retry8773 yields block with true8774 when we specify no retries8775 never sleeps8776 when sleep second is specified8777 receives the specified argument8778 when sleep second is specified as a lambda8779 receives the specified argument8780BulkImport8781 associations8782 is expected to belong to user required: true8783 is expected to have one configuration8784 is expected to have many entities8785 validations8786 is expected to validate that :source_type cannot be empty/falsy8787 is expected to validate that :status cannot be empty/falsy8788 is expected to define :source_type as an enum backed by an integer with values ‹[:gitlab]›8789 .stale scope8790 is expected to contain exactly #<BulkImport id: 8, user_id: 2664, source_type: "gitlab", status: 0, created_at: "2022-06-26 20:28:07.079868702 +0000", updated_at: "2022-06-29 20:28:07.150207771 +0000", source_version: "14.4.0"> and #<BulkImport id: 9, user_id: 2665, source_type: "gitlab", status: 1, created_at: "2022-06-26 20:28:07.153646260 +0000", updated_at: "2022-06-29 20:28:07.222770189 +0000", source_version: "14.4.0">8791 .all_human_statuses8792 returns all human readable entity statuses8793 .min_gl_version_for_project8794 is expected to be a kind of Gitlab::VersionInfo8795 is expected to eq "14.4.0"8796 #source_version_info8797 returns source_version as Gitlab::VersionInfo8798Projects::HashedStorage::BaseAttachmentService8799 #old_disk_path8800 is expected to respond to #old_disk_path8801 #new_disk_path8802 is expected to respond to #new_disk_path8803 #skipped?8804 is expected to respond to #skipped?8805 #target_path_discardable?8806 returns false8807 #discard_path!8808 renames target path adding a timestamp at the end8809 #move_folder!8810 when old_path is not a directory8811 adds information to the logger and returns true8812Gitlab::Ci::Build::Rules::Rule8813 #matches?8814 with one matching clause8815 is expected to eq true8816 with two matching clauses8817 is expected to eq true8818 with a matching and non-matching clause8819 is expected to eq false8820 with two non-matching clauses8821 is expected to eq false8822Gitlab::Application8823 when parameters are logged8824 rails does not leak confidential parameters8825 input_url: "/", output_query: {}8826 is expected to eq {}8827 input_url: "/?safe=1", output_query: {"safe"=>"1"}8828 is expected to eq {"safe"=>"1"}8829 input_url: "/?private_token=secret", output_query: {"private_token"=>"[FILTERED]"}8830 is expected to eq {"private_token"=>"[FILTERED]"}8831 input_url: "/?mixed=1&private_token=secret", output_query: {"mixed"=>"1", "private_token"=>"[FILTERED]"}8832 is expected to eq {"mixed"=>"1", "private_token"=>"[FILTERED]"}8833 input_url: "/?note=secret¬eable=1&prefix_note=2", output_query: {"note"=>"[FILTERED]", "noteable"=>"1", "prefix_note"=>"2"}8834 is expected to eq {"note"=>"[FILTERED]", "noteable"=>"1", "prefix_note"=>"2"}8835 input_url: "/?note[note]=secret&target_type=1", output_query: {"note"=>"[FILTERED]", "target_type"=>"1"}8836 is expected to eq {"note"=>"[FILTERED]", "target_type"=>"1"}8837 input_url: "/?safe[note]=secret&target_type=1", output_query: {"safe"=>{"note"=>"[FILTERED]"}, "target_type"=>"1"}8838 is expected to eq {"safe"=>{"note"=>"[FILTERED]"}, "target_type"=>"1"}8839Resolvers::ErrorTracking::SentryErrorsResolver8840 is expected to have nullable GraphQL type SentryErrorConnection8841 #resolve8842 with insufficient user permission8843 returns nil8844 with sufficient permission8845 when after arg given8846 gives the cursor arg8847 when no issues fetched8848 returns nil8849 when issues returned8850 sets the issues8851 sets the pagination variables8852 returns an externally paginated array8853Gitlab::Graphs::Commits8854 #commit_per_day8855 when range is only commits from today8856 is expected to eq 28857 when range is only commits from today8858 #commit_per_day8859 is expected to eq 28860 #duration8861 is expected to eq 08862 with commits from yesterday and today8863 #commit_per_day8864 is expected to eq 1.08865 #duration8866 is expected to eq 18867Mutations::Issues::SetSeverity8868 is expected to require graphql authorizations :update_issue and :admin_issue8869 #resolve8870 as guest8871 raises an error8872 and also author8873 raises an error8874 and also assignee8875 raises an error8876 as reporter8877 when issue type is incident8878 when severity has a correct value8879 updates severity8880 returns no errors8881 when severity has an unsuported value8882 sets severity to default8883 returns no errorsr8884 when issue type is not incident8885 does not update the issue8886DependencyProxy::CleanupDependencyProxyWorker8887 #perform8888 when there are records to be deleted8889 behaves like an idempotent worker8890 is labeled as idempotent8891 performs multiple times sequentially without raising an exception8892 queues the cleanup jobs8893 when there are not records to be deleted8894 behaves like an idempotent worker8895 is labeled as idempotent8896 performs multiple times sequentially without raising an exception8897 does not queue the cleanup jobs8898Gitlab::Utils::Nokogiri8899 #css_to_xpath8900 css: "img", xpath: "descendant-or-self::img"8901 generates the xpath8902 css: "a.gfm", xpath: "descendant-or-self::a[contains(concat(' ',normalize-space(@class),' '),' gfm ')]"8903 generates the xpath8904 css: "a:not(.gfm)", xpath: "descendant-or-self::a[not(contains(concat(' ',normalize-space(@class),' '),' gfm '))]"8905 generates the xpath8906 css: "video, audio", xpath: "descendant-or-self::video|descendant-or-self::audio"8907 generates the xpath8908 css: "[data-math-style]", xpath: "descendant-or-self::*[@data-math-style]"8909 generates the xpath8910 css: "[data-mermaid-style]", xpath: "descendant-or-self::*[@data-mermaid-style]"8911 generates the xpath8912 css: ".js-render-metrics", xpath: "descendant-or-self::*[contains(concat(' ',normalize-space(@class),' '),' js-render-metrics ')]"8913 generates the xpath8914 css: "h1, h2, h3, h4, h5, h6", xpath: "descendant-or-self::h1|descendant-or-self::h2|descendant-or-self::h3|descendant-or-self::h4|descendant-or-self::h5|descendant-or-self::h6"8915 generates the xpath8916 css: "pre.code.language-math", xpath: "descendant-or-self::pre[contains(concat(' ',normalize-space(@class),' '),' code ') and contains(concat(' ',normalize-space(@class),' '),' language-math ')]"8917 generates the xpath8918 css: "pre > code[lang=\"plantuml\"]", xpath: "descendant-or-self::pre/code[@lang=\"plantuml\"]"8919 generates the xpath8920 css: "pre[lang=\"mermaid\"] > code", xpath: "descendant-or-self::pre[@lang=\"mermaid\"]/code"8921 generates the xpath8922 css: "pre.language-suggestion", xpath: "descendant-or-self::pre[contains(concat(' ',normalize-space(@class),' '),' language-suggestion ')]"8923 generates the xpath8924 css: "pre.language-suggestion > code", xpath: "descendant-or-self::pre[contains(concat(' ',normalize-space(@class),' '),' language-suggestion ')]/code"8925 generates the xpath8926 css: "a.gfm[data-reference-type=\"user\"]", xpath: "descendant-or-self::a[contains(concat(' ',normalize-space(@class),' '),' gfm ') and @data-reference-type=\"user\"]"8927 generates the xpath8928 css: "a:not(.gfm), img:not(.gfm), video:not(.gfm), audio:not(.gfm)", xpath: "descendant-or-self::a[not(contains(concat(' ',normalize-space(@class),' '),' gfm '))]|descendant-or-self::img[not(contains(concat(' ',normalize-space(@class),' '),' gfm '))]|descendant-or-self::video[not(contains(concat(' ',normalize-space(@class),' '),' gfm '))]|descendant-or-self::audio[not(contains(concat(' ',normalize-space(@class),' '),' gfm '))]"8929 generates the xpath8930 css: "pre:not([data-math-style]):not([data-mermaid-style]):not([data-kroki-style]) > code", xpath: "descendant-or-self::pre[not(@data-math-style) and not(@data-mermaid-style) and not(@data-kroki-style)]/code"8931 generates the xpath8932Gitlab::Template::Finders::RepoTemplateFinder8933 #read8934 returns the content of the given path8935 raises an error if the path does not exist8936 #find8937 returns the full path of the found template8938 does not permit path traversal requests8939 #list_files_for8940 returns the full path of the found files8941Security::CiConfiguration::SecretDetectionBuildAction8942 with existing .gitlab-ci.yml8943 secret_detection has not been included8944 template includes are an array8945 generates the correct YML8946 template include is not an array8947 generates the correct YML8948 secret_detection has been included8949 secret_detection template include are an array8950 generates the correct YML8951 secret_detection template include is not an array8952 generates the correct YML8953 with no .gitlab-ci.yml8954 autodevops disabled8955 generates the correct YML8956 with autodevops enabled8957 generates the correct YML8958Uploads::Fog8959 #available?8960 when object storage is enabled8961 is expected to be truthy8962 when object storage is disabled8963 is expected to be falsy8964 model with uploads8965 #keys8966 returns keys8967 #delete_keys8968 deletes multiple data8969 when one of keys is missing8970 deletes only existing keys8971Subscription8972 relationships8973 is expected to belong to project required: false8974 is expected to belong to subscribable required: false8975 is expected to belong to user required: false8976 validations8977 is expected to validate that :subscribable cannot be empty/falsy8978 is expected to validate that :user cannot be empty/falsy8979 validates uniqueness of project_id scoped to subscribable_id, subscribable_type, and user_id8980Gitlab::Import::MergeRequestCreator8981 #execute8982 merge request already exists8983 updates the data8984 new merge request8985 creates a new merge request8986BulkImports::RelationExportWorker8987 #perform8988 is labeled as idempotent8989 performs multiple times sequentially without raising an exception8990 executes RelationExportService8991 when export record does not exist8992 creates export record8993Gitlab::WikiPages::FrontMatterParser8994 #parse8995 there is front matter8996 is expected to have attributes {:content => "This is the content\n", :error => (be nil), :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}8997 there is no content8998 is expected to have attributes {:content => "", :error => (be nil), :front_matter => {}}8999 there is no front_matter9000 is expected to have attributes {:content => "This is the content", :front_matter => (be empty)}9001 is expected to have attributes {:reason => :no_match}9002 the end divider is ...9003 is expected to have attributes {:front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}9004 the front-matter is not a mapping9005 is expected to have attributes {:reason => :not_mapping}9006 there is nothing in the front-matter block9007 is expected to have attributes {:reason => :no_match}9008 there is a string in the YAML block9009 is expected to have attributes {:reason => :not_mapping}9010 there is dangerous YAML in the block9011 is expected to have attributes {:error => (be present), :reason => :parse_error}9012 there is acceptably long YAML in the front-matter block9013 is expected to have attributes {:front_matter => (include {:title => (be present)})}9014 there is suspiciously long YAML in the front-matter block9015 is expected to have attributes {:reason => :too_long}9016 TOML front matter9017 is expected to have attributes {:reason => :not_yaml}9018 TOML style fences, advertised as YAML9019 is expected to have attributes {:front_matter => (include {:title => "My title"})}9020 YAML, advertised as something else9021 is expected to have attributes {:reason => :not_yaml}9022 there is text content in the YAML block, in comments9023 is expected to have attributes {:front_matter => (include {:foo => 1})}9024 there is text content in the YAML block9025 is expected to have attributes {:reason => :not_mapping}9026Gitlab::Auth::OAuth::IdentityLinker9027 linked identity exists9028 doesn't create new identity9029 sets #changed? to false9030 identity already linked to different user9031 #changed? returns false9032 exposes error message9033 identity needs to be created9034 creates linked identity9035 sets identity provider9036 sets identity extern_uid9037 sets #changed? to true9038Mutations::Security::CiConfiguration::ConfigureSastIac9039 is expected to require graphql authorizations :push_code9040 #resolve9041 generates an error if the resource is not accessible to the user9042 when user does not have enough permissions9043 generates an error9044 when user is a maintainer of a different project9045 generates an error9046 when the user does not have permission to create a new branch9047 returns an array of errors9048 when the user can create a merge request9049 when service successfully generates a path to create a new merge request9050 returns a success path9051 when service can not generate any path to create a new merge request9052 returns an array of errors9053Evidences::EvidenceEntity9054 exposes the expected fields9055 when a release is associated to a milestone9056 when a milestone has no issue associated with it9057 creates a valid JSON object9058 when a milestone has no description9059 creates a valid JSON object9060 when a milestone has no due_date9061 creates a valid JSON object9062 when a milestone has an issue9063 when the issue has no description9064 creates a valid JSON object9065 when a release is not associated to any milestone9066 creates a valid JSON object9067Mutations::Terraform::State::Lock9068 is expected to eq "TerraformStateLock"9069 is expected to require graphql authorizations :admin_terraform_state9070 #resolve9071 user does not have permission9072 raises an error9073 user has permission9074 locks the state9075 state is already locked9076 does not modify the existing lock9077 with invalid params9078 raises an error9079Keys::ExpiryNotificationService9080 with key expiring today9081 when user has permission to receive notification9082 updates notified column9083 behaves like sends a notification9084 is expected to eq 19085 behaves like uses notification service to send email to the user9086 is expected to receive ssh_key_expired(#<User id:2718 @user2344>, ["36:59:6b:ac:5b:85:a3:d6:6a:0f:40:6a:16:a7:fd:a8"]) 1 time9087 when user does NOT have permission to receive notification9088 does not update notified column9089 behaves like does not send notification9090 is expected to eq 09091 with key expiring soon9092 when user has permission to receive notification9093 updates notified column9094 behaves like sends a notification9095 is expected to eq 19096 behaves like uses notification service to send email to the user9097 is expected to receive ssh_key_expiring_soon(#<User id:2718 @user2344>, ["81:f6:90:8e:d5:1c:78:a7:bd:17:df:ce:22:ea:2f:f9"]) 1 time9098 when user does NOT have permission to receive notification9099 does not update notified column9100 behaves like does not send notification9101 is expected to eq 09102Ci::SecureFileUploader9103 #key9104 creates a digest with a secret key and the project id9105 .checksum9106 returns a SHA256 checksum for the unencrypted file9107 encryption9108 encrypts the stored file9109 decrypts the file when reading9110 .direct_upload_enabled?9111 returns false9112 .background_upload_enabled?9113 returns false9114 .default_store9115 when object storage is enabled9116 returns REMOTE9117 when object storage is disabled9118 returns LOCAL9119Tags::DestroyService9120 #execute9121 removes the tag9122 calls the RefDeleteUnlockArtifactsWorker9123 when there is an associated release on the tag9124 destroys the release9125Gitlab::Ci::Config::Entry::Release::Assets::Link9126 validation9127 when entry config value is correct9128 #value9129 returns link configuration9130 #valid?9131 is valid9132 when entry value is not correct9133 #errors9134 when name is not a string9135 reports error9136 when name is not present9137 reports error9138 when url is not addressable9139 reports error9140 when url is not present9141 reports error9142 when there is an unknown key present9143 reports error9144MergeRequests::Mergeability::CheckBaseService9145 #merge_request9146 returns the merge_request9147 #params9148 returns the params9149 #skip?9150 raises NotImplementedError9151 #cacheable?9152 raises NotImplementedError9153 #cache_key?9154 raises NotImplementedError9155Users::DismissGroupCalloutService9156 #execute9157 sets the group_id9158 behaves like dismissing user callout9159 creates a new user callout9160 returns a user callout9161 sets the dismissed_at attribute to current time9162 updates an existing callout dismissed_at time9163 does not update an invalid record with dismissed_at time9164Integrations::IrkerWorker#perform9165 when local requests are not allowed9166 is expected to be falsey9167 when connection fails9168 is expected to be falsey9169 when connection successful9170 is expected to be truthy9171 with new branch9172 sends a correct message with branches url9173 with deleted branch9174 sends a correct message9175 with new commits to existing branch9176 sends a correct message with a compare url9177IncidentManagement::PagerDuty::ProcessWebhookService9178 #execute9179 when PagerDuty webhook setting is active9180 when token is valid9181 when webhook payload has acceptable size9182 responds with Accepted9183 processes issues9184 when webhook payload is too big9185 responds with Bad Request9186 behaves like does not process incidents9187 does not process incidents9188 when webhook payload is blank9189 responds with Accepted9190 behaves like does not process incidents9191 does not process incidents9192 when token is invalid9193 responds with Unauthorized9194 behaves like does not process incidents9195 does not process incidents9196 when both tokens are nil9197 responds with Unauthorized9198 behaves like does not process incidents9199 does not process incidents9200 when PagerDuty webhook setting is not active9201 responds with Forbidden9202 behaves like does not process incidents9203 does not process incidents9204Gitlab::GithubImport::Importer::RepositoryImporter9205 #import_wiki?9206 returns true if the wiki should be imported9207 returns false if the GitHub wiki is disabled9208 returns false if the wiki has already been imported9209 #execute9210 imports the repository and wiki9211 does not import the repository if it already exists9212 does not import the wiki if it is disabled9213 does not import the wiki if the repository could not be imported9214 #import_repository9215 imports the repository9216 #import_wiki_repository9217 imports the wiki repository9218 when it raises a Gitlab::Git::CommandError9219 when the error is not a "repository not exported"9220 creates the wiki and re-raise the exception9221 when the error is a "repository not exported"9222 returns true9223 #update_clone_time9224 sets the timestamp for when the cloning process finished9225Gitlab::HealthChecks::Redis::QueuesCheck9226 #metrics9227 Check is passing9228 is expected to include (have attributes {:name => "redis_queues_ping_success", :value => 1})9229 is expected to include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})9230 is expected to include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})9231 Check is misbehaving9232 is expected to include (have attributes {:name => "redis_queues_ping_success", :value => 0})9233 is expected to include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})9234 is expected to include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})9235 Check is timeouting9236 is expected to include (have attributes {:name => "redis_queues_ping_success", :value => 0})9237 is expected to include (have attributes {:name => "redis_queues_ping_timeout", :value => 1})9238 is expected to include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})9239 #readiness9240 Check returns ok9241 is expected to have attributes {:success => true}9242 Check is misbehaving9243 is expected to have attributes {:message => "unexpected Queues check result: error!", :success => false}9244 Check is timeouting9245 is expected to have attributes {:message => "Queues check timed out", :success => false}9246 Check is raising an unhandled exception9247 is expected to have attributes {:message => "unexpected Queues check result: unexpected error", :success => false}9248Gitlab::Prometheus::Internal9249 .uri9250 behaves like returns valid uri9251 is expected not to raise Exception9252 with non default prometheus address9253 behaves like returns valid uri9254 is expected not to raise Exception9255 with :9090 symbol9256 behaves like returns valid uri9257 is expected not to raise Exception9258 with 0.0.0.0:90909259 behaves like returns valid uri9260 is expected not to raise Exception9261 when server_address is nil9262 does not fail9263 when prometheus listen address is blank in gitlab.yml9264 does not configure prometheus9265 .prometheus_enabled?9266 returns correct value9267 when prometheus setting is disabled in gitlab.yml9268 returns correct value9269 when prometheus setting is not present in gitlab.yml9270 does not fail9271 .server_address9272 returns correct value9273 when prometheus setting is not present in gitlab.yml9274 does not fail9275Namespaces::ScheduleAggregationWorker#perform9276 when group is the root ancestor9277 when aggregation schedule exists9278 does not create a new one9279 when aggregation schedule does not exist9280 creates one9281 when group is not the root ancestor9282 creates an aggregation schedule for the root9283 when namespace does not exist9284 logs the error9285 behaves like an idempotent worker9286 is labeled as idempotent9287 performs multiple times sequentially without raising an exception9288 creates a single aggregation schedule9289Projects::TriggeredHooks9290 executes hooks by scope9291 applies branch filters, when they match9292 applies branch filters, when they do not match9293Gitlab::GitalyClient::RemoteService9294 #find_remote_root_ref9295 sends an find_remote_root_ref message and returns the root ref9296 ensure ref is a valid UTF-8 string9297 #update_remote_mirror9298 sends an update_remote_mirror message9299 .exists?9300 when the remote doesn't exist9301 returns false9302Mutations::Terraform::State::Delete9303 is expected to eq "TerraformStateDelete"9304 is expected to require graphql authorizations :admin_terraform_state9305 #resolve9306 user does not have permission9307 raises an error9308 user has permission9309 schedules the state for deletion9310 with invalid params9311 raises an error9312VersionCheckHelper9313 #show_version_check?9314 return conditions9315 enabled: false, consent: false, is_admin: false, result: false9316 returns correct results9317 enabled: false, consent: false, is_admin: true, result: false9318 returns correct results9319 enabled: false, consent: true, is_admin: false, result: false9320 returns correct results9321 enabled: false, consent: true, is_admin: true, result: false9322 returns correct results9323 enabled: true, consent: false, is_admin: false, result: false9324 returns correct results9325 enabled: true, consent: false, is_admin: true, result: true9326 returns correct results9327 enabled: true, consent: true, is_admin: false, result: false9328 returns correct results9329 enabled: true, consent: true, is_admin: true, result: false9330 returns correct results9331ExperimentUser9332 Associations9333 is expected to belong to experiment required: false9334 is expected to belong to user required: false9335 Validations9336 is expected to validate that :group_type cannot be empty/falsy9337Resolvers::Ci::JobTokenScopeResolver9338 is expected to have nullable GraphQL type CiJobTokenScopeType9339 #resolve9340 with access to scope9341 returns nil when scope is not enabled9342 returns the same project in the allow list of projects for the Ci Job Token9343 when another projects gets added to the allow list9344 returns both projects9345 when job token scope is disabled9346 returns nil9347 without access to scope9348 generates an error9349IssuableSeverity9350 associations9351 is expected to belong to issue required: false9352 validations9353 is expected to validate that :severity cannot be empty/falsy9354 is expected to validate that :issue cannot be empty/falsy9355 is expected to validate that :issue is case-sensitively unique9356 enums9357 is expected to define :severity as an enum backed by an integer with values ‹{unknown: 0, low: 1, medium: 2, high: 3, critical: 4}›9358ErrorTracking::Collector::SentryAuthParser9359 .parse9360 returns correct value for public_key9361 with empty headers9362 fails with exception9363 with missing sentry_key9364 returns empty value for public_key9365Projects::FetchStatisticsIncrementService9366 #execute9367 creates a new record for today with count == 19368 doesn't increment previous days statistics9369 when the record already exists for today9370 increments the today record count by 19371Gitlab::Ci::Reports::TestReportSummary9372 #total9373 when test report summary has several build report results9374 returns all the total count in a hash9375 #test_suites9376 when test report summary has several build report results9377 returns test suites grouped by name9378Bitbucket::Page9379 #items9380 returns collection of needed objects9381 #attrs9382 returns attributes9383 #next?9384 returns true9385 returns false9386 #next9387 returns next attribute9388BulkImports::Projects::Graphql::GetSnippetRepositoryQuery9389 has a valid query9390 returns snippet httpUrlToRepo9391 returns snippet createdAt9392 returns snippet title9393 .variables9394 queries project based on source_full_path and pagination9395 .data_path9396 .data_path returns data path9397 .page_info_path9398 .page_info_path returns pagination information path9399ResolvesProject9400 can resolve projects by path9401 can resolve projects by id9402 complains when both are present9403 complains when neither is present9404PerformanceMonitoring::PrometheusPanel9405 #new9406 accepts old schema format9407 accepts new schema format9408 .from_json9409 creates a PrometheusPanelGroup object9410 validations9411 json_content is not a hash9412 is expected to raise ActiveModel::ValidationError9413 when title is missing9414 is expected to raise ActiveModel::ValidationError9415 when metrics are missing9416 is expected to raise ActiveModel::ValidationError9417 .id9418 returns hexdigest of group_title, type and title as the panel id9419DeleteWithLimit9420 .delete_with_limit9421 deletes a limited amount of rows9422Clusters::AgentPolicy9423 rules9424 when developer9425 is expected to be disallowed :admin_cluster9426 when maintainer9427 is expected to be allowed :admin_cluster9428layouts/profile9429 calls enable_search_settings helper with a custom container class9430 displays the search settings entry point9431Every API endpoint9432 feature categories9433 has feature categories9434 recognizes the feature categories9435 has no routes with multiple paths9436 doesn't define or exclude categories on removed actions9437BulkImports::Groups::Transformers::GroupAttributesTransformer9438 #transform9439 returns original data with some keys transformed9440 transforms path from destination_name9441 removes full path9442 transforms visibility level9443 transforms project creation level9444 transforms subgroup creation level9445 parent group transformation9446 sets parent id9447 when destination namespace is empty9448 does not set parent id9449Packages::Conan::CreatePackageService9450 #execute9451 valid params9452 creates a new package9453 behaves like assigns the package creator9454 assigns the package creator9455 behaves like assigns build to package9456 with build info9457 assigns the pipeline to the package9458 behaves like assigns status to package9459 with status param9460 assigns the status to the package9461 invalid params9462 fails9463Ci::CreatePipelineService9464 merge requests handling9465 when pushing a change9466 when a merge request already exists9467 does not create a pipeline9468 when no merge request exists9469 does create a pipeline9470Flutter.gitlab-ci.yml9471 the created pipeline9472 creates test and code_quality jobs9473Resolvers::Kas::AgentConfigurationsResolver9474 is expected to eq Types::Kas::AgentConfigurationType9475 is expected to be truthy9476 is expected to include {:calls_gitaly => true}9477 #resolve9478 returns agents configured for the project9479 an error is returned from the KAS client9480 generates a graphql error9481 user does not have permission9482 is expected to be empty9483RuboCop::Cop::Migration::AddColumnWithDefault9484 when outside of a migration9485 does not register any offenses9486 when in a migration9487 registers an offense9488Gitlab::LetsEncrypt9489 .enabled?9490 when terms of service are accepted9491 is expected to eq true9492 when terms of service are not accepted9493 is expected to eq false9494 .terms_of_service_url9495 returns the url9496environments routing9497 routing environment folders9498 when using JSON format9499 correctly matches environment name and JSON format9500 when using HTML format9501 correctly matches environment name and HTML format9502 when using implicit format9503 correctly matches environment name9504profiles/keys/_key.html.haml9505 when the key partial is used9506 displays the correct values9507 when the key has not been used9508 renders "Never" for last used9509 when the key does not have an expiration date9510 renders "Never" for expires9511 when the key has expired9512 renders "Expired:" as the expiration date label9513 when the key is not deletable9514 does not render the partial9515 icon tooltip9516 valid: false, expiry: Fri, 01 Jul 2022 20:02:39.381711940 UTC +00:00, result: "Key type is forbidden. Must be DSA, ECDSA, ED25519, ECDSA_SK, or ED25519_SK"9517 renders the correct icon9518 valid: true, expiry: Fri, 01 Jul 2022 20:02:39.381994420 UTC +00:00, result: ""9519 renders the correct icon9520Gitlab::Database::SchemaCacheWithRenamedTable9521 when table is not renamed yet9522 uses the original table to look up metadata9523 when table is renamed9524 uses the renamed table to look up metadata9525 has primary key9526 has the same column definitions9527 has the same indexes9528 has the same column_hash9529 when the table behind a model is actually a view9530 can persist records9531 can find records9532Mutations::Branches::Create9533 #resolve9534 raises an error if the resource is not accessible to the user9535 when the user can create a branch9536 when service successfully creates a new branch9537 returns a new branch9538 when service fails to create a new branch9539 is expected to be nil9540 is expected to eq ["Branch already exists"]9541Tooling::Danger::ProductIntelligence9542 #check!9543 with growth experiment label9544 doesn't add new labels9545 doesn't add new warnings9546 without growth experiment label9547 with approved label9548 doesn't add new labels9549 doesn't add new warnings9550 without approved label9551For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/growth/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended9552Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).9553For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).9554markdown formatted list9555 adds new labels9556 warns with proper message9557 with product intelligence::review pending label9558For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/growth/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended9559Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).9560For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).9561markdown formatted list9562 doesn't add new labels9563 with product intelligence::approved label9564 doesn't add new labels9565 with the product intelligence label9566 with ci? false9567For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/growth/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended9568Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).9569For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).9570markdown formatted list9571 doesn't add new labels9572 with ci? true9573For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/growth/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended9574Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).9575For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).9576markdown formatted list9577 adds new labels9578Gitlab::GithubImport::LabelFinder9579 #id_for9580 with a cache in place9581 returns the ID of the given label9582 returns nil for an empty cache key9583 returns nil for a non existing label name9584 without a cache in place9585 returns nil for a label9586 #build_cache9587 builds the cache of all project labels9588 #cache_key_for9589 returns the cache key for a label name9590Gitlab::GitlabImport::Importer9591 #execute9592 persists issues9593FailedTests9594 #output_failed_test_files9595Creating output directory...9596 writes the file for the suite9597 #failed_files_for_suite_collection9598 returns a list of failed file paths for suite collection9599 empty report9600 does not fail for output files9601 returns empty results for suite failures9602 invalid report9603 does not fail for output files9604 returns empty results for suite failures9605 missing report file9606 does not fail for output files9607 returns empty results for suite failures9608RuboCop::Cop::Migration::AddColumnsToWideTables9609 when outside of a migration9610 does not register any offenses9611 when in a migration9612 with wide tables9613 registers an offense when adding a column to a wide table9614 registers an offense when adding a column with default to a wide table9615 registers an offense when adding a reference9616 registers an offense when adding timestamps9617 register no offense when using other method9618 with a regular table9619 registers no offense for notes9620Gitlab::Lazy9621 when not calling any methods9622 does not call the supplied block9623 when calling a method on the object9624 lazy loads the value returned by the block9625 #respond_to?9626 returns true for a method defined on the wrapped object9627 returns false for a method not defined on the wrapped object9628Peek::Views::ActiveRecord9629 includes db role data and db_config_name name9630Gitlab::Session9631 uses the current thread as a data store9632 #with_session9633 sets session hash9634 restores current store after9635Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumns9636 #array_aggregated_column_names9637 is expected to eq ["issues_relative_position_array", "issues_id_array"]9638 #original_column_names9639 is expected to eq ["relative_position", "id"]9640 #cursor_values9641 returns the keyset pagination cursor values from the column arrays as SQL expression9642ActiveRecord::ConnectionAdapters::PostgreSQLAdapter9643 when warn_on_new_connection is enabled9644 warns on new connection9645 when warn_on_new_connection is disabled9646 does not warn on new connection9647Gitlab::Console9648 .welcome!9649 when running in the Rails console9650 on darwin9651 behaves like console messages9652 prints system info9653 behaves like console messages9654 prints system info9655 when not running in the Rails console9656 does not print anything9657Gitlab::SlashCommands::Presenters::IssueNew9658 is expected to be a kind of Hash9659 shows the issue9660Gitlab::Graphql::Representation::TreeEntry9661 .decorate9662 returns NilClass when given nil9663 returns array of TreeEntry9664BulkImports::Projects::Pipelines::RepositoryPipeline9665 #run9666 successfully imports repository9667 imports new repository into destination project9668 project has no repository9669 skips repository import9670 blocked local networks9671 imports new repository into destination project9672 #after_run9673 executes housekeeping service after import9674BlobViewer::Changelog9675 #render_error9676 when there are no tags9677 returns :no_tags9678 when there are tags9679 returns nil9680MATLAB.gitlab-ci.yml9681 the created pipeline9682 creates all jobs9683Gitlab::Cluster::LifecycleEvents9684 hooks execution9685 method: :do_worker_start, hook_names: [:worker_start_hooks]9686 executes all hooks9687 method: :do_before_fork, hook_names: [:before_fork_hooks]9688 executes all hooks9689 method: :do_before_graceful_shutdown, hook_names: [:master_blackout_period, :master_graceful_shutdown]9690 executes all hooks9691 method: :do_before_master_restart, hook_names: [:master_restart_hooks]9692 executes all hooks9693 #call9694 when many hooks raise exception9695 USE_FATAL_LIFECYCLE_EVENTS is set to default9696 only first hook is executed and is fatal9697 when USE_FATAL_LIFECYCLE_EVENTS is disabled9698ERROR: The hook my_hooks failed with exception (RuntimeError) "Exception A".9699ERROR: The hook my_hooks failed with exception (RuntimeError) "Exception B".9700 many hooks are executed and all exceptions are logged9701groups/_home_panel9702 renders the group ID9703 admin area link9704 renders admin area link for admin9705 does not render admin area link for non-admin9706 does not render admin area link for anonymous9707RuboCop::Cop::Migration::AddReference9708 when outside of a migration9709 does not register any offenses9710 when in a migration9711 when the table existed before9712 registers an offense when using add_reference9713 registers an offense when using add_reference with index enabled9714 registers an offense if only a different table was created9715 when creating the table at the same time9716 registers an offense when using add_reference without index9717 registers an offense when using add_reference index disabled9718 does not register an offense when using add_reference with index enabled9719 does not register an offense when the index is unique9720Peek::Views::Rugged9721 returns no results9722 returns aggregated results9723Gitlab::Ci::Build::Artifacts::Adapters::GzipStream9724 #initialize9725 when stream is passed9726 initialized9727 when stream is not passed9728 raises an error9729 #each_blob9730 when stream is gzip file9731 when gzip file contains one file9732 iterates content and file_name9733 when gzip file contains three files9734 iterates content and file_name9735 when stream is zip file9736 raises an error9737Types::TimelogType9738 is expected to eq "Timelog"9739 is expected to have graphql fields :id, :spent_at, :time_spent, :user, :issue, :merge_request, :note, :summary, and :userPermissions9740 is expected to require graphql authorizations :read_issue9741 is expected to expose permissions using Types::PermissionTypes::Timelog9742 user field9743 returns user9744 issue field9745 returns issue9746 merge_request field9747 returns merge_request9748 note field9749 returns note9750Peek::Views::Memory9751 with process_action.action_controller notification9752 returns empty results when it has not yet fired9753 returns memory instrumentation data when it has fired9754Namespaces::OnboardingIssueCreatedWorker#perform9755 behaves like records an onboarding progress action9756 is expected to receive execute({:action=>:issue_created}) 1 time9757 behaves like does not record an onboarding progress action9758 is expected not to receive new(*(any args)) 0 times9759 behaves like an idempotent worker9760 is labeled as idempotent9761 performs multiple times sequentially without raising an exception9762 sets the onboarding progress action9763Tooling::Crystalball::CoverageLinesExecutionDetector9764 #detect9765 is expected to eq ["file.rb"]9766 with no changes9767 is expected to eq []9768 with previously uncovered file9769 is expected to eq ["file.rb"]9770 with path outside of root9771 is expected to eq []9772 with path in excluded prefix9773 is expected to eq []9774BaseCountService9775 #relation_for_count9776 raises NotImplementedError9777 #count9778 returns the number of values9779 #uncached_count9780 returns the uncached number of values9781 #refresh_cache9782 refreshes the cache9783 #delete_cache9784 deletes the cache9785 #raw?9786 returns false9787 #cache_key9788 raises NotImplementedError9789 #cache_options9790 returns the default in options9791Users::Callout9792 behaves like having unique enum values9793 has unique values in "feature_name"9794 validations9795 is expected to validate that :feature_name cannot be empty/falsy9796 is expected to validate that :feature_name is unique within the scope of :user_id9797 scopes9798 .with_feature_name9799 returns user callouts for the given feature name only9800Packages::Rubygems::ExtractionWorker9801 #perform9802 processes the gem9803 handles a processing failure9804 handles processing an unaccounted for error9805 returns when there is no package file9806 returns without action9807RuboCop::Cop::ActiveModelErrorsDirectManipulation9808 when modifying errors9809 registers an offense9810 when assigning9811 registers an offense9812 when modifying errors.messages9813 registers an offense9814 when assigning9815 registers an offense9816 when modifying errors.details9817 registers an offense9818 when assigning9819 registers an offense9820API::Base9821 declare feature categories at handler level for all routes9822 sets feature category for a particular route9823 sets request urgency for a particular route9824 declare feature categories at route level9825 sets feature category for a particular route9826 sets request urgency for a particular route9827 declare feature categories at both handler level and route level9828 sets feature category for a particular route9829 sets target duration for a particular route9830Types::MemberInterface9831 exposes the expected fields9832 .resolve_type9833 for project member9834 is expected to equal Types::ProjectMemberType9835 for group member9836 is expected to equal Types::GroupMemberType9837 for an unkown type9838 raises an error9839 #merge_request_interaction9840 returns the correct type9841 has the correct arguments9842Gitlab::Ci::Status::WaitingForResource9843 #text9844 is expected to eq "waiting"9845 #label9846 is expected to eq "waiting for resource"9847 #icon9848 is expected to eq "status_pending"9849 #favicon9850 is expected to eq "favicon_pending"9851 #group9852 is expected to eq "waiting-for-resource"9853 #details_path9854 is expected to be nil9855Gitlab::Asciidoc::IncludeProcessor9856 #include_allowed?9857 allows the first include9858 allows the Nth include9859 disallows the Nth + 1 include9860Gitlab::Ci::Ansi2json::Parser9861 bold?9862 returns true if style mask matches bold format9863 returns false if style mask does not match bold format9864 matching_formats9865 returns matching formats given a style mask9866 returns an empty array if no formats match the style mask9867Types::CustomerRelations::ContactType9868 is expected to eq "CustomerRelationsContact"9869 is expected to have graphql fields "id", "organization", "first_name", "last_name", "phone", "email", "description", "active", "created_at", and "updated_at"9870 is expected to require graphql authorizations :read_crm_contact9871Import::GitlabProjects::RemoteFileValidator9872 does nothing when the oject is valid9873 content_length validation9874 is invalid with file too small9875 is invalid with file too large9876 content_type validation9877 only allows ALLOWED_CONTENT_TYPES as content_type9878MergeRequests::Mergeability::CheckBrokenStatusService9879 #execute9880 when the merge request is broken9881 returns a check result with status failed9882 when the merge request is not broken9883 returns a check result with status success9884 #skip?9885 returns false9886 #cacheable?9887 returns false9888Gitlab::Metrics::RailsSlis9889 .initialize_request_slis!9890 initializes the SLI for all possible endpoints if they weren't9891 .request_apdex9892 returns the initialized request apdex SLI object9893 .graphql_query_apdex9894 returns the initialized request apdex SLI object9895shared/ssh_keys/_key_delete.html.haml9896 when the text parameter is used9897 has text9898 when the text parameter is not used9899 does not have text9900BulkImports::Projects::Pipelines::ProtectedBranchesPipeline9901 #run9902 imports protected branch information9903Types::Notes::NoteType9904 exposes the expected fields9905 is expected to expose permissions using Types::PermissionTypes::Note9906 is expected to require graphql authorizations :read_note9907MicrosoftTeams::Notifier9908 #ping9909 expects to receive successful answer9910 #body9911 returns Markdown-based body when HTML was passed9912 fails when empty Hash was passed9913CsvBuilders::Stream9914 #render9915 returns a lazy enumerator9916 returns all rows up to default max value9917 truncates to max rows9918Gitlab::IncidentManagement::PagerDuty::IncidentIssueDescription9919 #to_s9920 returns description9921 when created_at is missing9922 description contains current time in UTC9923 when there are several assignees9924 assignees is a list of links9925 when there are several impacted services9926 impacted services is a list of links9927UpdateProjectStatisticsWorker9928 #perform9929 updates the project statistics9930layouts/nav/sidebar/_profile9931 behaves like has nav sidebar9932 has collapsed nav sidebar on mobile9933 behaves like sidebar includes snowplow attributes9934 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"user_side_navigation\"][data-track-property=\"user_side_navigation\"]"9935Gitlab::Graphql::Pagination::Connections9936-- create_table(:_test_testing_pagination_nodes, {:force=>true})9937 -> 0.0053s9938 OffsetPaginatedRelation9939 maps to Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection9940 ActiveRecord::Relation9941 maps to Gitlab::Graphql::Pagination::Keyset::Connection9942 ExternallyPaginatedArray9943 maps to Gitlab::Graphql::Pagination::ExternallyPaginatedArrayConnection9944 Array9945 maps to Gitlab::Graphql::Pagination::ArrayConnection9946-- drop_table(:_test_testing_pagination_nodes, {:force=>true})9947 -> 0.0020s9948Gitlab::ApplicationRateLimiter::IncrementPerActionedResource9949 #increment9950 increments per resource9951 sets time to live (TTL) for the key9952 #read9953 returns 0 when there is no data9954 returns the correct value9955ResolvesIds9956 with a single project9957 returns the correct array9958 with a single issue9959 returns the correct array9960 with multiple users9961 returns the correct array9962Gitlab::Metrics::Subscribers::ActionView9963 #render_template9964 tracks rendering of a template9965 observes view rendering time9966API::Helpers::CommonHelpers9967 .coerce_nil_params_to_array!9968 converts all nil parameters to empty arrays9969 leaves non-nil parameters alone9970BulkImports::Projects::Stage9971 #pipelines9972 list all the pipelines9973 only have pipelines with valid keys9974 only has pipelines with valid versions9975 when stages are out of order in the config hash9976 list all the pipelines ordered by stage9977API::Entities::Ci::JobArtifactFile9978 returns the filename9979 returns the size9980Gitlab::ErrorTracking::Processor::SanitizeErrorMessageProcessor9981 .call9982 with Raven event9983 behaves like processes the exception9984 cleans the exception message9985 with Sentry event9986 behaves like processes the exception9987 cleans the exception message9988 with invalid event9989 does nothing9990Cookies serializer initializer9991 uses JSON serializer by default9992 uses the unsafe hybrid serializer when the environment variables is set9993ScheduleMigrateExternalDiffsWorker9994 #perform9995 triggers a scan for diffs to migrate9996 will not run if the lease is already taken9997BulkImports::GetImportableDataService9998 #execute9999 returns version_validation and a response10000CodequalityReportsComparerSerializer10001 #to_json10002 when base report has error and head has a different error10003 matches the schema10004 when base report has no error and head has errors10005 matches the schema10006AccessibilityReportsComparerSerializer10007 #to_json10008 when base report has error and head has a different error10009 matches the schema10010 when base report has no error and head has errors10011 matches the schema10012Types::Metadata::KasType10013 is expected to eq "Kas"10014 is expected to require graphql authorizations :read_instance_metadata10015DatabaseReflection10016 .reflect10017 returns a Reflection instance10018 memoizes the result10019Gitlab::HashedPath10020 #to_s10021 when path contains a single value10022 returns the disk path10023 when path contains multiple values10024 returns the disk path10025Gitlab::DatabaseImporters::CommonMetrics::PrometheusMetric10026 group enum equals ::PrometheusMetric10027 .group_titles equals ::PrometheusMetric10028Types::ContainerRepositoryTagsSortEnum10029 is expected to eq "ContainerRepositoryTagSort"10030 exposes all the existing issue sort values10031BlobViewer::Podspec10032 #package_name10033 returns the package name10034Gitlab::Metrics::Dashboard::Validator::CustomFormats10035 #format_handlers10036 add_to_metric_id_cache10037 adds data to metric id cache10038Gitlab::Auth::Saml::Config10039 .enabled?10040 is expected to eq false10041 when SAML is enabled10042 is expected to eq true10043Types::Ci::JobArtifactFileTypeEnum10044 exposes all job artifact file types10045API::Entities::Projects::RepositoryStorageMove10046 #as_json10047 includes basic fields10048EnableSearchSettingsHelper10049 #enable_search_settings10050 sets content for before_content10051Types::Ci::TestCaseStatusEnum10052 is expected to eq "TestCaseStatus"10053 exposes all test case status types10054Gitlab::GitalyClient::DiffStitcher10055 enumeration10056 combines segregated diff messages together10057API::Entities::Nuget::Dependency10058 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}10059Types::Packages::Pypi::MetadatumType10060 includes pypi metadatum fields10061Ci::DailyBuildGroupReportResultSerializer10062 #to_json10063 returns an array of group results10064RuboCop::Cop::IncludeSidekiqWorker10065 when `Sidekiq::Worker` is included10066 registers an offense and corrects10067RuboCop::Cop::Gitlab::Union10068 flags the use of Gitlab::SQL::Union.new10069Gitlab::SidekiqStatus::ServerMiddleware10070 #call10071 stops tracking of a job upon completion10072Knapsack report was generated. Preview:10074 "spec/models/merge_request_spec.rb": 272.47402615100054,10075 "spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb": 56.74489977900066,10076 "spec/models/ci/job_artifact_spec.rb": 87.27546456500022,10077 "spec/models/clusters/applications/prometheus_spec.rb": 84.7153276199997,10078 "spec/models/clusters/applications/jupyter_spec.rb": 88.88086241900055,10079 "spec/services/issues/move_service_spec.rb": 72.90778087299987,10080 "spec/models/milestone_spec.rb": 48.27118241199969,10081 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb": 60.937354682999285,10082 "spec/services/event_create_service_spec.rb": 36.822918222000226,10083 "spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb": 20.827822395999647,10084 "spec/models/snippet_spec.rb": 18.66155665899987,10085 "spec/presenters/project_presenter_spec.rb": 24.54545665599926,10086 "spec/models/members/group_member_spec.rb": 34.61768263899921,10087 "spec/models/award_emoji_spec.rb": 22.193384817999686,10088 "spec/services/database/consistency_check_service_spec.rb": 37.86056636399917,10089 "spec/services/merge_requests/reopen_service_spec.rb": 30.036882984999465,10090 "spec/services/merge_requests/close_service_spec.rb": 30.759763819998625,10091 "spec/lib/gitlab/reference_extractor_spec.rb": 21.76406286800011,10092 "spec/models/deploy_token_spec.rb": 12.989100319999125,10093 "spec/workers/database/batched_background_migration/ci_database_worker_spec.rb": 21.890910197998892,10094 "spec/helpers/gitlab_routing_helper_spec.rb": 11.397128891998364,10095 "spec/services/issues/import_csv_service_spec.rb": 18.67929650699989,10096 "spec/services/groups/create_service_spec.rb": 20.067236187000162,10097 "spec/graphql/resolvers/board_list_issues_resolver_spec.rb": 18.69048552499953,10098 "spec/serializers/environment_serializer_spec.rb": 19.572571783999592,10099 "spec/models/serverless/domain_cluster_spec.rb": 16.370543426999575,10100 "spec/lib/gitlab/database/batch_count_spec.rb": 9.49425422600143,10101 "spec/helpers/tab_helper_spec.rb": 2.473434453000664,10102 "spec/services/clusters/applications/check_upgrade_progress_service_spec.rb": 18.44232102800015,10103 "spec/services/git/tag_hooks_service_spec.rb": 12.867997325000033,10104 "spec/lib/gitlab/ci/variables/collection_spec.rb": 3.9016777939996246,10105 "spec/lib/container_registry/gitlab_api_client_spec.rb": 3.8749094270006026,10106 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 11.186279534000278,10107 "spec/lib/gitlab/auth/saml/user_spec.rb": 6.097066461001305,10108 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1_spec.rb": 13.552726334000909,10109 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 7.758916084001612,10110 "spec/services/ci/after_requeue_job_service_spec.rb": 16.425207963000503,10111 "spec/services/groups/import_export/export_service_spec.rb": 11.585521830000289,10112 "spec/tasks/gettext_rake_spec.rb": 7.261840093999126,10113 "spec/helpers/dropdowns_helper_spec.rb": 1.4442784279999614,10114 "spec/serializers/ci/trigger_entity_spec.rb": 9.541644708000604,10115 "spec/services/container_expiration_policies/update_service_spec.rb": 4.588695675998679,10116 "spec/models/alert_management/http_integration_spec.rb": 4.072293257000638,10117 "spec/models/import_export_upload_spec.rb": 8.52368904099967,10118 "spec/models/concerns/reactive_caching_spec.rb": 2.939430917000209,10119 "spec/finders/projects/topics_finder_spec.rb": 7.546406658999331,10120 "spec/lib/gitlab/regex_requires_app_spec.rb": 1.6918942289994447,10121 "spec/tasks/gitlab/cleanup_rake_spec.rb": 7.5311750910004776,10122 "spec/models/bulk_imports/entity_spec.rb": 2.886976585999946,10123 "spec/tasks/gitlab/packages/events_rake_spec.rb": 3.8454487119997793,10124 "spec/services/namespace_settings/update_service_spec.rb": 6.38920845299981,10125 "spec/graphql/mutations/namespace/package_settings/update_spec.rb": 4.691353936999803,10126 "spec/finders/packages/packages_finder_spec.rb": 3.119964819001325,10127 "spec/models/email_spec.rb": 2.5552286699985416,10128 "spec/lib/gitlab/logger_spec.rb": 1.0082031179990736,10129 "spec/lib/feature/definition_spec.rb": 0.9606590460007283,10130 "spec/models/prometheus_alert_spec.rb": 3.522308374000204,10131 "spec/services/deployments/archive_in_project_service_spec.rb": 6.5510238479982945,10132 "spec/services/integrations/test/project_service_spec.rb": 4.311958207999851,10133 "spec/services/system_notes/commit_service_spec.rb": 4.74261561899948,10134 "spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb": 1.386071336999521,10135 "spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb": 5.648246993001521,10136 "spec/models/design_management/design_collection_spec.rb": 4.516299815000821,10137 "spec/lib/gitlab/x509/certificate_spec.rb": 2.7530233079996833,10138 "spec/lib/gitlab/ci/config/entry/trigger_spec.rb": 0.6217334600005415,10139 "spec/models/badge_spec.rb": 3.6722293399998307,10140 "spec/models/namespace_statistics_spec.rb": 1.1076559129996895,10141 "spec/models/concerns/bulk_insert_safe_spec.rb": 1.7572946069994941,10142 "spec/lib/gitlab/middleware/multipart_spec.rb": 1.0197697960011283,10143 "spec/services/commits/cherry_pick_service_spec.rb": 5.73819026899946,10144 "spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb": 1.806459610001184,10145 "spec/lib/gitlab/ci/config/entry/default_spec.rb": 1.8002775509994535,10146 "spec/services/error_tracking/list_issues_service_spec.rb": 4.178967559000739,10147 "spec/workers/merge_worker_spec.rb": 5.482893308999337,10148 "spec/lib/gitlab/tracking/standard_context_spec.rb": 1.878869169000609,10149 "spec/models/concerns/sensitive_serializable_hash_spec.rb": 1.8049934200007556,10150 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb": 1.9408387979983672,10151 "spec/finders/ci/jobs_finder_spec.rb": 2.2607672169997386,10152 "spec/lib/gitlab/github_import/parallel_scheduling_spec.rb": 1.21696193400021,10153 "spec/lib/gitlab/subscription_portal_spec.rb": 0.5297172339996905,10154 "spec/lib/gitlab/ci/pipeline/chain/build_spec.rb": 1.3354069460001483,10155 "spec/lib/gitlab/ci/artifact_file_reader_spec.rb": 4.491782748998958,10156 "spec/lib/gitlab/event_store/store_spec.rb": 0.6516665560011461,10157 "spec/lib/system_check/simple_executor_spec.rb": 0.5823555059996579,10158 "spec/lib/gitlab/error_tracking_spec.rb": 1.0467639420003252,10159 "spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb": 0.7298478129996511,10160 "spec/models/users_statistics_spec.rb": 3.9692527530005464,10161 "spec/workers/stage_update_worker_spec.rb": 2.9768993010002305,10162 "spec/lib/gitlab/graphql/pagination/keyset/order_info_spec.rb": 0.5817502869995224,10163 "spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb": 1.8746785990006174,10164 "spec/lib/gitlab/github_import/importer/pull_request_review_importer_spec.rb": 2.420890031999079,10165 "spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb": 4.049077929999839,10166 "spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 3.453072895999867,10167 "spec/services/task_list_toggle_service_spec.rb": 0.38312787900031253,10168 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb": 1.4115868829994724,10169 "spec/lib/gitlab/bullet/exclusions_spec.rb": 0.38457040799949027,10170 "spec/graphql/resolvers/project_packages_resolver_spec.rb": 2.5864762849996623,10171 "spec/models/concerns/has_environment_scope_spec.rb": 1.1114169520005817,10172 "spec/lib/banzai/reference_parser/project_parser_spec.rb": 2.9002422539997497,10173 "spec/models/integrations/slack_slash_commands_spec.rb": 2.8814329169999837,10174 "spec/lib/safe_zip/entry_spec.rb": 0.8880611280001176,10175 "spec/lib/api/helpers/authentication_spec.rb": 1.1251210699992953,10176 "spec/services/design_management/design_user_notes_count_service_spec.rb": 3.186793568000212,10177 "spec/lib/api/entities/merge_request_changes_spec.rb": 1.3626043010008289,10178 "spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb": 0.7205578049997712,10179 "spec/workers/packages/cleanup_package_file_worker_spec.rb": 1.6110268820011697,10180 "spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb": 0.47491988299952936,10181 "spec/models/ci/unit_test_spec.rb": 3.4063249940008973,10182 "spec/lib/gitlab/access/branch_protection_spec.rb": 0.49015953200068907,10183 "spec/finders/freeze_periods_finder_spec.rb": 3.3163988169999357,10184 "spec/helpers/sidekiq_helper_spec.rb": 0.5480095620005159,10185 "spec/workers/gitlab/phabricator_import/base_worker_spec.rb": 3.238782899999933,10186 "spec/lib/gitlab/gitaly_client/call_spec.rb": 0.8775353790006193,10187 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.320690767000997,10188 "spec/lib/bitbucket_server/representation/repo_spec.rb": 0.2369085520003864,10189 "spec/lib/gitlab/exclusive_lease_helpers_spec.rb": 0.6423965569993015,10190 "spec/models/bulk_import_spec.rb": 0.8227873880005063,10191 "spec/services/projects/hashed_storage/base_attachment_service_spec.rb": 2.254209467999317,10192 "spec/lib/gitlab/ci/build/rules/rule_spec.rb": 2.2162336239998695,10193 "spec/config/application_spec.rb": 0.2412140710002859,10194 "spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb": 0.7366894120004872,10195 "spec/lib/gitlab/graphs/commits_spec.rb": 2.1483400350007287,10196 "spec/graphql/mutations/issues/set_severity_spec.rb": 3.2591487760000746,10197 "spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb": 0.659159394001108,10198 "spec/lib/gitlab/utils/nokogiri_spec.rb": 0.8066411009986041,10199 "spec/lib/gitlab/template/finders/repo_template_finders_spec.rb": 0.8206518980005058,10200 "spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb": 0.23815511199973116,10201 "spec/models/uploads/fog_spec.rb": 1.5614297089996398,10202 "spec/models/subscription_spec.rb": 0.9855889819991717,10203 "spec/lib/gitlab/import/merge_request_creator_spec.rb": 1.8337588949998462,10204 "spec/workers/bulk_imports/relation_export_worker_spec.rb": 1.3510526629997912,10205 "spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb": 0.9787292229993909,10206 "spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb": 1.5356290730014734,10207 "spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb": 2.098859822999657,10208 "spec/serializers/evidences/evidence_entity_spec.rb": 1.4055346349996398,10209 "spec/graphql/mutations/terraform/state/lock_spec.rb": 1.4208115010005713,10210 "spec/services/keys/expiry_notification_service_spec.rb": 1.041733413001566,10211 "spec/uploaders/ci/secure_file_uploader_spec.rb": 2.450804916999914,10212 "spec/services/tags/destroy_service_spec.rb": 2.4296450589990854,10213 "spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb": 0.5595938709993789,10214 "spec/services/merge_requests/mergeability/check_base_service_spec.rb": 0.20503772700067202,10215 "spec/services/users/dismiss_group_callout_service_spec.rb": 0.8123048699999345,10216 "spec/workers/integrations/irker_worker_spec.rb": 1.4904404210010398,10217 "spec/services/incident_management/pager_duty/process_webhook_service_spec.rb": 0.9896350019989768,10218 "spec/lib/gitlab/github_import/importer/repository_importer_spec.rb": 0.4210964129997592,10219 "spec/lib/gitlab/health_checks/redis/queues_check_spec.rb": 0.5104921580004884,10220 "spec/lib/gitlab/prometheus/internal_spec.rb": 0.472006574000261,10221 "spec/workers/namespaces/schedule_aggregation_worker_spec.rb": 1.146215635999397,10222 "spec/models/projects/triggered_hooks_spec.rb": 0.936433049999323,10223 "spec/lib/gitlab/gitaly_client/remote_service_spec.rb": 1.899867723999705,10224 "spec/graphql/mutations/terraform/state/delete_spec.rb": 0.8300609569996595,10225 "spec/helpers/version_check_helper_spec.rb": 0.40242815499914286,10226 "spec/models/experiment_user_spec.rb": 0.19409915899996122,10227 "spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb": 1.9022532740000315,10228 "spec/models/issuable_severity_spec.rb": 0.5437877629992727,10229 "spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb": 0.10568459299975075,10230 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 1.1635089729988977,10231 "spec/lib/gitlab/ci/reports/test_report_summary_spec.rb": 1.501730829000735,10232 "spec/lib/bitbucket/page_spec.rb": 0.18151330100045016,10233 "spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb": 0.3443374449998373,10234 "spec/graphql/resolvers/concerns/resolves_project_spec.rb": 0.3778311189998931,10235 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 0.23513848199945642,10236 "spec/models/concerns/delete_with_limit_spec.rb": 1.6094540810008766,10237 "spec/policies/clusters/agent_policy_spec.rb": 2.1389030270001967,10238 "spec/views/layouts/profile.html.haml_spec.rb": 2.3701096690001577,10239 "spec/lib/api/every_api_endpoint_spec.rb": 1.0549724110005627,10240 "spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb": 0.48083982300158823,10241 "spec/services/packages/conan/create_package_service_spec.rb": 1.1339371079993725,10242 "spec/services/ci/create_pipeline_service/merge_requests_spec.rb": 1.2271307929986506,10243 "spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb": 1.2449502310009848,10244 "spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb": 0.8317917770000349,10245 "spec/rubocop/cop/migration/add_column_with_default_spec.rb": 0.080466086999877,10246 "spec/lib/gitlab/lets_encrypt_spec.rb": 1.2497535790007532,10247 "spec/routing/environments_spec.rb": 1.3198544089991628,10248 "spec/views/profiles/keys/_key.html.haml_spec.rb": 1.0181272570007422,10249 "spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb": 1.0775063669989322,10250 "spec/graphql/mutations/branches/create_spec.rb": 1.5487589109998225,10251 "spec/tooling/danger/product_intelligence_spec.rb": 0.5724895380008093,10252 "spec/lib/gitlab/github_import/label_finder_spec.rb": 0.43006804100150475,10253 "spec/lib/gitlab/gitlab_import/importer_spec.rb": 0.6953245380009321,10254 "spec/scripts/failed_tests_spec.rb": 0.26959391699892876,10255 "spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb": 0.2455760310003825,10256 "spec/lib/gitlab/lazy_spec.rb": 0.22432646400011436,10257 "spec/lib/peek/views/active_record_spec.rb": 0.09773180500087619,10258 "spec/lib/gitlab/session_spec.rb": 0.1356521280013112,10259 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb": 0.12328734000038821,10260 "spec/initializers/00_connection_logger_spec.rb": 0.11266372199861507,10261 "spec/lib/gitlab/console_spec.rb": 0.19732358800138172,10262 "spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb": 1.311058179999236,10263 "spec/lib/gitlab/graphql/representation/tree_entry_spec.rb": 0.8977391949993034,10264 "spec/lib/bulk_imports/projects/pipelines/repository_pipeline_spec.rb": 1.264118707000307,10265 "spec/models/blob_viewer/changelog_spec.rb": 1.1876797690001695,10266 "spec/lib/gitlab/ci/templates/MATLAB_spec.rb": 1.2920560519996798,10267 "spec/lib/gitlab/cluster/lifecycle_events_spec.rb": 0.6810650409988739,10268 "spec/views/groups/_home_panel.html.haml_spec.rb": 1.069865788000243,10269 "spec/rubocop/cop/migration/add_reference_spec.rb": 0.5426863530010451,10270 "spec/lib/peek/views/rugged_spec.rb": 0.9320779900008347,10271 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.17442421199848468,10272 "spec/graphql/types/timelog_type_spec.rb": 0.2273209239992866,10273 "spec/lib/peek/views/memory_spec.rb": 0.12767058000099496,10274 "spec/workers/namespaces/onboarding_issue_created_worker_spec.rb": 0.48631189199841174,10275 "spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb": 0.16070374400078435,10276 "spec/services/base_count_service_spec.rb": 0.22640058400065755,10277 "spec/models/users/callout_spec.rb": 0.4783111540000391,10278 "spec/workers/packages/rubygems/extraction_worker_spec.rb": 0.7085737960005645,10279 "spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb": 0.1613622339991707,10280 "spec/lib/api/base_spec.rb": 0.20180051799979992,10281 "spec/graphql/types/member_interface_spec.rb": 0.23847870099962165,10282 "spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb": 0.2107358060002298,10283 "spec/lib/gitlab/asciidoc/include_processor_spec.rb": 0.43589965000137454,10284 "spec/lib/gitlab/ci/ansi2json/parser_spec.rb": 0.13508869799989043,10285 "spec/graphql/types/customer_relations/contact_type_spec.rb": 0.11181844199927582,10286 "spec/validators/import/gitlab_projects/remote_file_validator_spec.rb": 0.16419667399895843,10287 "spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb": 0.2176525449995097,10288 "spec/lib/gitlab/metrics/rails_slis_spec.rb": 0.19289565899998706,10289 "spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb": 0.16230943400114484,10290 "spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb": 0.5598817299996881,10291 "spec/graphql/types/notes/note_type_spec.rb": 0.1790436410010443,10292 "spec/lib/microsoft_teams/notifier_spec.rb": 0.21762690400100837,10293 "spec/lib/csv_builders/stream_spec.rb": 0.26079057800052396,10294 "spec/lib/gitlab/incident_management/pager_duty/incident_issue_description_spec.rb": 0.40529408499969577,10295 "spec/workers/update_project_statistics_worker_spec.rb": 0.5521560209999734,10296 "spec/views/layouts/nav/sidebar/_profile.html.haml_spec.rb": 0.6333787390012731,10297 "spec/lib/gitlab/graphql/pagination/connections_spec.rb": 0.24600719999943976,10298 "spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb": 0.14445346700085793,10299 "spec/graphql/resolvers/concerns/resolves_ids_spec.rb": 0.24285247100124252,10300 "spec/lib/gitlab/metrics/subscribers/action_view_spec.rb": 0.13599703799991403,10301 "spec/lib/api/helpers/common_helpers_spec.rb": 0.16364832399995066,10302 "spec/lib/bulk_imports/projects/stage_spec.rb": 0.3272782969997934,10303 "spec/lib/api/entities/ci/job_artifact_file_spec.rb": 0.2394215719996282,10304 "spec/lib/gitlab/error_tracking/processor/sanitize_error_message_processor_spec.rb": 0.19072604900065926,10305 "spec/initializers/cookies_serializer_spec.rb": 0.23010750299908977,10306 "spec/workers/schedule_migrate_external_diffs_worker_spec.rb": 0.20587246700051764,10307 "spec/services/bulk_imports/get_importable_data_service_spec.rb": 0.179293630999382,10308 "spec/serializers/codequality_reports_comparer_serializer_spec.rb": 0.09507336500064412,10309 "spec/serializers/accessibility_reports_comparer_serializer_spec.rb": 0.07458606799991685,10310 "spec/graphql/types/metadata/kas_type_spec.rb": 0.15104901599988807,10311 "spec/models/concerns/database_reflection_spec.rb": 0.11338102199988498,10312 "spec/lib/gitlab/hashed_path_spec.rb": 0.080052376999447,10313 "spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb": 0.11208680200070376,10314 "spec/graphql/types/container_respository_tags_sort_enum_spec.rb": 0.07173471900023287,10315 "spec/models/blob_viewer/podspec_spec.rb": 0.10017947399865079,10316 "spec/lib/gitlab/metrics/dashboard/validator/custom_formats_spec.rb": 0.05287379100082035,10317 "spec/lib/gitlab/auth/saml/config_spec.rb": 0.10033545399892319,10318 "spec/graphql/types/ci/job_artifact_file_type_enum_spec.rb": 0.09543699499954528,10319 "spec/lib/api/entities/projects/repository_storage_move_spec.rb": 0.22120258399991144,10320 "spec/helpers/enable_search_settings_helper_spec.rb": 0.06829499900049996,10321 "spec/graphql/types/ci/test_case_status_enum_spec.rb": 0.08469593699919642,10322 "spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb": 0.09768585500023619,10323 "spec/lib/api/entities/nuget/dependency_spec.rb": 0.06615916899863805,10324 "spec/graphql/types/packages/pypi/metadatum_type_spec.rb": 0.06120406000081857,10325 "spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb": 0.06975406900164671,10326 "spec/rubocop/cop/include_sidekiq_worker_spec.rb": 0.06193431000065175,10327 "spec/rubocop/cop/gitlab/union_spec.rb": 0.06497605900040071,10328 "spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb": 0.1637316440010181410330Knapsack global time execution for tests: 26m 55s10331Pending: (Failures listed here are expected and do not affect your suite's status)10332 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank10333 # No reason given10334 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910335 2) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank10336 # No reason given10337 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710338 3) Milestone behaves like a timebox modules with a project 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 blank10339 # No reason given10340 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910341 4) Milestone behaves like a timebox modules with a project 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 blank10342 # No reason given10343 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710344 5) Milestone behaves like a timebox modules with a group 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 blank10345 # No reason given10346 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910347 6) Milestone behaves like a timebox modules with a group 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 blank10348 # No reason given10349 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710350 7) Database::BatchedBackgroundMigration::CiDatabaseWorker behaves like it runs batched background migration jobs #perform when the base model does not exist does nothing10351 # because the base model for ci exists10352 # ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:6610353 8) Database::BatchedBackgroundMigration::CiDatabaseWorker behaves like it runs batched background migration jobs #perform when the base model does not exist logs a message indicating execution is skipped10354 # because the base model for ci exists10355 # ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:7310356Finished in 27 minutes 0 seconds (files took 1 minute 2.9 seconds to load)103574972 examples, 0 failures, 8 pending10358RSpec exited with 0.10359No examples to retry, congrats!10361Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy10362Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy10364Uploading artifacts...10365coverage/: found 5 matching files and directories 10366crystalball/: found 2 matching files and directories 10367deprecations/: found 3 matching files and directories 10368knapsack/: found 3 matching files and directories 10369rspec/: found 8 matching files and directories 10370WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 10371log/*.log: found 19 matching files and directories 10372WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2658553356/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10373WARNING: Retrying... context=artifacts-uploader error=request redirected10374Uploading artifacts as "archive" to coordinator... 201 Created id=2658553356 responseStatus=201 Created token=pKuw_zAY10375Uploading artifacts...10376rspec/junit_rspec.xml: found 1 matching files and directories 10377WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2658553356/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10378WARNING: Retrying... context=artifacts-uploader error=request redirected10379Uploading artifacts as "junit" to coordinator... 201 Created id=2658553356 responseStatus=201 Created token=pKuw_zAY10381Job succeeded