rspec unit pg12 12/22
Passed Started
by
@jerasmus

Jacques Erasmus
1Running with gitlab-runner 14.10.0~beta.50.g1f2fe53e (1f2fe53e)2 on green-4.shared-gitlab-org.runners-manager.gitlab.com/default x5QiHUKw3 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.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:19789c9e83692f61ca3314294926bb26b68068f08aab1bd207915dcbd1a629c7 for postgres:12 with digest postgres@sha256:f2765d6a2a6459578274645b4d801345060322da2ba855af3d84878be28fe923 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:131bc9ee328cff6485bae97a15d5867539c2902681d2bb30ab20117132936344 for redis:6.0-alpine with digest redis@sha256:54cd3000b43117c720f7d1ae77692b798ad8b4d54e304dbd8e49e799e77494a1 ...13Waiting for services to be up and running...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.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...16Using docker image sha256:f5ccee577b270c6a832d9828384f62b437fcd3314314b5a98a5ab1cd248c3455 for registry.gitlab.com/gitlab-org/gitlab-build-images:debian-bullseye-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7291ca4981a34fb65e8293b932eab1b4a4949bffa86bf4427b9f12c73f3483b7 ...18Running on runner-x5qihukw-project-278964-concurrent-0 via runner-x5qihukw-shared-gitlab-org-1651131225-6bc43cf2...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: 103295, done. 25remote: Counting objects: 100% (103295/103295), done. 26remote: Compressing objects: 100% (73122/73122), done. 27remote: Total 103295 (delta 39893), reused 68736 (delta 26495), pack-reused 0 28Receiving objects: 100% (103295/103295), 104.30 MiB | 34.24 MiB/s, done.29Resolving deltas: 100% (39893/39893), done.31 * [new ref] refs/pipelines/526772223 -> refs/pipelines/52677222332 * [new branch] master -> origin/master33Checking out d5ce7ff4 as master...34Skipping Git submodules setup36Checking cache for ruby-gems-bullseye-9-protected...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-bullseye-9-protected 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-bullseye-9-protected...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-bullseye-9-protected 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2388875148)...44Downloading artifacts from coordinator... ok id=2388875148 responseStatus=200 OK token=Hwaf-unk45Downloading artifacts for detect-tests (2388875168)...46Downloading artifacts from coordinator... ok id=2388875168 responseStatus=200 OK token=C51XdtG347Downloading artifacts for retrieve-tests-metadata (2388875184)...48Downloading artifacts from coordinator... ok id=2388875184 responseStatus=200 OK token=DVXPaLbN49Downloading artifacts for setup-test-env (2388875163)...50Downloading artifacts from coordinator... ok id=2388875163 responseStatus=200 OK token=qLL8tAwL52Using docker image sha256:f5ccee577b270c6a832d9828384f62b437fcd3314314b5a98a5ab1cd248c3455 for registry.gitlab.com/gitlab-org/gitlab-build-images:debian-bullseye-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7291ca4981a34fb65e8293b932eab1b4a4949bffa86bf4427b9f12c73f3483b7 ...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.sh59Successfully installed bundler-2.3.6601 gem installed61Bundler version 2.3.662production:development63Settings are listed in order of priority. The top value will be used.64clean65Set for the current user (/root/.bundle/config): true66install_flags67Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"68path69Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor"70without71Set via BUNDLE_WITHOUT: [:production, :development]72$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check73Don't run Bundler as root. Bundler can ask for sudo if it is needed, and74installing your bundle as root will break this application for all non-root75users on this machine.76The Gemfile's dependencies are satisfied77==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 5 seconds.78$ bundle pristine pg79Installing pg 1.2.3 with native extensions80==> 'bundle pristine pg' succeeded in 10 seconds.81Using decomposed database config (config/database.yml.decomposed-postgresql)82$ setup_db_user_only83CREATE ROLE84GRANT85==> 'setup_db_user_only' succeeded in 0 seconds.86$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee87DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)88DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:NewHasVariable> at app/models/concerns/ci/new_has_variable.rb:9)89DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Kubernetes> at app/models/clusters/platforms/kubernetes.rb:29)90DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Kubernetes> at app/models/clusters/platforms/kubernetes.rb:34)91DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)92DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)93DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)94DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)95DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)96DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)97DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)98DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)99DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)100DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Integration> at app/models/integration.rb:52)101DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Helm> at app/models/clusters/applications/helm.rb:12)102DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Prometheus> at app/models/clusters/applications/prometheus.rb:23)103DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)104DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)105DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)106DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from connected? at ee/lib/gitlab/geo.rb:79)107Dropped database 'gitlabhq_test'108Dropped database 'gitlabhq_test_ci'109Dropped database 'gitlabhq_geo_test'110Created database 'gitlabhq_test'111Created database 'gitlabhq_test_ci'112Created database 'gitlabhq_geo_test'113DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23)114Dropped database 'gitlabhq_geo_test'115Created database 'gitlabhq_geo_test'116==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 33 seconds.117$ run_timed_command "gem install knapsack --no-document"118$ gem install knapsack --no-document119Successfully installed knapsack-4.0.01201 gem installed121==> 'gem install knapsack --no-document' succeeded in 1 seconds.122$ run_timed_command "scripts/gitaly-test-spawn"123$ scripts/gitaly-test-spawn124find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory125find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory126find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory127Don't run Bundler as root. Bundler can ask for sudo if it is needed, and128installing your bundle as root will break this application for all non-root129users on this machine.130Using abstract_type 0.0.7131Using concurrent-ruby 1.1.10132Using i18n 1.10.0133Using minitest 5.15.0134Using tzinfo 2.0.4135Using zeitwerk 2.5.4136Using activesupport 6.1.4.7137Using builder 3.2.4138Using erubi 1.10.0139Using mini_portile2 2.8.0140Using racc 1.6.0141Using nokogiri 1.13.3 (x86_64-linux)142Using rails-dom-testing 2.0.3143Using crass 1.0.6144Using loofah 2.16.0145Using rails-html-sanitizer 1.4.2146Using actionview 6.1.4.7147Using rack 2.2.3148Using rack-test 1.1.0149Using actionpack 6.1.4.7150Using ice_nine 0.11.2151Using thread_safe 0.3.6152Using memoizable 0.4.2153Using adamantium 0.2.0154Using public_suffix 4.0.6155Using addressable 2.7.0156Using ast 2.4.2157Using binding_ninja 0.2.3158Using bundler 2.1.4159Using charlock_holmes 0.7.7160Using coderay 1.1.2161Using equalizer 0.0.11162Using concord 0.1.5163Using diff-lcs 1.3164Using dotenv 2.7.6165Using escape_utils 1.2.1166Using factory_bot 5.0.2167Using multipart-post 2.1.1168Using faraday 1.0.1169Using ffi 1.15.3170Using json 2.6.1171Using gemojione 3.3.0172Using mini_mime 1.0.2173Using rugged 1.2.0174Using github-linguist 7.12.1175Using github-markup 1.7.0176Using mime-types-data 3.2020.1104177Using mime-types 3.3.1178Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1179Using rouge 3.27.0180Using sanitize 6.0.0181Using stringex 2.8.5182Using gitlab-gollum-lib 4.2.7.10.gitlab.2183Using google-protobuf 3.19.1 (x86_64-linux)184Using googleapis-common-protos-types 1.3.0185Using grpc 1.42.0 (x86_64-linux)186Using opentracing 0.5.0187Using thrift 0.15.0188Using jaeger-client 1.1.0189Using pg_query 2.1.1190Using redis 4.4.0191Using gitlab-labkit 0.21.2192Using rubyzip 2.3.2193Using thor 1.1.0194Using tomlrb 2.0.1195Using with_env 1.1.0196Using rexml 3.2.5197Using xml-simple 1.1.9198Using gitlab-license_finder 6.14.2.1199Using gitlab-markup 1.7.1200Using grpc-tools 1.42.0201Using sawyer 0.8.2202Using octokit 4.20.0203Using reverse_markdown 1.4.0204Using licensee 9.14.1205Using method_source 0.9.2206Using msgpack 1.3.3207Using optimist 3.0.1208Using parallel 1.19.2209Using parser 3.0.3.2210Using procto 0.0.3211Using unparser 0.4.7212Using proc_to_ast 0.1.0213Using pry 0.12.2214Using rainbow 3.0.0215Using rbtrace 0.4.14216Using rdoc 6.3.2217Using regexp_parser 1.8.1218Using rspec-support 3.8.0219Using rspec-core 3.8.0220Using rspec-expectations 3.8.3221Using rspec-mocks 3.8.0222Using rspec 3.8.0223Using rspec-parameterized 0.4.2224Using rubocop-ast 0.2.0225Using ruby-progressbar 1.10.1226Using unicode-display_width 1.7.0227Using rubocop 0.86.0228Using sentry-raven 3.0.4229Using timecop 0.9.1230Bundle complete! 22 Gemfile dependencies, 100 gems now installed.231Gems in the groups production and development were not installed.232Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`233Checking gitaly-ruby Gemfile...234Checking gitaly-ruby bundle...235The Gemfile's dependencies are satisfied236Trying to connect to gitaly: .................................................. OK237Trying to connect to gitaly2: ................................................................... OK238Trying to connect to praefect: ........ OK239==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds.240$ source ./scripts/rspec_helpers.sh241$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"242SKIP_FLAKY_TESTS_AUTOMATICALLY: true243RETRY_FAILED_TESTS_IN_NEW_PROCESS: true244KNAPSACK_GENERATE_REPORT: true245FLAKY_RSPEC_GENERATE_REPORT: true246KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,events,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,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,component}{,/**/}*_spec.rb247KNAPSACK_LOG_LEVEL: debug248KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_12_22_report.json249FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json250FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_12_22_report.json251NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_12_22_report.json252SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_12_22_report.txt253RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_12_22_report.txt254CRYSTALBALL: 255Knapsack node specs:256spec/models/merge_request_spec.rb257spec/models/environment_spec.rb258spec/lib/gitlab/auth_spec.rb259spec/services/ci/unlock_artifacts_service_spec.rb260spec/services/users/migrate_to_ghost_user_service_spec.rb261spec/services/projects/fork_service_spec.rb262spec/models/design_management/design_spec.rb263spec/models/integrations/slack_spec.rb264spec/policies/project_statistics_policy_spec.rb265spec/tooling/danger/project_helper_spec.rb266spec/helpers/integrations_helper_spec.rb267spec/services/boards/lists/move_service_spec.rb268spec/lib/gitlab/bare_repository_import/importer_spec.rb269spec/workers/emails_on_push_worker_spec.rb270spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb271spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb272spec/services/design_management/copy_design_collection/copy_service_spec.rb273spec/models/ci/bridge_spec.rb274spec/lib/banzai/reference_parser/base_parser_spec.rb275spec/services/ci/update_build_queue_service_spec.rb276spec/models/deploy_token_spec.rb277spec/lib/gitlab/pagination/offset_pagination_spec.rb278spec/finders/ci/runner_jobs_finder_spec.rb279spec/services/git/process_ref_changes_service_spec.rb280spec/models/push_event_spec.rb281spec/serializers/merge_request_poll_cached_widget_entity_spec.rb282spec/models/label_spec.rb283spec/lib/gitlab/ci/status/stage/factory_spec.rb284spec/models/concerns/routable_spec.rb285spec/lib/banzai/filter/references/project_reference_filter_spec.rb286spec/lib/gitlab/json_cache_spec.rb287spec/lib/gitlab/ci/templates/npm_spec.rb288spec/models/active_session_spec.rb289spec/services/metrics/dashboard/custom_dashboard_service_spec.rb290spec/lib/gitlab/auth/ldap/person_spec.rb291spec/finders/serverless_domain_finder_spec.rb292spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb293spec/models/onboarding_progress_spec.rb294spec/lib/gitlab/database/load_balancing/host_spec.rb295spec/graphql/mutations/merge_requests/set_assignees_spec.rb296spec/lib/gitlab/metrics/dashboard/processor_spec.rb297spec/models/ssh_host_key_spec.rb298spec/services/ci/stuck_builds/drop_scheduled_service_spec.rb299spec/finders/environments/environments_by_deployments_finder_spec.rb300spec/helpers/nav/top_nav_helper_spec.rb301spec/lib/gitlab/gitaly_client/operation_service_spec.rb302spec/models/merge_request_assignee_spec.rb303spec/services/packages/create_event_service_spec.rb304spec/models/clusters/kubernetes_namespace_spec.rb305spec/graphql/mutations/issues/create_spec.rb306spec/graphql/mutations/releases/create_spec.rb307spec/services/ci/runners/register_runner_service_spec.rb308spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb309spec/lib/extracts_path_spec.rb310spec/serializers/ci/lint/result_serializer_spec.rb311spec/services/pages/zip_directory_service_spec.rb312spec/workers/merge_worker_spec.rb313spec/finders/fork_targets_finder_spec.rb314spec/lib/gitlab/performance_bar_spec.rb315spec/lib/gitlab/exclusive_lease_spec.rb316spec/policies/board_policy_spec.rb317spec/services/metrics/dashboard/clone_dashboard_service_spec.rb318spec/lib/gitlab/suggestions/commit_message_spec.rb319spec/rubocop/cop/graphql/descriptions_spec.rb320spec/models/projects/topic_spec.rb321spec/views/projects/artifacts/_artifact.html.haml_spec.rb322spec/lib/error_tracking/sentry_client/issue_link_spec.rb323spec/services/ci/update_instance_variables_service_spec.rb324spec/workers/container_expiration_policy_worker_spec.rb325spec/services/files/create_service_spec.rb326spec/lib/gitlab/ci/status/stage/play_manual_spec.rb327spec/models/packages/go/module_version_spec.rb328spec/rubocop/todo_dir_spec.rb329spec/models/pages/lookup_path_spec.rb330spec/graphql/resolvers/board_resolver_spec.rb331spec/services/notification_recipients/builder/default_spec.rb332spec/services/projects/hashed_storage/migration_service_spec.rb333spec/graphql/resolvers/group_issues_resolver_spec.rb334spec/models/ci/deleted_object_spec.rb335spec/views/admin/dashboard/index.html.haml_spec.rb336spec/lib/gitlab/ci/pipeline/chain/limit/rate_limit_spec.rb337spec/models/experiment_subject_spec.rb338spec/services/integrations/propagate_service_spec.rb339spec/lib/gitlab/ci/status/external/common_spec.rb340spec/models/integrations/slack_slash_commands_spec.rb341spec/services/system_notes/incident_service_spec.rb342spec/finders/prometheus_metrics_finder_spec.rb343spec/helpers/issuables_description_templates_helper_spec.rb344spec/lib/gitlab/phabricator_import/conduit/response_spec.rb345spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb346spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb347spec/lib/gitlab/spamcheck/client_spec.rb348spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb349spec/lib/learn_gitlab/project_spec.rb350spec/workers/concerns/limited_capacity/worker_spec.rb351spec/services/projects/lfs_pointers/lfs_import_service_spec.rb352spec/workers/repository_update_remote_mirror_worker_spec.rb353spec/lib/gitlab/email/smime/signer_spec.rb354spec/finders/design_management/versions_finder_spec.rb355spec/presenters/packages/helm/index_presenter_spec.rb356spec/services/web_hooks/destroy_service_spec.rb357spec/lib/banzai/filter/spaced_link_filter_spec.rb358spec/lib/gitlab/issuable_metadata_spec.rb359spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb360spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb361spec/services/groups/deploy_tokens/create_service_spec.rb362spec/lib/gitlab/slash_commands/issue_new_spec.rb363spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb364spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb365spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb366spec/lib/gitlab/lets_encrypt/challenge_spec.rb367spec/workers/namespaces/process_sync_events_worker_spec.rb368spec/tooling/danger/feature_flag_spec.rb369spec/services/gpg_keys/destroy_service_spec.rb370spec/views/projects/commit/show.html.haml_spec.rb371spec/lib/gitlab/checks/diff_check_spec.rb372spec/policies/deploy_token_policy_spec.rb373spec/lib/gitlab/ci/config/entry/rules_spec.rb374spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb375spec/finders/autocomplete/project_finder_spec.rb376spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb377spec/lib/banzai/renderer_spec.rb378spec/lib/gitlab/import_export/shared_spec.rb379spec/tasks/gitlab/uploads/check_rake_spec.rb380spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb381spec/lib/gitlab/blame_spec.rb382spec/lib/gitlab/verify/lfs_objects_spec.rb383spec/graphql/resolvers/last_commit_resolver_spec.rb384spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb385spec/models/concerns/batch_destroy_dependent_associations_spec.rb386spec/lib/gitlab/pagination/keyset/pager_spec.rb387spec/finders/uploader_finder_spec.rb388spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb389spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb390spec/workers/delete_container_repository_worker_spec.rb391spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb392spec/lib/system_check/orphans/repository_check_spec.rb393spec/models/project_repository_spec.rb394spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb395spec/models/integrations/flowdock_spec.rb396spec/lib/gitlab/external_authorization/response_spec.rb397spec/policies/ci/bridge_policy_spec.rb398spec/views/shared/snippets/_snippet.html.haml_spec.rb399spec/services/clusters/integrations/create_service_spec.rb400spec/models/cycle_analytics/project_level_stage_adapter_spec.rb401spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb402spec/graphql/mutations/container_repositories/destroy_spec.rb403spec/graphql/mutations/design_management/move_spec.rb404spec/lib/gitlab/import_export/saver_spec.rb405spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb406spec/services/users/last_push_event_service_spec.rb407spec/models/wiki_directory_spec.rb408spec/graphql/types/incident_management/escalation_status_enum_spec.rb409spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb410spec/models/concerns/integrations/enable_ssl_verification_spec.rb411spec/serializers/diff_file_metadata_entity_spec.rb412spec/lib/gitlab/config/entry/boolean_spec.rb413spec/lib/gitlab/checks/push_file_count_check_spec.rb414spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb415spec/services/clusters/agents/create_activity_event_service_spec.rb416spec/lib/gitlab/hook_data/project_builder_spec.rb417spec/services/packages/composer/composer_json_service_spec.rb418spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb419spec/lib/gitlab/saas_spec.rb420spec/workers/releases/manage_evidence_worker_spec.rb421spec/services/notes/render_service_spec.rb422spec/graphql/types/packages/conan/file_metadatum_type_spec.rb423spec/graphql/mutations/ci/runner/update_spec.rb424spec/graphql/resolvers/tree_resolver_spec.rb425spec/lib/gitlab/private_commit_email_spec.rb426spec/validators/cron_validator_spec.rb427spec/lib/error_tracking/sentry_client/event_spec.rb428spec/services/clusters/aws/verify_provision_status_service_spec.rb429spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb430spec/lib/gitlab/ci/status/success_warning_spec.rb431spec/lib/gitlab/import_export/json/legacy_reader/file_spec.rb432spec/graphql/resolvers/project_resolver_spec.rb433spec/models/concerns/blocks_unsafe_serialization_spec.rb434spec/models/integrations/asana_spec.rb435spec/support_specs/database/prevent_cross_joins_spec.rb436spec/views/notify/push_to_merge_request_email.text.haml_spec.rb437spec/lib/gitlab/word_diff/segments/chunk_spec.rb438spec/lib/gitlab/insecure_key_fingerprint_spec.rb439spec/support_specs/database/multiple_databases_spec.rb440spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb441spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb442spec/initializers/carrierwave_patch_spec.rb443spec/graphql/mutations/boards/update_spec.rb444spec/lib/gitlab/auth/atlassian/user_spec.rb445spec/lib/gitlab/ci/build/status/reason_spec.rb446spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb447spec/lib/gitlab/git/pre_receive_error_spec.rb448spec/lib/gitlab/git/base_error_spec.rb449spec/services/ci/build_unschedule_service_spec.rb450spec/lib/safe_zip/extract_spec.rb451spec/workers/build_queue_worker_spec.rb452spec/workers/user_status_cleanup/batch_worker_spec.rb453spec/serializers/feature_flag_entity_spec.rb454spec/lib/gitlab/usage_data_counters/track_unique_events_spec.rb455spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb456spec/rubocop/cop/code_reuse/worker_spec.rb457spec/lib/gitlab/sidekiq_middleware/size_limiter/client_spec.rb458spec/presenters/dev_ops_report/metric_presenter_spec.rb459spec/workers/disallow_two_factor_for_group_worker_spec.rb460spec/services/packages/debian/find_or_create_incoming_service_spec.rb461spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb462spec/lib/gitlab/ci/build/cache_spec.rb463spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb464spec/models/concerns/uniquify_spec.rb465spec/views/groups/group_members/index.html.haml_spec.rb466spec/lib/gitlab/utils/log_limited_array_spec.rb467spec/lib/sidebars/projects/menus/repository_menu_spec.rb468spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb469spec/lib/banzai/filter/footnote_filter_spec.rb470spec/lib/banzai/filter/image_lazy_load_filter_spec.rb471spec/serializers/project_import_entity_spec.rb472spec/services/captcha/captcha_verification_service_spec.rb473spec/workers/repository_check/clear_worker_spec.rb474spec/lib/gitlab/import_formatter_spec.rb475spec/lib/bulk_imports/pipeline/extracted_data_spec.rb476spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb477spec/helpers/projects/pipeline_helper_spec.rb478spec/rubocop/cop/gitlab/httparty_spec.rb479spec/rubocop/cop/qa/ambiguous_page_object_name_spec.rb480spec/serializers/analytics_build_serializer_spec.rb481spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb482spec/rubocop/cop/project_path_helper_spec.rb483spec/workers/database/partition_management_worker_spec.rb484spec/rubocop/cop/code_reuse/finder_spec.rb485spec/rubocop/qa_helpers_spec.rb486spec/graphql/types/issuable_severity_enum_spec.rb487spec/workers/file_hook_worker_spec.rb488spec/services/ci/change_variables_service_spec.rb489spec/graphql/types/jira_import_type_spec.rb490spec/graphql/types/packages/helm/file_metadatum_type_spec.rb491spec/lib/gitlab/ci/config/yaml/tags/resolver_spec.rb492spec/lib/gitlab/patch/database_config_spec.rb493spec/workers/namespaces/onboarding_user_added_worker_spec.rb494spec/graphql/types/availability_enum_spec.rb495spec/graphql/types/snippets/blob_action_enum_spec.rb496spec/tooling/docs/deprecation_handling_spec.rb497spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb498spec/graphql/types/blob_viewer_type_spec.rb499spec/lib/gitlab/ci/parsers/coverage/cobertura_spec.rb500spec/routing/projects/security/configuration_controller_routing_spec.rb501spec/lib/gitlab/patch/action_cable_redis_listener_spec.rb502spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb503spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb504spec/graphql/types/permission_types/issue_spec.rb505spec/serializers/fork_namespace_serializer_spec.rb506spec/tooling/lib/tooling/crystalball/coverage_lines_strategy_spec.rb507spec/initializers/remove_active_job_execute_callback_spec.rb508spec/graphql/types/dependency_proxy/group_setting_type_spec.rb509Filter specs:510Running specs:511Running all node tests without filter512spec/models/merge_request_spec.rb513spec/models/environment_spec.rb514spec/lib/gitlab/auth_spec.rb515spec/services/ci/unlock_artifacts_service_spec.rb516spec/services/users/migrate_to_ghost_user_service_spec.rb517spec/services/projects/fork_service_spec.rb518spec/models/design_management/design_spec.rb519spec/models/integrations/slack_spec.rb520spec/policies/project_statistics_policy_spec.rb521spec/tooling/danger/project_helper_spec.rb522spec/helpers/integrations_helper_spec.rb523spec/services/boards/lists/move_service_spec.rb524spec/lib/gitlab/bare_repository_import/importer_spec.rb525spec/workers/emails_on_push_worker_spec.rb526spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb527spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb528spec/services/design_management/copy_design_collection/copy_service_spec.rb529spec/models/ci/bridge_spec.rb530spec/lib/banzai/reference_parser/base_parser_spec.rb531spec/services/ci/update_build_queue_service_spec.rb532spec/models/deploy_token_spec.rb533spec/lib/gitlab/pagination/offset_pagination_spec.rb534spec/finders/ci/runner_jobs_finder_spec.rb535spec/services/git/process_ref_changes_service_spec.rb536spec/models/push_event_spec.rb537spec/serializers/merge_request_poll_cached_widget_entity_spec.rb538spec/models/label_spec.rb539spec/lib/gitlab/ci/status/stage/factory_spec.rb540spec/models/concerns/routable_spec.rb541spec/lib/banzai/filter/references/project_reference_filter_spec.rb542spec/lib/gitlab/json_cache_spec.rb543spec/lib/gitlab/ci/templates/npm_spec.rb544spec/models/active_session_spec.rb545spec/services/metrics/dashboard/custom_dashboard_service_spec.rb546spec/lib/gitlab/auth/ldap/person_spec.rb547spec/finders/serverless_domain_finder_spec.rb548spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb549spec/models/onboarding_progress_spec.rb550spec/lib/gitlab/database/load_balancing/host_spec.rb551spec/graphql/mutations/merge_requests/set_assignees_spec.rb552spec/lib/gitlab/metrics/dashboard/processor_spec.rb553spec/models/ssh_host_key_spec.rb554spec/services/ci/stuck_builds/drop_scheduled_service_spec.rb555spec/finders/environments/environments_by_deployments_finder_spec.rb556spec/helpers/nav/top_nav_helper_spec.rb557spec/lib/gitlab/gitaly_client/operation_service_spec.rb558spec/models/merge_request_assignee_spec.rb559spec/services/packages/create_event_service_spec.rb560spec/models/clusters/kubernetes_namespace_spec.rb561spec/graphql/mutations/issues/create_spec.rb562spec/graphql/mutations/releases/create_spec.rb563spec/services/ci/runners/register_runner_service_spec.rb564spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb565spec/lib/extracts_path_spec.rb566spec/serializers/ci/lint/result_serializer_spec.rb567spec/services/pages/zip_directory_service_spec.rb568spec/workers/merge_worker_spec.rb569spec/finders/fork_targets_finder_spec.rb570spec/lib/gitlab/performance_bar_spec.rb571spec/lib/gitlab/exclusive_lease_spec.rb572spec/policies/board_policy_spec.rb573spec/services/metrics/dashboard/clone_dashboard_service_spec.rb574spec/lib/gitlab/suggestions/commit_message_spec.rb575spec/rubocop/cop/graphql/descriptions_spec.rb576spec/models/projects/topic_spec.rb577spec/views/projects/artifacts/_artifact.html.haml_spec.rb578spec/lib/error_tracking/sentry_client/issue_link_spec.rb579spec/services/ci/update_instance_variables_service_spec.rb580spec/workers/container_expiration_policy_worker_spec.rb581spec/services/files/create_service_spec.rb582spec/lib/gitlab/ci/status/stage/play_manual_spec.rb583spec/models/packages/go/module_version_spec.rb584spec/rubocop/todo_dir_spec.rb585spec/models/pages/lookup_path_spec.rb586spec/graphql/resolvers/board_resolver_spec.rb587spec/services/notification_recipients/builder/default_spec.rb588spec/services/projects/hashed_storage/migration_service_spec.rb589spec/graphql/resolvers/group_issues_resolver_spec.rb590spec/models/ci/deleted_object_spec.rb591spec/views/admin/dashboard/index.html.haml_spec.rb592spec/lib/gitlab/ci/pipeline/chain/limit/rate_limit_spec.rb593spec/models/experiment_subject_spec.rb594spec/services/integrations/propagate_service_spec.rb595spec/lib/gitlab/ci/status/external/common_spec.rb596spec/models/integrations/slack_slash_commands_spec.rb597spec/services/system_notes/incident_service_spec.rb598spec/finders/prometheus_metrics_finder_spec.rb599spec/helpers/issuables_description_templates_helper_spec.rb600spec/lib/gitlab/phabricator_import/conduit/response_spec.rb601spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb602spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb603spec/lib/gitlab/spamcheck/client_spec.rb604spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb605spec/lib/learn_gitlab/project_spec.rb606spec/workers/concerns/limited_capacity/worker_spec.rb607spec/services/projects/lfs_pointers/lfs_import_service_spec.rb608spec/workers/repository_update_remote_mirror_worker_spec.rb609spec/lib/gitlab/email/smime/signer_spec.rb610spec/finders/design_management/versions_finder_spec.rb611spec/presenters/packages/helm/index_presenter_spec.rb612spec/services/web_hooks/destroy_service_spec.rb613spec/lib/banzai/filter/spaced_link_filter_spec.rb614spec/lib/gitlab/issuable_metadata_spec.rb615spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb616spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb617spec/services/groups/deploy_tokens/create_service_spec.rb618spec/lib/gitlab/slash_commands/issue_new_spec.rb619spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb620spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb621spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb622spec/lib/gitlab/lets_encrypt/challenge_spec.rb623spec/workers/namespaces/process_sync_events_worker_spec.rb624spec/tooling/danger/feature_flag_spec.rb625spec/services/gpg_keys/destroy_service_spec.rb626spec/views/projects/commit/show.html.haml_spec.rb627spec/lib/gitlab/checks/diff_check_spec.rb628spec/policies/deploy_token_policy_spec.rb629spec/lib/gitlab/ci/config/entry/rules_spec.rb630spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb631spec/finders/autocomplete/project_finder_spec.rb632spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb633spec/lib/banzai/renderer_spec.rb634spec/lib/gitlab/import_export/shared_spec.rb635spec/tasks/gitlab/uploads/check_rake_spec.rb636spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb637spec/lib/gitlab/blame_spec.rb638spec/lib/gitlab/verify/lfs_objects_spec.rb639spec/graphql/resolvers/last_commit_resolver_spec.rb640spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb641spec/models/concerns/batch_destroy_dependent_associations_spec.rb642spec/lib/gitlab/pagination/keyset/pager_spec.rb643spec/finders/uploader_finder_spec.rb644spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb645spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb646spec/workers/delete_container_repository_worker_spec.rb647spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb648spec/lib/system_check/orphans/repository_check_spec.rb649spec/models/project_repository_spec.rb650spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb651spec/models/integrations/flowdock_spec.rb652spec/lib/gitlab/external_authorization/response_spec.rb653spec/policies/ci/bridge_policy_spec.rb654spec/views/shared/snippets/_snippet.html.haml_spec.rb655spec/services/clusters/integrations/create_service_spec.rb656spec/models/cycle_analytics/project_level_stage_adapter_spec.rb657spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb658spec/graphql/mutations/container_repositories/destroy_spec.rb659spec/graphql/mutations/design_management/move_spec.rb660spec/lib/gitlab/import_export/saver_spec.rb661spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb662spec/services/users/last_push_event_service_spec.rb663spec/models/wiki_directory_spec.rb664spec/graphql/types/incident_management/escalation_status_enum_spec.rb665spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb666spec/models/concerns/integrations/enable_ssl_verification_spec.rb667spec/serializers/diff_file_metadata_entity_spec.rb668spec/lib/gitlab/config/entry/boolean_spec.rb669spec/lib/gitlab/checks/push_file_count_check_spec.rb670spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb671spec/services/clusters/agents/create_activity_event_service_spec.rb672spec/lib/gitlab/hook_data/project_builder_spec.rb673spec/services/packages/composer/composer_json_service_spec.rb674spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb675spec/lib/gitlab/saas_spec.rb676spec/workers/releases/manage_evidence_worker_spec.rb677spec/services/notes/render_service_spec.rb678spec/graphql/types/packages/conan/file_metadatum_type_spec.rb679spec/graphql/mutations/ci/runner/update_spec.rb680spec/graphql/resolvers/tree_resolver_spec.rb681spec/lib/gitlab/private_commit_email_spec.rb682spec/validators/cron_validator_spec.rb683spec/lib/error_tracking/sentry_client/event_spec.rb684spec/services/clusters/aws/verify_provision_status_service_spec.rb685spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb686spec/lib/gitlab/ci/status/success_warning_spec.rb687spec/lib/gitlab/import_export/json/legacy_reader/file_spec.rb688spec/graphql/resolvers/project_resolver_spec.rb689spec/models/concerns/blocks_unsafe_serialization_spec.rb690spec/models/integrations/asana_spec.rb691spec/support_specs/database/prevent_cross_joins_spec.rb692spec/views/notify/push_to_merge_request_email.text.haml_spec.rb693spec/lib/gitlab/word_diff/segments/chunk_spec.rb694spec/lib/gitlab/insecure_key_fingerprint_spec.rb695spec/support_specs/database/multiple_databases_spec.rb696spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb697spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb698spec/initializers/carrierwave_patch_spec.rb699spec/graphql/mutations/boards/update_spec.rb700spec/lib/gitlab/auth/atlassian/user_spec.rb701spec/lib/gitlab/ci/build/status/reason_spec.rb702spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb703spec/lib/gitlab/git/pre_receive_error_spec.rb704spec/lib/gitlab/git/base_error_spec.rb705spec/services/ci/build_unschedule_service_spec.rb706spec/lib/safe_zip/extract_spec.rb707spec/workers/build_queue_worker_spec.rb708spec/workers/user_status_cleanup/batch_worker_spec.rb709spec/serializers/feature_flag_entity_spec.rb710spec/lib/gitlab/usage_data_counters/track_unique_events_spec.rb711spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb712spec/rubocop/cop/code_reuse/worker_spec.rb713spec/lib/gitlab/sidekiq_middleware/size_limiter/client_spec.rb714spec/presenters/dev_ops_report/metric_presenter_spec.rb715spec/workers/disallow_two_factor_for_group_worker_spec.rb716spec/services/packages/debian/find_or_create_incoming_service_spec.rb717spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb718spec/lib/gitlab/ci/build/cache_spec.rb719spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb720spec/models/concerns/uniquify_spec.rb721spec/views/groups/group_members/index.html.haml_spec.rb722spec/lib/gitlab/utils/log_limited_array_spec.rb723spec/lib/sidebars/projects/menus/repository_menu_spec.rb724spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb725spec/lib/banzai/filter/footnote_filter_spec.rb726spec/lib/banzai/filter/image_lazy_load_filter_spec.rb727spec/serializers/project_import_entity_spec.rb728spec/services/captcha/captcha_verification_service_spec.rb729spec/workers/repository_check/clear_worker_spec.rb730spec/lib/gitlab/import_formatter_spec.rb731spec/lib/bulk_imports/pipeline/extracted_data_spec.rbKnapsack report generator started!732DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from connected? at ee/lib/gitlab/geo.rb:79)733DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)734DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)735Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}736==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.039687387 seconds...737Test environment set up in 0.6414636 seconds738MergeRequest739 associations740 is expected to belong to target_project class_name => Project required: false741 is expected to belong to source_project class_name => Project required: false742 is expected to belong to merge_user class_name => User required: false743 is expected to have many assignees through merge_request_assignees744 is expected to have many reviewers through merge_request_reviewers745 is expected to have many merge_request_diffs746 is expected to have many user_mentions class_name => MergeRequestUserMention747 is expected to belong to milestone required: false748 is expected to belong to iteration required: false749 is expected to have many resource_milestone_events750 is expected to have many resource_state_events751 is expected to have many draft_notes752 is expected to have many reviews inverse_of => merge_request753 is expected to have one cleanup_schedule inverse_of => merge_request754 for forks755 does not load another project due to inverse relationship756 finds the associated merge request757 .from_and_to_forks758 returns only MRs from and to forks (with no internal MRs)759 .order_merged_at_asc760 returns MRs ordered by merged_at ascending761 .order_merged_at_desc762 returns MRs ordered by merged_at descending763 .order_closed_at_asc764 returns MRs ordered by closed_at ascending765 .order_closed_at_desc766 returns MRs ordered by closed_at descending767 .with_jira_issue_keys768 is expected to contain exactly #<MergeRequest id:15 namespace1/project1!1> and #<MergeRequest id:16 namespace1/project1!2>769 is expected not to include #<MergeRequest id:17 namespace1/project1!3>770 scopes771 .review_requested772 returns MRs that have any review requests773 .no_review_requested774 returns MRs that have no review requests775 .review_requested_to776 returns MRs that the user has been requested to review777 .no_review_requested_to778 returns MRs that the user has not been requested to review779 .attention780 returns MRs that have any attention requests781 .drafts782 returns MRs where draft == true783 #squash?784 disabled in database785 is expected to be falsy786 enabled in database787 is expected to be truthy788 #default_squash_commit_message789 returns the merge request title790 uses template from target project791 modules792 is expected to includes the Issuable module793 is expected to includes the Referable module794 is expected to includes the Sortable module795 is expected to includes the Taskable module796 is expected to includes the MilestoneEventable module797 is expected to includes the StateEventable module798 behaves like AtomicInternalId799 .has_internal_id800 Module inclusion801 is expected to includes the AtomicInternalId module802 Validation803 when presence validation is required804 when creating an object805 raises an error if the internal id is blank806 when updating an object807 raises an error if the internal id is blank808 when presence validation is not required809 when creating an object810 does not raise an error if the internal id is blank (PENDING: No reason given)811 when updating an object812 does not raise an error if the internal id is blank (PENDING: No reason given)813 Creating an instance814 saves a new instance properly815 internal id generation816 calls InternalId.generate_next and sets internal id attribute817 does not overwrite an existing internal id818 when the instance has an internal ID set819 calls InternalId.update_last_value and sets the `last_value` to that of the instance820 unsetting the instance internal id on rollback821 when the internal id has been changed822 when the internal id is automatically set823 clears it on the instance824 when the internal id is manually set825 does not clear it on the instance826 when the internal id has not been changed827 preserves the value on the instance828 supply of internal ids829 provides a persistent supply of IID values, sensitive to the current state830 #reset_scope_internal_id_attribute831 rewinds the allocated IID832 allocates the same IID833 validation834 is expected to validate that :target_branch cannot be empty/falsy835 is expected to validate that :source_branch cannot be empty/falsy836 Validation of merge user with Merge When Pipeline Succeeds837 allows user to be nil when the feature is disabled838 is invalid without merge user839 is valid with merge user840 for branch841 branch_name: "foo", valid: true842 validates source_branch843 validates target_branch844 branch_name: "foo:bar", valid: false845 validates source_branch846 validates target_branch847 branch_name: "+foo:bar", valid: false848 validates source_branch849 validates target_branch850 branch_name: "foo bar", valid: false851 validates source_branch852 validates target_branch853 branch_name: "-foo", valid: false854 validates source_branch855 validates target_branch856 branch_name: "HEAD", valid: true857 validates source_branch858 validates target_branch859 branch_name: "refs/heads/master", valid: true860 validates source_branch861 validates target_branch862 for forks863 allows merge requests for sibling-forks864 callbacks865 #ensure_merge_request_metrics866 creates metrics after saving867 does not duplicate metrics for a merge request868 does not create duplicated metrics records when MR is concurrently updated869 syncs the `target_project_id` to the metrics record870 #set_draft_status871 MR is a draft872 sets draft to true873 MR is not a draft874 sets draft to true875 respond to876 is expected to respond to #unchecked?877 is expected to respond to #checking?878 is expected to respond to #can_be_merged?879 is expected to respond to #cannot_be_merged?880 is expected to respond to #merge_params881 is expected to respond to #merge_when_pipeline_succeeds882 .by_commit_sha883 with sha contained in latest merge request diff884 returns merge requests885 with sha contained not in latest merge request diff886 returns empty requests887 with sha not contained in888 returns empty result889 .by_merge_commit_sha890 returns merge requests that match the given merge commit891 .by_squash_commit_sha892 returns merge requests that match the given squash commit893 .by_merge_or_squash_commit_sha894 returns merge requests that match the given squash and merge commits895 .join_metrics896 when a no target_project_id is available897 moves target_project_id condition to the merge request metrics898 when a target_project_id is present in the where conditions899 moves target_project_id condition to the merge request metrics900 .by_related_commit_sha901 when commit is a squash commit902 is expected to eq [#<MergeRequest id:48 namespace1/project1!1>]903 when commit is a part of the merge request904 is expected to eq [#<MergeRequest id:49 namespace1/project1!1>]905 when commit is a merge commit906 is expected to eq [#<MergeRequest id:50 namespace1/project1!1>]907 when commit is not found908 is expected to be empty909 when commit is part of the merge request and a squash commit at the same time910 is expected to eq [#<MergeRequest id:51 namespace1/project1!1>]911 .in_projects912 returns the merge requests for a set of projects913 .set_latest_merge_request_diff_ids!914 sets IDs for merge requests, whether they are already set or not915 .recent_target_branches916 returns target branches sort by updated at desc917 .sort_by_attribute918 merged_at919 sorts asc920 sorts desc921 closed_at922 sorts asc923 sorts desc924 sorts asc when its closed_at925 title926 sorts asc927 sorts desc928 time to merge calculations929 .total_time_to_merge930 returns the sum of the time to merge for all merged MRs931 when merged_at is earlier than created_at932 returns nil933 #target_branch_sha934 returns memoized value935 when the target branch does not exist936 returns nil937 #card_attributes938 includes the author name939 includes the assignees name940 #assignee_or_author?941 returns true for a user that is assigned to a merge request942 returns true for a user that is the author of a merge request943 returns false for a user that is not the assignee or author944 #visible_closing_issues_for945 shows only allowed issues to guest946 shows only allowed issues to developer947 when external issue tracker is enabled948 calls non #closes_issues to retrieve data949 #cache_merge_request_closes_issues!950 caches closed issues951 does not cache closed issues when merge request is closed952 does not cache closed issues when merge request is merged953 when both internal and external issue trackers are enabled954 does not cache issues from external trackers955 caches an internal issue956 when only external issue tracker enabled957 does not cache issues from external trackers958 does not cache an internal issue959 #source_branch_sha960 returns memoized value961 with diffs962 returns the sha of the source branch last commit963 without diffs964 returns the sha of the source branch last commit965 when there is a tag name matching the branch name966 returns the sha of the source branch last commit967 when the merge request is being created968 returns nil969 #to_reference970 returns a String reference to the object971 supports a cross-project reference972 returns a String reference with the full path973 #raw_diffs974 when there are MR diffs975 delegates to the MR diffs976 when there are no MR diffs977 delegates to the compare object978 #diffs979 when there are MR diffs980 delegates to the MR diffs981 when there are no MR diffs982 delegates to the compare object, setting expanded: true983 #note_positions_for_paths984 returns a Gitlab::Diff::PositionCollection985 within all diff files986 returns correct positions987 within specific diff file988 returns correct positions989 within no diff files990 returns no positions991 when user is given992 returns notes and draft notes positions993 when user is not given994 returns notes positions995 #discussions_diffs996 with commit diff note997 behaves like discussions diffs collection998 initializes Gitlab::DiscussionsDiff::FileCollection with correct data999 eager loads relations1000 with merge request diff note1001 behaves like discussions diffs collection1002 initializes Gitlab::DiscussionsDiff::FileCollection with correct data1003 eager loads relations1004 #diff_size1005 when there are MR diffs1006 returns the correct count1007 returns the correct overflow count1008 does not perform highlighting1009 when there are no MR diffs1010 returns the correct count1011 returns the correct overflow count1012 does not perform highlighting1013 #modified_paths1014 when past_merge_request_diff is specified1015 returns affected file paths from specified past_merge_request_diff1016 when compare is present1017 and diff_stats are not present1018 returns affected file paths from compare1019 and diff_stats are present1020 returns affected file paths from compare1021 when no arguments provided1022 returns affected file paths for merge_request_diff1023 #new_paths1024 returns new path of changed files1025 #related_notes1026 includes notes for commits1027 includes notes for commits from target project as well1028 excludes system notes for commits1029 #for_fork?1030 returns true if the merge request is for a fork1031 returns false if is not for a fork1032 #closes_issues1033 accesses the set of issues that will be closed on acceptance1034 only lists issues as to be closed if it targets the default branch1035 ignores referenced issues when auto-close is disabled1036 #issues_mentioned_but_not_closing1037 detects issues mentioned in description but not closed1038 when the project has an external issue tracker1039 detects issues mentioned in description but not closed1040 #work_in_progress?1041 detects the 'draft:' prefix1042 detects the 'Draft: ' prefix1043 detects the '[Draft]' prefix1044 detects the '[DRAFT] ' prefix1045 doesn't detect 'WIP:' at the start of the title as a draft1046 doesn't detect 'WIP: ' at the start of the title as a draft1047 doesn't detect '[WIP]' at the start of the title as a draft1048 doesn't detect '[WIP] ' at the start of the title as a draft1049 doesn't detect ' [WIP] WIP: [WIP] WIP:' at the start of the title as a draft1050 doesn't detect 'WIP ' at the start of the title as a draft1051 doesn't detect '(WIP)' at the start of the title as a draft1052 doesn't detect 'draft' at the start of the title as a draft1053 doesn't detect 'Draft' at the start of the title as a draft1054 doesn't detect 'Draft -' at the start of the title as a draft1055 doesn't detect 'draft - ' at the start of the title as a draft1056 doesn't detect 'Draft ' at the start of the title as a draft1057 doesn't detect 'draft ' at the start of the title as a draft1058 doesn't detect merge request title just saying 'wip'1059 does not detect merge request title just saying 'draft'1060 does not detect WIP in the middle of the title1061 does not detect Draft in the middle of the title1062 does not detect Draft: in the middle of the title1063 does not detect WIP at the end of the title1064 does not detect Draft at the end of the title1065 doesn't detect WIP for words starting with WIP1066 doesn't detect WIP for words containing with WIP1067 doesn't detect draft for words containing with draft1068 doesn't detect WIP by default1069 is aliased to #draft?1070 #wipless_title1071 removes a 'draft:' prefix1072 is satisfies the #work_in_progress? method1073 removes a 'Draft: ' prefix1074 is satisfies the #work_in_progress? method1075 removes a '[Draft]' prefix1076 is satisfies the #work_in_progress? method1077 removes a '[DRAFT] ' prefix1078 is satisfies the #work_in_progress? method1079 doesn't remove a 'WIP:' prefix1080 doesn't remove a 'WIP: ' prefix1081 doesn't remove a '[WIP]' prefix1082 doesn't remove a '[WIP] ' prefix1083 doesn't remove a '[WIP] WIP: [WIP] WIP:' prefix1084 removes only draft prefix from the MR title1085 does not remove WIP in the middle of the title1086 does not remove Draft in the middle of the title1087 does not remove WIP at the end of the title1088 does not remove Draft at the end of the title1089 #wip_title1090 adds the Draft: prefix to the title1091 does not add the Draft: prefix multiple times1092 is satisfies the #work_in_progress? method1093 #permits_force_push?1094 when source branch is not protected1095 is expected to be truthy1096 when source branch is protected1097 when force push is not allowed1098 is expected to be falsey1099 when force push is allowed1100 is expected to be truthy1101 #can_remove_source_branch?1102 can't be removed when its a protected branch1103 can't be removed because source project has been deleted1104 can't remove a root ref1105 is unable to remove the source branch for a project the user cannot push to1106 can be removed if the last commit is the head of the source branch1107 cannot be removed if the last commit is not also the head of the source branch1108 #source_branch_exists?1109 when the source project is set1110 returns true when the branch exists1111 when the source project is not set1112 returns false1113 #default_merge_commit_message1114 includes merge information as the title1115 includes its title in the body1116 includes its closed issues in the body1117 includes its reference in the body1118 excludes multiple linebreak runs when description is blank1119 includes its description in the body1120 does not includes its description in the body1121 uses template from target project1122 ignores template when include_description is true1123 #auto_merge_strategy1124 is expected to eq "merge_when_pipeline_succeeds"1125 when auto merge is disabled1126 is expected to be nil1127 #committers1128 returns all the committers of every commit in the merge request1129 returns an empty array if no committer is associated with a user1130 #diverged_commits_count1131 when the target branch does not exist anymore1132 does not crash1133 returns 01134 diverged on same repository1135 counts commits that are on target branch but not on source branch1136 diverged on fork1137 counts commits that are on target branch but not on source branch1138 rebased on fork1139 counts commits that are on target branch but not on source branch1140 caching1141 caches the output1142 invalidates the cache when the source sha changes1143 invalidates the cache when the target sha changes1144 behaves like an editable mentionable1145 creates new cross-reference notes when the mentionable text is edited1146 behaves like a mentionable1147 generates a descriptive back-reference1148 extracts references from its reference property1149 creates cross-reference notes1150 when there are cached markdown fields1151 sends in cached markdown fields when appropriate1152 when there are cached markdown fields1153 refreshes markdown cache if necessary1154 when the markdown cache is stale1155 persists the refreshed cache so that it does not have to be refreshed every time1156 behaves like a Taskable1157 with multiple tasks1158 returns the correct task status1159 #tasks?1160 returns true when object has tasks1161 returns false when object has no tasks1162 with nested tasks1163 returns the correct task status1164 with an incomplete task1165 returns the correct task status1166 with tasks that are not formatted correctly1167 returns the correct task status1168 with a complete task1169 returns the correct task status1170 with tasks in blockquotes1171 returns the correct task status1172 #commit_shas1173 persisted merge request1174 with a limit1175 returns a limited number of commit shas1176 without a limit1177 returns all commit shas of the merge request diff1178 new merge request1179 returns diff_head_sha as an array1180 compare commits1181 without a limit1182 returns all shas of compare commits1183 with a limit1184 returns a limited number of shas1185 head pipeline1186 #head_pipeline1187 returns nil for MR without head_pipeline_id1188 when the source project does not exist1189 returns nil1190 #actual_head_pipeline1191 returns nil for MR with old pipeline1192 returns the pipeline for MR with recent pipeline1193 returns the pipeline for MR with recent merge request pipeline1194 returns nil when source project does not exist1195 #merge_pipeline1196 returns nil when not merged1197 when the MR is merged1198 and there is a merge commit1199 returns the pipeline associated with that merge request1200 and there is no merge commit, but there is a diff head1201 returns the pipeline associated with that merge request1202 and there is no merge commit, but there is a squash commit1203 returns the pipeline associated with that merge request1204 #has_ci?1205 has ci1206 returns true if MR has head_pipeline_id and commits1207 returns true if MR has any pipeline and commits1208 returns true if MR has CI integration and commits1209 has no ci1210 returns false if MR has no CI integration nor pipeline, and no commits1211 #update_head_pipeline1212 when there is a pipeline with the diff head sha1213 updates the head pipeline1214 when merge request has already had head pipeline1215 when failed to find an actual head pipeline1216 does not update the current head pipeline1217 when detached merge request pipeline is run on head ref of the merge request1218 sets the head ref of the merge request to the pipeline ref1219 updates correctly even though the target branch name of the merge request is different from the pipeline ref1220 when sha is not HEAD of the source branch1221 does not update head pipeline1222 when there are no pipelines with the diff head sha1223 does not update the head pipeline1224 #has_test_reports?1225 when head pipeline has test reports1226 is expected to be truthy1227 when head pipeline does not have test reports1228 is expected to be falsey1229 #has_accessibility_reports?1230 when head pipeline has an accessibility reports1231 is expected to be truthy1232 when head pipeline does not have accessibility reports1233 is expected to be falsey1234 #has_coverage_reports?1235 when head pipeline has coverage reports1236 is expected to be truthy1237 when head pipeline does not have coverage reports1238 is expected to be falsey1239 #has_codequality_mr_diff_report?1240 when head pipeline has codequality mr diff report1241 is expected to be truthy1242 when head pipeline does not have codeqquality mr diff report1243 is expected to be falsey1244 #has_codequality_reports?1245 when head pipeline has a codequality report1246 is expected to be truthy1247 when head pipeline does not have a codequality report1248 is expected to be falsey1249 #has_terraform_reports?1250 when head pipeline has terraform reports1251 returns true1252 when head pipeline does not have terraform reports1253 returns false1254 #has_sast_reports?1255 when head pipeline has sast reports1256 is expected to be truthy1257 when head pipeline does not have sast reports1258 is expected to be falsey1259 #has_secret_detection_reports?1260 when head pipeline has secret detection reports1261 is expected to be truthy1262 when head pipeline does not have secrets detection reports1263 is expected to be falsey1264 #calculate_reactive_cache1265 when given an unknown service class name1266 raises a NameError exception1267 when given a known service class name1268 does not raises a NameError exception1269 #find_exposed_artifacts1270 when head pipeline has exposed artifacts1271 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_coverage_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 #find_codequality_mr_diff_reports1290 when head pipeline has coverage reports1291 when reactive cache worker is parsing results asynchronously1292 returns status1293 when reactive cache worker is inline1294 returns status and data1295 when an error occurrs1296 returns an error message1297 when cached results is not latest1298 raises and InvalidateReactiveCache error1299 #compare_test_reports1300 when head pipeline has test reports1301 when reactive cache worker is parsing asynchronously1302 returns status1303 when reactive cache worker is inline1304 returns status and data1305 when cached results is not latest1306 raises and InvalidateReactiveCache error1307 when head pipeline does not have test reports1308 returns status and error message1309 #compare_accessibility_reports1310 when head pipeline has accessibility reports1311 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 #compare_codequality_reports1320 when head pipeline has codequality report1321 when reactive cache worker is parsing results asynchronously1322 returns parsing status1323 when reactive cache worker is inline1324 returns parsed status1325 when an error occurrs1326 returns an error status1327 when cached result is not latest1328 raises an InvalidateReactiveCache error1329 #all_commit_shas1330 when merge request is persisted1331 with a completely different branch1332 behaves like returning all SHA1333 returns all SHAs from all merge_request_diffs1334 with a branch having no difference1335 behaves like returning all SHA1336 returns all SHAs from all merge_request_diffs1337 when merge request is not persisted1338 when compare commits are set in the service1339 returns commits from compare commits temporary data1340 when compare commits are not set in the service1341 returns array with diff head sha element only1342 #short_merge_commit_sha1343 returns short id when there is a merge_commit_sha1344 returns nil when there is no merge_commit_sha1345 #merged_commit_sha1346 returns nil when not merged1347 when the MR is merged1348 returns merge_commit_sha when there is a merge_commit_sha1349 returns squash_commit_sha when there is a squash_commit_sha1350 returns diff_head_sha when there are no merge_commit_sha and squash_commit_sha1351 #short_merged_commit_sha1352 when merged_commit_sha is nil1353 returns nil1354 when merged_commit_sha is present1355 returns shortened merged_commit_sha1356 #can_be_reverted?1357 when there is no merge_commit for the MR1358 returns false1359 when the MR has been merged1360 when there is no revert commit1361 returns true1362 when there is no merged_at for the MR1363 returns true1364 when there is a revert commit1365 but merged at timestamp cannot be found1366 returns false1367 when the revert commit is mentioned in a note after the MR was merged1368 returns false1369 when there is no merged_at for the MR1370 returns false1371 when the revert commit is mentioned in a note just before the MR was merged1372 returns false1373 when the revert commit is mentioned in a note long before the MR was merged1374 returns true1375 #merged_at1376 when MR is not merged1377 returns nil1378 when metrics has merged_at data1379 returns metrics merged_at1380 when merged event is persisted, but no metrics merged_at is persisted1381 returns merged event creation date1382 when no metrics or merge event exists1383 when resource event for the merge exists1384 returns the resource event creation date1385 when system note for the merge exists1386 returns the merging note creation date1387 #participants1388 includes the merge request author1389 includes the authors of the notes1390 cached counts1391 updates when assignees change1392 #merge_async1393 enqueues MergeWorker job and updates merge_jid1394 #rebase_async1395 atomically enqueues a RebaseWorker job and updates rebase_jid1396 refuses to enqueue a job if a rebase is in progress1397 refuses to enqueue a job if the MR is not open1398 raises ActiveRecord::LockWaitTimeout after 6 tries1399 #mergeable?1400 returns false if #mergeable_state? is false1401 return true if #mergeable_state? is true and the MR #can_be_merged? is true1402 return true if #mergeable_state? is true and the MR #can_be_merged? is false1403 with skip_ci_check option1404 mergeable_ci_state: false, skip_ci_check: false, expected_mergeable: false1405 overrides mergeable_ci_state?1406 mergeable_ci_state: false, skip_ci_check: true, expected_mergeable: true1407 overrides mergeable_ci_state?1408 mergeable_ci_state: true, skip_ci_check: false, expected_mergeable: true1409 overrides mergeable_ci_state?1410 mergeable_ci_state: true, skip_ci_check: true, expected_mergeable: true1411 overrides mergeable_ci_state?1412 with skip_discussions_check option1413 mergeable_discussions_state: false, skip_discussions_check: false, expected_mergeable: false1414 overrides mergeable_discussions_state?1415 mergeable_discussions_state: false, skip_discussions_check: true, expected_mergeable: true1416 overrides mergeable_discussions_state?1417 mergeable_discussions_state: true, skip_discussions_check: false, expected_mergeable: true1418 overrides mergeable_discussions_state?1419 mergeable_discussions_state: true, skip_discussions_check: true, expected_mergeable: true1420 overrides mergeable_discussions_state?1421 #check_mergeability1422 if the merge status is unchecked1423 behaves like method that executes MergeabilityCheckService1424 executes MergeabilityCheckService1425 when async is true1426 executes MergeabilityCheckService asynchronously1427 if the merge status is checking1428 behaves like method that executes MergeabilityCheckService1429 executes MergeabilityCheckService1430 when async is true1431 executes MergeabilityCheckService asynchronously1432 if the merge status is checked1433 does not call MergeabilityCheckService1434 #mergeable_state?1435 behaves like for mergeable_state1436 checks if merge request can be merged1437 when not open1438 returns false1439 when working in progress1440 returns false1441 when broken1442 returns false1443 when failed1444 when #mergeable_ci_state? is false1445 returns false1446 returns true when skipping ci check1447 when #mergeable_discussions_state? is false1448 returns false1449 returns true when skipping discussions check1450 when improved_mergeability_checks is off1451 behaves like for mergeable_state1452 checks if merge request can be merged1453 when not open1454 returns false1455 when working in progress1456 returns false1457 when broken1458 returns false1459 when failed1460 when #mergeable_ci_state? is false1461 returns false1462 returns true when skipping ci check1463 when #mergeable_discussions_state? is false1464 returns false1465 returns true when skipping discussions check1466 when merge state caching is off1467 behaves like for mergeable_state1468 checks if merge request can be merged1469 when not open1470 returns false1471 when working in progress1472 returns false1473 when broken1474 returns false1475 when failed1476 when #mergeable_ci_state? is false1477 returns false1478 returns true when skipping ci check1479 when #mergeable_discussions_state? is false1480 returns false1481 returns true when skipping discussions check1482 #public_merge_status1483 status: "cannot_be_merged_rechecking", public_status: "checking"1484 is expected to eq "checking"1485 status: "preparing", public_status: "checking"1486 is expected to eq "checking"1487 status: "checking", public_status: "checking"1488 is expected to eq "checking"1489 status: "cannot_be_merged", public_status: "cannot_be_merged"1490 is expected to eq "cannot_be_merged"1491 #head_pipeline_active?1492 when project lacks a head_pipeline relation1493 returns false1494 when project has a head_pipeline relation1495 accesses the value from the head_pipeline1496 #actual_head_pipeline_success?1497 when project lacks an actual_head_pipeline relation1498 returns false1499 when project has a actual_head_pipeline relation1500 accesses the value from the actual_head_pipeline1501 #actual_head_pipeline_active?1502 when project lacks an actual_head_pipeline relation1503 returns false1504 when project has a actual_head_pipeline relation1505 accesses the value from the actual_head_pipeline1506 #mergeable_ci_state?1507 when it is only allowed to merge when build is green1508 and a failed pipeline is associated1509 is expected to be falsey1510 and a successful pipeline is associated1511 is expected to be truthy1512 and a skipped pipeline is associated1513 is expected to be falsey1514 when no pipeline is associated1515 is expected to be falsey1516 when it is only allowed to merge when build is green or skipped1517 and a failed pipeline is associated1518 is expected to be falsey1519 and a successful pipeline is associated1520 is expected to be truthy1521 and a skipped pipeline is associated1522 is expected to be truthy1523 when no pipeline is associated1524 is expected to be falsey1525 when merges are not restricted to green builds1526 and a failed pipeline is associated1527 is expected to be truthy1528 when no pipeline is associated1529 is expected to be truthy1530 and a skipped pipeline is associated1531 is expected to be truthy1532 when no pipeline is associated1533 is expected to be truthy1534 #mergeable_discussions_state?1535 when project.only_allow_merge_if_all_discussions_are_resolved == true1536 with all discussions resolved1537 returns true1538 with unresolved discussions1539 returns false1540 with no discussions1541 returns true1542 when project.only_allow_merge_if_all_discussions_are_resolved == false1543 with unresolved discussions1544 returns true1545 #legacy_environments1546 returns environments1547 when pipeline is not associated with environments1548 returns empty array1549 when pipeline is not a pipeline for merge request1550 returns empty relation1551 #reload_diff1552 calls MergeRequests::ReloadDiffsService#execute with correct params1553 when using the after_update hook to update1554 when the branches are updated1555 uses the new heads to generate the diff1556 #update_diff_discussion_positions1557 updates diff discussion positions1558 does not call the resolve method1559 when resolve_outdated_diff_discussions is set1560 when the active discussion is resolved in the update1561 calls MergeRequests::ResolvedDiscussionNotificationService1562 when the active discussion does not have resolved in the update1563 does not call the resolve method1564 when the active discussion was already resolved1565 does not call the resolve method1566 #branch_merge_base_commit1567 source and target branch exist1568 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"1569 is expected to be a kind of Commit1570 when the target branch does not exist1571 returns nil1572 #diff_refs1573 with diffs1574 does not touch the repository1575 returns expected diff_refs1576 when importing1577 returns MR diff_refs1578 #source_project_missing?1579 when the fork exists1580 is expected to be falsey1581 when the source project is the same as the target project1582 is expected to be falsey1583 when the fork does not exist1584 returns true1585 #merge_ongoing?1586 returns true when the merge request is locked1587 returns true when merge_id, MR is not merged and it has no running job1588 returns false when merge_jid is nil1589 returns false if MR is merged1590 returns false if there is no merge job running1591 #closed_or_merged_without_fork?1592 when the merge request is closed1593 returns false if the fork exist1594 returns true if the fork does not exist1595 when the merge request was merged1596 returns false if the fork exist1597 returns true if the fork does not exist1598 when the merge request is open1599 returns false1600 #reopenable?1601 when the merge request is closed1602 returns true1603 forked project1604 returns false if unforked1605 returns false if the source project is deleted1606 returns false if the merge request is merged1607 when the merge request is opened1608 returns false1609 #pipeline_coverage_delta1610 when both source and target branches have coverage information1611 returns the appropriate coverage delta1612 when target branch does not have coverage information1613 returns nil1614 when source branch does not have coverage information1615 returns nil for coverage_delta1616 neither source nor target branch has coverage information1617 returns nil for coverage_delta1618 #use_merge_base_pipeline_for_comparison?1619 when service class is Ci::CompareMetricsReportsService1620 is expected to be truthy1621 when service class is Ci::CompareCodequalityReportsService1622 is expected to be truthy1623 when service class is different1624 is expected to be falsey1625 #comparison_base_pipeline1626 when service class is Ci::CompareCodequalityReportsService1627 when merge request has a merge request pipeline1628 returns the merge_base_pipeline1629 when merge does not have a merge request pipeline1630 returns the base_pipeline1631 when service_class is different1632 returns the base_pipeline1633 #base_pipeline1634 returns latest pipeline for the target branch1635 #merge_base_pipeline1636 returns a pipeline pointing to a commit on the target ref1637 #has_commits?1638 returns true when merge request diff has commits1639 when commits_count is nil1640 returns false1641 #has_no_commits?1642 returns true when merge request diff has 0 commits1643 #merge_request_diff_for1644 runs a single query on the initial call, and none afterwards1645 with diff refs1646 returns the diffs1647 with a commit SHA1648 returns the diffs1649 #version_params_for1650 when the diff refs are for an older merge request version1651 returns the diff ID for the version to show1652 when the diff refs are for a comparison between merge request versions1653 returns the diff ID and start sha of the versions to compare1654 when the diff refs are not for a merge request version1655 returns nil1656 #fetch_ref!1657 fetches the ref correctly1658 #eager_fetch_ref!1659 fetches the ref correctly1660 only fetches the ref once after saved1661 removing a merge request1662 refreshes the number of open merge requests of the target project1663 behaves like throttled touch1664 #touch1665 updates the updated_at timestamp1666 updates the object at most once per minute1667 state machine transitions1668 #unlock_mr1669 updates merge request head pipeline and sets merge_jid to nil1670 #mark_as_unchecked1671 when the status is unchecked1672 is not a valid state transition1673 when the status is checking1674 is a valid state transition1675 when the status is can_be_merged1676 is a valid state transition1677 when the status is cannot_be_merged_recheck1678 is not a valid state transition1679 when the status is cannot_be_merged1680 is a valid state transition1681 when the status is cannot_be_merged1682 is a valid state transition1683 transition to cannot_be_merged1684 opened1685 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1686 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check1687 notifies conflict, whenever newly unmergeable1688 notifies conflict, whenever newly unmergeable with async mergeability check1689 does not notify whenever merge request is newly unmergeable due to other reasons1690 locked1691 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1692 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check1693 notifies conflict, whenever newly unmergeable1694 notifies conflict, whenever newly unmergeable with async mergeability check1695 does not notify whenever merge request is newly unmergeable due to other reasons1696 closed1697 does not notify1698 merged1699 does not notify1700 source branch is missing1701 does not raise error1702 check_state?1703 indicates whether MR is still checking for mergeability1704 #should_be_rebased?1705 returns false for the same source and target branches1706 #rebase_in_progress?1707 rebase_jid: "foo", jid_valid: true, result: true1708 is expected to eq true1709 rebase_jid: "foo", jid_valid: false, result: false1710 is expected to eq false1711 rebase_jid: "", jid_valid: true, result: false1712 is expected to eq false1713 rebase_jid: nil, jid_valid: true, result: false1714 is expected to eq false1715 #allow_collaboration1716 is false when pushing by a maintainer is not possible1717 is true when pushing by a maintainer is possible1718 #collaborative_push_possible?1719 does not allow maintainer to push if the source project is the same as the target1720 allows maintainer to push when both source and target are public1721 is not available for protected branches1722 #can_allow_collaboration?1723 is false if the user does not have push access to the source project1724 is true when the user has push access to the source project1725 #merge_participants1726 contains author1727 when merge_when_pipeline_succeeds? is true1728 when merge user is author1729 author is not a project member1730 is empty1731 author is a project member1732 contains author only1733 when merge user and author are different users1734 merge user is not a member1735 contains author only1736 both author and merge users are project members1737 contains author and merge user1738 .merge_request_ref?1739 when ref is ref name of a branch1740 is expected to be falsey1741 when ref is HEAD ref path of a branch1742 is expected to be falsey1743 when ref is HEAD ref path of a merge request1744 is expected to be truthy1745 when ref is merge ref path of a merge request1746 is expected to be truthy1747 .merge_train_ref?1748 when ref is ref name of a branch1749 is expected to be falsey1750 when ref is HEAD ref path of a branch1751 is expected to be falsey1752 when ref is HEAD ref path of a merge request1753 is expected to be falsey1754 when ref is merge ref path of a merge request1755 is expected to be falsey1756 when ref is train ref path of a merge request1757 is expected to be truthy1758 #cleanup_refs1759 when removing all refs1760 deletes all refs from the target project1761 when removing only train ref1762 deletes train ref from the target project1763 .with_auto_merge_enabled1764 is expected to contain exactly #<MergeRequest id:374 namespace1/project170!1>1765 behaves like versioned description1766 associations1767 is expected to have many description_versions1768 save_description_version1769 when description was changed1770 saves the old and new description for the first update1771 only saves the new description for subsequent updates1772 sets the new description version to `saved_description_version`1773 clears `saved_description_version` after another save that does not change description1774 when description was not changed1775 does not save any description version1776 #commits1777 persisted merge request1778 with a limit1779 returns a limited number of commits1780 without a limit1781 returns all commits of the merge request diff1782 new merge request1783 compare commits1784 without a limit1785 returns all the compare commits1786 with a limit1787 returns a limited number of commits1788 #recent_commits1789 returns the safe number of commits1790 #recent_visible_deployments1791 returns visible deployments1792 only returns a limited number of deployments1793 #diffable_merge_ref?1794 merge request can be merged1795 merge_head diff is not created1796 returns true1797 merge_head diff is created1798 returns true1799 merge request is merged1800 returns false1801 merge request cannot be merged1802 returns false1803 display_merge_conflicts_in_diff is disabled1804 returns false1805 #predefined_variables1806 caches all SQL-sourced data on the first call1807 banzai_render_context1808 sets the label_url_method in the context1809 #head_pipeline_builds_with_coverage1810 delegates to head_pipeline1811 #merge_ref_head1812 when merge_ref_sha is not present1813 returns the commit based on merge ref path1814 when merge_ref_sha is present1815 returns the commit based on cached merge_ref_sha1816 #allows_reviewers?1817 returns true1818 #update_and_mark_in_progress_merge_commit_sha1819 updates commit ID1820 #enabled_reports1821 report_type: :sast, with_reports: :with_sast_reports, feature: :sast1822 when head pipeline has reports1823 is expected to be truthy1824 when head pipeline does not have reports1825 is expected to be falsy1826 report_type: :secret_detection, with_reports: :with_secret_detection_reports, feature: :secret_detection1827 when head pipeline has reports1828 is expected to be truthy1829 when head pipeline does not have reports1830 is expected to be falsy1831 #includes_ci_config?1832 when diff_stats is nil1833 is expected to eq false1834 when diff_stats does not include the ci config path of the project1835 is expected to eq false1836 when diff_stats includes the ci config path of the project1837 is expected to eq true1838 .from_fork1839 returns merge requests from forks only1840 behaves like it has loose foreign keys1841 has at least one loose foreign key definition1842 has the deletion trigger present1843 records record deletions1844 cleans up record deletions1845 loose foreign key on merge_requests.head_pipeline_id1846 behaves like cleanup by a loose foreign key1847 cleans up (delete or nullify) the model1848 #merge_request_reviewers_with1849 returns reviewers1850 #merge_request_assignees_with1851 returns assignees1852Environment1853 is expected to be a kind of ReactiveCaching1854 is expected to nullify if blank :external_url1855 is expected to belong to project required: true1856 is expected to have many deployments1857 is expected to have many metrics_dashboard_annotations1858 is expected to have many alert_management_alerts1859 is expected to have one upcoming_deployment1860 is expected to have one latest_opened_most_severe_alert1861 is expected to delegate #manual_actions to the #last_deployment object1862 is expected to validate that :name cannot be empty/falsy1863 is expected to validate that :name is case-sensitively unique within the scope of :project_id1864 is expected to validate that the length of :name is at most 2551865 is expected to validate that :slug is case-sensitively unique within the scope of :project_id1866 is expected to validate that the length of :slug is at most 241867 is expected to validate that the length of :external_url is at most 2551868 .before_save1869 ensures environment tier when a new object is created1870 ensures environment tier when an existing object is updated1871 does not overwrite the existing environment tier1872 .order_by_last_deployed_at1873 returns the environments in ascending order of having been last deployed1874 returns the environments in descending order of having been last deployed1875 .stopped_review_apps1876 is expected to contain exactly #<Environment id: 50, project_id: 192, name: "review/1", created_at: "2022-03-28 09:19:45.100597397 +...te: "stopped", slug: "review-1-8fxbic", auto_stop_at: nil, auto_delete_at: nil, tier: "development">1877 current timestamp1878 is expected to contain exactly #<Environment id: 50, project_id: 192, name: "review/1", created_at: "2022-03-28 09:19:45.100597397 +...te: "stopped", slug: "review-1-8fxbic", auto_stop_at: nil, auto_delete_at: nil, tier: "development"> and #<Environment id: 51, project_id: 192, name: "review/2", created_at: "2022-04-28 09:19:45.371897181 +...te: "stopped", slug: "review-2-an02x4", auto_stop_at: nil, auto_delete_at: nil, tier: "development">1879 scheduled deletion1880 .scheduled_for_deletion1881 is expected to contain exactly #<Environment id: 56, project_id: 193, name: "environment48", created_at: "2022-04-28 09:19:46.074342...ronment48", auto_stop_at: nil, auto_delete_at: "2022-04-28 09:19:45.800940260 +0000", tier: "other">1882 .not_scheduled_for_deletion1883 is expected to contain exactly #<Environment id: 57, project_id: 194, name: "environment49", created_at: "2022-04-28 09:19:46.429154...l, state: "available", slug: "environment49", auto_stop_at: nil, auto_delete_at: nil, tier: "other">1884 .schedule_to_delete1885 schedules the record for deletion1886 state machine1887 invalidates the cache after a change1888 when environment has auto stop period1889 clears auto stop period when the environment has stopped1890 does not clear auto stop period when the environment has not stopped1891 .for_name_like1892 returns a found name1893 when query is production1894 returns a found name1895 when query is productionA1896 returns empty array1897 when query is empty1898 returns a found name1899 when query is nil1900 raises an error1901 when query is partially matched in the middle of environment name1902 returns empty array1903 when query contains a wildcard character1904 prevents wildcard injection1905 .auto_stoppable1906 when environment is auto-stoppable1907 is expected to eq [#<Environment id: 68, project_id: 205, name: "environment53", created_at: "2022-04-28 09:19:51.45205...onment53", auto_stop_at: "2022-04-27 09:19:51.374122444 +0000", auto_delete_at: nil, tier: "other">]1908 when environment is not auto-stoppable1909 is expected to be empty1910 .auto_deletable1911 when environment is auto-deletable1912 is expected to eq [#<Environment id: 70, project_id: 207, name: "environment55", created_at: "2022-04-28 09:19:52.61058...onment55", auto_stop_at: nil, auto_delete_at: "2022-04-27 09:19:52.526434615 +0000", tier: "other">]1913 when environment is not auto-deletable1914 is expected to be empty1915 .pluck_names1916 plucks names1917 .for_tier1918 returns the production environment when searching for production tier1919 returns nothing when searching for staging tier1920 #guess_tier1921 name: "review/feature", tier: 31922 is expected to eq 31923 name: "review/product", tier: 31924 is expected to eq 31925 name: "DEV", tier: 31926 is expected to eq 31927 name: "development", tier: 31928 is expected to eq 31929 name: "trunk", tier: 31930 is expected to eq 31931 name: "dev", tier: 31932 is expected to eq 31933 name: "review/app", tier: 31934 is expected to eq 31935 name: "PRODUCTION", tier: 01936 is expected to eq 01937 name: "prod", tier: 01938 is expected to eq 01939 name: "prod-east-2", tier: 01940 is expected to eq 01941 name: "us-prod-east", tier: 01942 is expected to eq 01943 name: "fe-production", tier: 01944 is expected to eq 01945 name: "test", tier: 21946 is expected to eq 21947 name: "TEST", tier: 21948 is expected to eq 21949 name: "testing", tier: 21950 is expected to eq 21951 name: "testing-prd", tier: 21952 is expected to eq 21953 name: "acceptance-testing", tier: 21954 is expected to eq 21955 name: "production-test", tier: 21956 is expected to eq 21957 name: "test-production", tier: 21958 is expected to eq 21959 name: "QC", tier: 21960 is expected to eq 21961 name: "qa-env-2", tier: 21962 is expected to eq 21963 name: "gstg", tier: 11964 is expected to eq 11965 name: "staging", tier: 11966 is expected to eq 11967 name: "stage", tier: 11968 is expected to eq 11969 name: "Model", tier: 11970 is expected to eq 11971 name: "MODL", tier: 11972 is expected to eq 11973 name: "Pre-production", tier: 11974 is expected to eq 11975 name: "pre", tier: 11976 is expected to eq 11977 name: "Demo", tier: 11978 is expected to eq 11979 name: "staging", tier: 11980 is expected to eq 11981 name: "pre-prod", tier: 11982 is expected to eq 11983 name: "blue-kit-stage", tier: 11984 is expected to eq 11985 name: "pre-prod", tier: 11986 is expected to eq 11987 name: "gprd", tier: 01988 is expected to eq 01989 name: "gprd-cny", tier: 01990 is expected to eq 01991 name: "production", tier: 01992 is expected to eq 01993 name: "Production", tier: 01994 is expected to eq 01995 name: "PRODUCTION", tier: 01996 is expected to eq 01997 name: "Production/eu", tier: 01998 is expected to eq 01999 name: "production/eu", tier: 02000 is expected to eq 02001 name: "PRODUCTION/EU", tier: 02002 is expected to eq 02003 name: "productioneu", tier: 02004 is expected to eq 02005 name: "store-produce", tier: 02006 is expected to eq 02007 name: "unproductive", tier: 02008 is expected to eq 02009 name: "production/www.gitlab.com", tier: 02010 is expected to eq 02011 name: "prod", tier: 02012 is expected to eq 02013 name: "PROD", tier: 02014 is expected to eq 02015 name: "Live", tier: 02016 is expected to eq 02017 name: "canary", tier: 42018 is expected to eq 42019 name: "other", tier: 42020 is expected to eq 42021 name: "EXP", tier: 42022 is expected to eq 42023 name: "something-else", tier: 42024 is expected to eq 42025 #expire_etag_cache2026 changes the cached value2027 .with_deployment2028 when deployment has the specified sha2029 is expected to eq [#<Environment id: 75, project_id: 212, name: "environment58", created_at: "2022-04-28 09:19:58.67227..., state: "available", slug: "environment58", auto_stop_at: nil, auto_delete_at: nil, tier: "other">]2030 with success status filter2031 is expected to be empty2032 with created status filter2033 is expected to contain exactly #<Environment id: 77, project_id: 214, name: "environment60", created_at: "2022-04-28 09:19:59.805237...l, state: "available", slug: "environment60", auto_stop_at: nil, auto_delete_at: nil, tier: "other">2034 when deployment does not have the specified sha2035 is expected to be empty2036 #folder_name2037 when it is inside a folder2038 returns a top-level folder name2039 when the environment if a top-level item itself2040 returns an environment name2041 #name_without_type2042 when it is inside a folder2043 returns name without folder2044 when the environment if a top-level item itself2045 returns full name2046 #includes_commit?2047 without a last deployment2048 returns false2049 with a last deployment2050 in the same branch2051 returns true2052 not in the same branch2053 returns false2054 #environment_type2055 sets a environment type if name has multiple segments2056 nullifies a type if it's a simple name2057 #stop_actions_available?2058 when no other actions2059 is expected to be falsey2060 when matching action is defined2061 when environment is available2062 is expected to be truthy2063 when environment is stopped2064 is expected to be falsey2065 #stop_with_actions!2066 when no other actions2067 environment is available2068 is expected to contain exactly2069 environment is already stopped2070 is expected to be stopped2071 when matching action is defined2072 when user is not allowed to stop environment2073 raises an exception2074 when user is allowed to stop environment2075 when action did not yet finish2076 returns the same action2077 if action did finish2078 returns a new action of the same type2079 close action does not raise ActiveRecord::StaleObjectError2080WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/environment_spec.rb:624:in `block (6 levels) in <top (required)>'.2081 successfully plays the build even if the build was a stale object2082 when there are more then one stop action for the environment2083 returns the same actions2084 when there are failed deployment jobs2085 returns only stop actions from successful deployment jobs2086 when the feature is disabled2087 returns the last deployment job stop action2088 #stop_actions2089 when there are no deployments and builds2090 returns empty array2091 when there are multiple deployments with actions2092 returns only the stop actions2093 #last_deployment_group2094 when there are no deployments and builds2095 is expected to eq #<ActiveRecord::Relation []>2096 when there are deployments for multiple pipelines2097 returns the successful deployment jobs for the last deployment pipeline2098 recently_updated_on_branch?2099 when last deployment to environment is the most recent one2100 is expected to equal true2101 when last deployment to environment is not the most recent2102 is expected to equal false2103 #reset_auto_stop2104 nullifies the auto_stop_at2105 #actions_for2106 returns a list of actions with matching environment2107 .deployments2108 when there is a deployment record with created status2109 does not return the record2110 when there is a deployment record with running status2111 does not return the record2112 when there is a deployment record with success status2113 returns the record2114 .last_deployment2115 when there is an old deployment record2116 when there is a deployment record with created status2117 returns the previous deployment2118 when there is a deployment record with running status2119 returns the previous deployment2120 when there is a deployment record with failed status2121 returns the previous deployment2122 when there is a deployment record with success status2123 returns the latest successful deployment2124 returns the deployment with the latest finished_at2125 #last_deployable2126 does not join across databases2127 when called2128 #last_deployment_pipeline2129 does not join across databases2130 #last_visible_deployment2131 when there is an old deployment record2132 when there is a deployment record with created status2133 is expected to eq #<Deployment id: 82, iid: 1, project_id: 257, environment_id: 118, ref: "master", tag: false, sha: "b...hed_at: "2022-04-28 09:20:30.595891748 +0000", cluster_id: nil, deployable_id: 144, archived: false>2134 when there is a deployment record with running status2135 is expected to eq #<Deployment id: 85, iid: 2, project_id: 258, environment_id: 119, ref: "master", tag: false, sha: "b...top: nil, status: "running", finished_at: nil, cluster_id: nil, deployable_id: 147, archived: false>2136 when there is a deployment record with success status2137 is expected to eq #<Deployment id: 87, iid: 2, project_id: 259, environment_id: 120, ref: "master", tag: false, sha: "b...hed_at: "2022-04-28 09:20:32.165921899 +0000", cluster_id: nil, deployable_id: 149, archived: false>2138 when there is a deployment record with failed status2139 is expected to eq #<Deployment id: 89, iid: 2, project_id: 260, environment_id: 121, ref: "master", tag: false, sha: "b...hed_at: "2022-04-28 09:20:32.802355689 +0000", cluster_id: nil, deployable_id: 151, archived: false>2140 when there is a deployment record with canceled status2141 is expected to eq #<Deployment id: 91, iid: 2, project_id: 261, environment_id: 122, ref: "master", tag: false, sha: "b...hed_at: "2022-04-28 09:20:33.468254126 +0000", cluster_id: nil, deployable_id: 153, archived: false>2142 #last_visible_deployable2143 does not join across databases2144 for direct call2145 for preload2146 call after preload2147 fetches from association cache2148 #last_visible_pipeline2149 uses the last deployment even if it failed2150 returns nil if there is no deployment2151 does not return an invisible pipeline2152 does not join across databases2153 for direct call2154 for preload2155 for the environment2156 returns the last pipeline2157 with multiple deployments2158 returns the last pipeline2159 with multiple pipelines2160 returns the last pipeline2161 call after preload2162 fetches from association cache2163 #upcoming_deployment2164 when environment has a successful deployment2165 is expected to be nil2166 when environment has a running deployment2167 is expected to eq #<Deployment id: 110, iid: 1, project_id: 267, environment_id: 136, ref: "master", tag: false, sha: "...top: nil, status: "running", finished_at: nil, cluster_id: nil, deployable_id: 174, archived: false>2168 when environment has a blocked deployment2169 is expected to eq #<Deployment id: 111, iid: 1, project_id: 268, environment_id: 137, ref: "master", tag: false, sha: "...top: nil, status: "blocked", finished_at: nil, cluster_id: nil, deployable_id: 175, archived: false>2170 #has_terminals?2171 when the environment is available2172 with a deployment service2173 when user configured kubernetes from CI/CD > Clusters2174 with deployment2175 is expected to be truthy2176 without deployments2177 is expected to be falsy2178 without a deployment service2179 is expected to be falsy2180 when the environment is unavailable2181 is expected to be falsy2182 #deployment_platform2183 checks deployment platforms associated with a project2184 when there is a deployment platform for environment2185 finds a deployment platform2186 when there is no deployment platform for environment2187 returns nil2188 #deployment_namespace2189 no deployment platform available2190 is expected to be nil2191 deployment platform is available2192 retrieves a namespace from the cluster2193 #terminals2194 reactive cache configuration2195 does not continue to spawn jobs2196 reactive cache is empty2197 is expected to be nil2198 reactive cache has pod data2199 retrieves terminals from the deployment platform2200 #calculate_reactive_cache2201 overrides default reactive_cache_hard_limit to 10 Mb2202 returns cache data from the deployment platform2203 environment does not have terminals available2204 is expected to be nil2205 project is pending deletion2206 is expected to be nil2207 #has_metrics?2208 when the environment is available2209 with a deployment service2210 and a deployment2211 is expected to be truthy2212 and no deployments2213 is expected to be truthy2214 and the prometheus adapter is not configured2215 is expected to be falsy2216 without a monitoring service2217 is expected to be falsy2218 when sample metrics are enabled2219 with no prometheus adapter configured2220WARNING: An expectation of `:configured?` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/models/environment_spec.rb:1380:in `block (6 levels) in <top (required)>'.2221 is expected to be truthy2222 #has_sample_metrics?2223 when sample metrics are enabled2224 with no prometheus adapter configured2225WARNING: An expectation of `:configured?` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/models/environment_spec.rb:1400:in `block (6 levels) in <top (required)>'.2226 is expected to be truthy2227 with the environment stopped2228 is expected to be falsy2229 when sample metrics are not enabled2230 is expected to be falsy2231 when the environment is unavailable2232 is expected to be falsy2233 #has_running_deployments?2234 return false when no deployments exist2235 when deployment is running on the environment2236 return true2237 #metrics2238 when the environment has metrics2239 returns the metrics from the deployment service2240 and the prometheus client is not present2241 is expected to be nil2242 when the environment does not have metrics2243 is expected to be nil2244 #additional_metrics2245 when the environment has additional metrics2246 returns the additional metrics from the deployment service2247 when time window arguments are provided2248 queries with the expected parameters2249 when the environment does not have metrics2250 is expected to be nil2251 #slug2252 is automatically generated2253 is not regenerated if name changes2254 regenerates the slug if nil2255 #ref_path2256 returns a path that uses the slug and does not have spaces2257 doesn't change when the slug is nil initially2258 #external_url_for2259 when the public path is not known2260 returns nil2261 when the public path is known2262 external_url: "http://example.com", public_path: "file.html", full_url: "http://example.com/file.html"2263 returns the full external URL2264 external_url: "http://example.com/", public_path: "file.html", full_url: "http://example.com/file.html"2265 returns the full external URL2266 external_url: "http://example.com", public_path: "/file.html", full_url: "http://example.com/file.html"2267 returns the full external URL2268 external_url: "http://example.com/", public_path: "/file.html", full_url: "http://example.com/file.html"2269 returns the full external URL2270 external_url: "http://example.com/subpath", public_path: "public/file.html", full_url: "http://example.com/subpath/public/file.html"2271 returns the full external URL2272 external_url: "http://example.com/subpath/", public_path: "public/file.html", full_url: "http://example.com/subpath/public/file.html"2273 returns the full external URL2274 external_url: "http://example.com/subpath", public_path: "/public/file.html", full_url: "http://example.com/subpath/public/file.html"2275 returns the full external URL2276 external_url: "http://example.com/subpath/", public_path: "/public/file.html", full_url: "http://example.com/subpath/public/file.html"2277 returns the full external URL2278 #prometheus_adapter2279 calls prometheus adapter service2280 #knative_services_finder2281 environment has no deployments2282 is expected to be nil2283 environment has a deployment2284 with no cluster associated2285 is expected to be nil2286 with a cluster associated2287 calls the service finder2288 #auto_stop_in2289 when environment will be expired2290 returns when it will expire2291 when environment is not expired2292 is expected to be nil2293 #auto_stop_in=2294 value: "2 days", expected_result: 1728002295 sets correct auto_stop_in2296 value: "1 week", expected_result: 6048002297 sets correct auto_stop_in2298 value: "2h20min", expected_result: 84002299 sets correct auto_stop_in2300 value: "abcdef", expected_result: ChronicDuration::DurationParseError2301 sets correct auto_stop_in2302 value: "", expected_result: nil2303 sets correct auto_stop_in2304 value: nil, expected_result: nil2305 sets correct auto_stop_in2306 .for_id_and_slug2307 is expected not to be nil2308 .find_or_create_by_name2309 finds an existing environment if it exists2310 creates an environment if it does not exist2311 #elastic_stack_available?2312 when integration does not exist2313 returns false2314 when integration is enabled2315 returns true2316 #destroy2317 remove the deployment refs from gitaly2318 .count_by_state2319 returns zero state counts when environments are empty2320 when environments are not empty2321 returns the environments count grouped by state2322 returns the environments count grouped by state with zero value2323 #has_opened_alert?2324 when environment has an triggered alert2325 is expected to equal true2326 when environment has an resolved alert2327 is expected to equal false2328 when environment does not have an alert2329 is expected to equal false2330 #cancel_deployment_jobs!2331 cancels an active deployment job2332 when deployable does not exist2333 does not raise an error2334 #rollout_status2335 environment does not have a deployment board available2336 is expected to be nil2337 cached rollout status is present2338 fetches the rollout status from the deployment platform2339 cached rollout status is not present yet2340 falls back to a loading status2341 #ingresses2342 when rollout status is available2343 fetches ingresses from the deployment platform2344 when rollout status is not available2345 does nothing2346 #patch_ingress2347 when rollout status is available2348 fetches ingresses from the deployment platform2349 when rollout status is not available2350 does nothing2351 #clear_all_caches2352 clears all caches on the environment2353 #should_link_to_merge_requests?2354 when environment is foldered2355 when environment is production tier2356 is expected to eq true2357 when environment is development tier2358 is expected to eq false2359 when environment is unfoldered2360 when environment is production tier2361 is expected to eq true2362 when environment is development tier2363 is expected to eq true2364Gitlab::Auth2365 constants2366 API_SCOPES contains all scopes for API access2367 ADMIN_SCOPES contains all scopes for ADMIN access2368 REPOSITORY_SCOPES contains all scopes for REPOSITORY access2369 OPENID_SCOPES contains all scopes for OpenID Connect2370 DEFAULT_SCOPES contains all default scopes2371 optional_scopes contains all non-default scopes2372 available_scopes2373 contains all non-default scopes2374 contains for non-admin user all non-default scopes without ADMIN access2375 contains for admin user all non-default scopes with ADMIN access2376 registry_scopes2377 when registry is disabled2378 is empty2379 when registry is enabled2380 contains all registry related scopes2381 find_for_git_client2382 recognizes other ci services2383 recognizes master passwords2384 allows user authenticating from the same ip2385 blocks user authenticating from two distinct ips2386 returns double nil for invalid credentials2387 throws an error suggesting user create a PAT when internal auth is disabled2388 rate limiting2389 when IP is already banned2390 raises an IpBlacklisted exception2391 for CI registry user2392 skips rate limiting for successful auth2393 skips rate limiting for failed auth2394 for other users2395 resets rate limit for successful auth2396 rate limits a user by unique IPs2397 registers failure for failed auth2398 build token2399 for running build2400 recognises user-less build2401 recognises user token2402 recognises project level bot access token2403 recognises group level bot access token2404 fails with blocked user token2405 username is not gitlab-ci-token2406 fails to authenticate2407 for created build2408 denies authentication2409 for waiting_for_resource build2410 denies authentication2411 for preparing build2412 denies authentication2413 for pending build2414 denies authentication2415 for success build2416 denies authentication2417 for failed build2418 denies authentication2419 for canceled build2420 denies authentication2421 for skipped build2422 denies authentication2423 for manual build2424 denies authentication2425 for scheduled build2426 denies authentication2427 while using LFS authenticate2428 recognizes user lfs tokens2429 recognizes deploy key lfs tokens2430 does not try password auth before oauth2431 grants deploy key write permissions2432 does not grant deploy key write permissions2433 while using OAuth tokens as passwords2434 does not try password auth before oauth2435 with specified scopes2436 scopes: "api", abilities: [:read_project, :download_code, :read_container_image, :push_code, :create_container_image, :admin_container_image]2437 authenticates with correct abilities2438 scopes: "read_api", abilities: [:read_project, :download_code, :read_container_image]2439 authenticates with correct abilities2440 scopes: "read_repository", abilities: [:download_code]2441 authenticates with correct abilities2442 scopes: "write_repository", abilities: [:download_code, :push_code]2443 authenticates with correct abilities2444 scopes: "read_user", abilities: []2445 authenticates with correct abilities2446 scopes: "sudo", abilities: []2447 authenticates with correct abilities2448 scopes: "openid", abilities: []2449 authenticates with correct abilities2450 scopes: "profile", abilities: []2451 authenticates with correct abilities2452 scopes: "email", abilities: []2453 authenticates with correct abilities2454 blocked user2455 behaves like an oauth failure2456 fails2457 orphaned token2458 behaves like an oauth failure2459 fails2460 while using personal access tokens as passwords2461 succeeds for personal access tokens with the `api` scope2462 succeeds for personal access tokens with the `read_repository` scope2463 succeeds for personal access tokens with the `write_repository` scope2464 succeeds if it is an impersonation token2465 fails if it is an impersonation token but impersonation is blocked2466 limits abilities based on scope2467 fails if password is nil2468 when registry is enabled2469 succeeds for personal access tokens with the `read_registry` scope2470 when user is blocked2471 fails if user is blocked2472 when using a resource access token2473 when using a personal namespace project access token2474 when the token belongs to the project2475 behaves like with a valid access token2476 successfully authenticates the project bot2477 successfully authenticates the project bot with a nil project2478 behaves like with an invalid access token2479 fails for a non-member2480 when project bot user is blocked2481 fails for a blocked project bot2482 when in a group namespace2483 when using a project access token2484 when token user belongs to the project2485 behaves like with a valid access token2486 successfully authenticates the project bot2487 successfully authenticates the project bot with a nil project2488 behaves like with an invalid access token2489 fails for a non-member2490 when project bot user is blocked2491 fails for a blocked project bot2492 when using a group access token2493 when the token belongs to the group2494 behaves like with a valid access token2495 successfully authenticates the project bot2496 successfully authenticates the project bot with a nil project2497 behaves like with an invalid access token2498 fails for a non-member2499 when project bot user is blocked2500 fails for a blocked project bot2501 while using regular user and password2502 fails for a blocked user2503 goes through lfs authentication2504 goes through oauth authentication when the username is oauth22505 when 2fa is enabled globally2506 fails if grace period expired2507 goes through if grace period is not expired yet2508 when 2fa is enabled personally2509 fails2510 while using deploy tokens2511 when deploy token and user have the same username2512 succeeds for the token2513 succeeds for the user2514 when deploy tokens have the same username2515 and belong to the same project2516 succeeds for the right token2517 fails for the wrong token2518 and belong to different projects2519 succeeds for the right token2520 fails for the wrong token2521 when the deploy token has read_repository as scope2522 succeeds when login and token are valid2523 succeeds when custom login and token are valid2524 does not attempt to rate limit unique IPs for a deploy token2525 fails when login is not valid2526 fails when token is not valid2527 fails if token is nil2528 fails if token is not related to project2529 fails if token has been revoked2530 when the deploy token is of group type2531 succeeds when login and a group deploy token are valid2532 fails if token is not related to group2533 when the deploy token has read_registry as a scope2534 when registry enabled2535 succeeds when login and a project token are valid2536 behaves like registry token scope2537 fails when login is not valid2538 fails when token is not valid2539 fails if token is nil2540 fails if token is not related to project2541 fails if token has been revoked2542 behaves like deploy token with disabled feature2543 when registry disabled2544 fails when login and token are valid2545 when repository is disabled2546 fails when login and token are valid2547 when the deploy token has write_registry as a scope2548 when registry enabled2549 succeeds when login and a project token are valid2550 behaves like registry token scope2551 fails when login is not valid2552 fails when token is not valid2553 fails if token is nil2554 fails if token is not related to project2555 fails if token has been revoked2556 behaves like deploy token with disabled feature2557 when registry disabled2558 fails when login and token are valid2559 when repository is disabled2560 fails when login and token are valid2561 #build_access_token_check2562 for running build2563 executes query using primary database2564 find_with_user_password2565 finds user by valid login/password2566 finds user by valid email/password with case-insensitive email2567 finds user by valid username/password with case-insensitive username2568 does not find user with invalid password2569 does not find user with invalid login2570 allows user authenticating from the same ip2571 blocks user authenticating from two distinct ips2572 finds the user in deactivated state2573 does not find user in blocked state2574 does not find user in locked state2575 does not find user in ldap_blocked state2576 does not find user in blocked_pending_approval state2577 with increment_failed_attempts2578 increments failed_attempts when true and password is incorrect2579 resets failed_attempts when true and password is correct2580 does not increment failed_attempts by default2581 when the database is read-only2582 does not increment failed_attempts when true and password is incorrect2583 does not reset failed_attempts when true and password is correct2584 with ldap enabled2585 tries to autheticate with db before ldap2586 does not find user by using ldap as fallback to for authentication2587 find new user by using ldap as fallback to for authentication2588 with password authentication disabled for Git2589 does not find user by valid login/password2590 with ldap enabled2591 does not find non-ldap user by valid login/password2592 .resource_bot_scopes2593 is expected to include :api and :read_api2594 is expected to include :read_repository and :write_repository2595 is expected to include nil2596Ci::UnlockArtifactsService2597 tag: false, ci_update_unlocked_job_artifacts: false2598 #execute2599 when running on a ref before a pipeline2600 unlocks artifacts from older pipelines2601 does not unlock artifacts for tag or branch with same name as ref2602 does not unlock artifacts from newer pipelines2603 does not lock artifacts from old unlocked pipelines2604 does not unlock artifacts from the same pipeline2605 does not unlock artifacts for other refs2606 does not unlock artifacts for child pipeline2607 unlocks job artifact records (PENDING: No reason given)2608 when running on just the ref2609 unlocks artifacts from older pipelines2610 unlocks artifacts from newer pipelines2611 unlocks artifacts from the same pipeline2612 does not unlock artifacts for tag or branch with same name as ref2613 does not lock artifacts from old unlocked pipelines2614 does not unlock artifacts for other refs2615 unlocks job artifact records (PENDING: No reason given)2616 #unlock_pipelines_query2617 when running on a ref before a pipeline2618 produces the expected SQL string2619 when running on just the ref2620 produces the expected SQL string2621 #unlock_job_artifacts_query2622 when running on a ref before a pipeline2623 produces the expected SQL string2624 when running on just the ref2625 produces the expected SQL string2626 tag: false, ci_update_unlocked_job_artifacts: true2627 #execute2628 when running on a ref before a pipeline2629 unlocks artifacts from older pipelines2630 does not unlock artifacts for tag or branch with same name as ref2631 does not unlock artifacts from newer pipelines2632 does not lock artifacts from old unlocked pipelines2633 does not unlock artifacts from the same pipeline2634 does not unlock artifacts for other refs2635 does not unlock artifacts for child pipeline2636 unlocks job artifact records2637 when running on just the ref2638 unlocks artifacts from older pipelines2639 unlocks artifacts from newer pipelines2640 unlocks artifacts from the same pipeline2641 does not unlock artifacts for tag or branch with same name as ref2642 does not lock artifacts from old unlocked pipelines2643 does not unlock artifacts for other refs2644 unlocks job artifact records2645 #unlock_pipelines_query2646 when running on a ref before a pipeline2647 produces the expected SQL string2648 when running on just the ref2649 produces the expected SQL string2650 #unlock_job_artifacts_query2651 when running on a ref before a pipeline2652 produces the expected SQL string2653 when running on just the ref2654 produces the expected SQL string2655 tag: true, ci_update_unlocked_job_artifacts: false2656 #execute2657 when running on a ref before a pipeline2658 unlocks artifacts from older pipelines2659 does not unlock artifacts for tag or branch with same name as ref2660 does not unlock artifacts from newer pipelines2661 does not lock artifacts from old unlocked pipelines2662 does not unlock artifacts from the same pipeline2663 does not unlock artifacts for other refs2664 does not unlock artifacts for child pipeline2665 unlocks job artifact records (PENDING: No reason given)2666 when running on just the ref2667 unlocks artifacts from older pipelines2668 unlocks artifacts from newer pipelines2669 unlocks artifacts from the same pipeline2670 does not unlock artifacts for tag or branch with same name as ref2671 does not lock artifacts from old unlocked pipelines2672 does not unlock artifacts for other refs2673 unlocks job artifact records (PENDING: No reason given)2674 #unlock_pipelines_query2675 when running on a ref before a pipeline2676 produces the expected SQL string2677 when running on just the ref2678 produces the expected SQL string2679 #unlock_job_artifacts_query2680 when running on a ref before a pipeline2681 produces the expected SQL string2682 when running on just the ref2683 produces the expected SQL string2684 tag: true, ci_update_unlocked_job_artifacts: true2685 #execute2686 when running on a ref before a pipeline2687 unlocks artifacts from older pipelines2688 does not unlock artifacts for tag or branch with same name as ref2689 does not unlock artifacts from newer pipelines2690 does not lock artifacts from old unlocked pipelines2691 does not unlock artifacts from the same pipeline2692 does not unlock artifacts for other refs2693 does not unlock artifacts for child pipeline2694 unlocks job artifact records2695 when running on just the ref2696 unlocks artifacts from older pipelines2697 unlocks artifacts from newer pipelines2698 unlocks artifacts from the same pipeline2699 does not unlock artifacts for tag or branch with same name as ref2700 does not lock artifacts from old unlocked pipelines2701 does not unlock artifacts for other refs2702 unlocks job artifact records2703 #unlock_pipelines_query2704 when running on a ref before a pipeline2705 produces the expected SQL string2706 when running on just the ref2707 produces the expected SQL string2708 #unlock_job_artifacts_query2709 when running on a ref before a pipeline2710 produces the expected SQL string2711 when running on just the ref2712 produces the expected SQL string2713Users::MigrateToGhostUserService2714 migrating a user's associated records to the ghost user2715 issues2716 deleted user is present as both author and edited_user2717 for a issue the user has created2718 does not delete the issue2719 blocks the user before migrating issues to the 'Ghost User'2720 migrates all associated fields to the "Ghost user"2721 will only migrate specific records during a hard_delete2722 race conditions2723 blocks the user before issue migration begins2724 when issue migration fails and is rolled back2725 rolls back the user block2726 doesn't unblock a previously-blocked user2727 deleted user is present only as edited_user2728 for a issue the user has created2729 does not delete the issue2730 blocks the user before migrating issues to the 'Ghost User'2731 migrates all associated fields to the "Ghost user"2732 will only migrate specific records during a hard_delete2733 race conditions2734 blocks the user before issue migration begins2735 when issue migration fails and is rolled back2736 rolls back the user block2737 doesn't unblock a previously-blocked user2738 merge requests2739 deleted user is present as both author and merge_user2740 for a merge request the user has created2741 does not delete the merge request2742 blocks the user before migrating merge requests to the 'Ghost User'2743 migrates all associated fields to the "Ghost user"2744 will only migrate specific records during a hard_delete2745 race conditions2746 blocks the user before merge request migration begins2747 when merge request migration fails and is rolled back2748 rolls back the user block2749 doesn't unblock a previously-blocked user2750 deleted user is present only as both merge_user2751 for a merge request the user has created2752 does not delete the merge request2753 blocks the user before migrating merge requests to the 'Ghost User'2754 migrates all associated fields to the "Ghost user"2755 will only migrate specific records during a hard_delete2756 race conditions2757 blocks the user before merge request migration begins2758 when merge request migration fails and is rolled back2759 rolls back the user block2760 doesn't unblock a previously-blocked user2761 notes2762 for a note the user has created2763 does not delete the note2764 blocks the user before migrating notes to the 'Ghost User'2765 migrates all associated fields to the "Ghost user"2766 will only migrate specific records during a hard_delete2767 race conditions2768 blocks the user before note migration begins2769 when note migration fails and is rolled back2770 rolls back the user block2771 doesn't unblock a previously-blocked user2772 abuse reports2773 for a abuse report the user has created2774 does not delete the abuse report2775 blocks the user before migrating abuse reports to the 'Ghost User'2776 migrates all associated fields to the "Ghost user"2777 will only migrate specific records during a hard_delete2778 race conditions2779 blocks the user before abuse report migration begins2780 when abuse report migration fails and is rolled back2781 rolls back the user block2782 doesn't unblock a previously-blocked user2783 award emoji2784 for a award emoji the user has created2785 does not delete the award emoji2786 blocks the user before migrating award emojis to the 'Ghost User'2787 migrates all associated fields to the "Ghost user"2788 will only migrate specific records during a hard_delete2789 race conditions2790 blocks the user before award emoji migration begins2791 when award emoji migration fails and is rolled back2792 rolls back the user block2793 doesn't unblock a previously-blocked user2794 when the awardable already has an award emoji of the same name assigned to the ghost user2795 migrates the award emoji regardless2796 does not leave the migrated award emoji in an invalid state2797 snippets2798 for a snippet the user has created2799 does not delete the snippet2800 blocks the user before migrating snippets to the 'Ghost User'2801 migrates all associated fields to the "Ghost user"2802 will only migrate specific records during a hard_delete2803 race conditions2804 blocks the user before snippet migration begins2805 when snippet migration fails and is rolled back2806 rolls back the user block2807 doesn't unblock a previously-blocked user2808 reviews2809 for a review the user has created2810 does not delete the review2811 blocks the user before migrating reviews to the 'Ghost User'2812 migrates all associated fields to the "Ghost user"2813 will only migrate specific records during a hard_delete2814 race conditions2815 blocks the user before review migration begins2816 when review migration fails and is rolled back2817 rolls back the user block2818 doesn't unblock a previously-blocked user2819Projects::ForkService2820 when forking a new project2821 fork by user2822 fork project2823 when forker is a guest2824 is expected not to be persisted2825 is expected to eq ["is forbidden"]2826 does not create a fork network2827 behaves like forks count cache refresh2828 flushes the forks count cache of the source project2829 successfully creates project in the user namespace2830 is expected to be persisted2831 is expected to be empty2832 is expected to eq #<User id:717 @user255>2833 is expected to eq #<Namespaces::UserNamespace id: 1306, name: "Sidney Jones720", path: "user257", owner_id: 719, create...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>2834 is expected to be zero2835 is expected to eq "wow such project"2836 is expected to be exists2837 is expected to eq nil2838 is expected to eq "classification-label"2839 after forking the from-project still has its avatar2840 creates a fork network with the new project and the root project set2841 imports the repository of the forked project2842 behaves like forks count cache refresh2843 flushes the forks count cache of the source project2844 creating a fork of a fork2845 sets the root of the network to the root project2846 sets the forked_from_project on the membership2847 when the forked project has higher visibility than the root project2848 successfully creates a fork of the fork with correct visibility2849 behaves like forks count cache refresh2850 flushes the forks count cache of the source project2851 project already exists2852 fails due to validation, not transaction failure2853 repository in legacy storage already exists2854 does not allow creation2855 when repository disk validation is explicitly skipped2856 allows fork project creation2857 CI/CD settings2858 when origin has git depth specified2859 inherits default_git_depth from the origin project2860 when origin does not define git depth2861 the fork has git depth set to 02862 when project has restricted visibility level2863 and only one visibility level is restricted2864 creates fork with lowest level2865 and all visibility levels are restricted2866 creates fork with private visibility levels2867 when forking is disabled2868 fails2869 fork to namespace2870 fork project for group2871 group owner successfully forks project into the group2872 fork project for group when user not owner2873 group developer fails to fork project into the group2874 project already exists in group2875 fails due to validation, not transaction failure2876 when the namespace has a lower visibility level than the project2877 creates the project with the lower visibility level2878 fork with optional attributes2879 sets optional attributes to specified values2880 sets visibility level to private if an unknown visibility is requested2881 sets visibility level to project visibility level if requested visibility is greater2882 sets visibility level to target namespace visibility level if requested visibility is greater2883 copies project features visibility settings to the fork2884 when a project is already forked2885 creates a new poolresository after the project is moved to a new shard2886 when forking with object pools2887 when no pool exists2888 creates a new object pool2889 when a pool already exists2890 joins the object pool2891 when linking fork to an existing project2892 if project is already forked2893 does not create fork relation2894 if project is not forked2895 creates fork relation2896 flushes the forks count cache of the source project2897 if the fork is not allowed2898 does not delete the LFS objects2899 #valid_fork_targets2900 returns whatever finder returns2901 #valid_fork_target?2902 when target is not passed2903 when current user is an admin2904 is expected to be truthy2905 when current_user is not an admin2906 when target namespace is in valid fork targets2907 is expected to be truthy2908 when target namespace is not in valid fork targets2909 is expected to be falsey2910 when target is passed2911 when current user is an admin2912 is expected to be truthy2913 when current user is not an admin2914 when target namespace is in valid fork targets2915 is expected to be truthy2916 when target namespace is not in valid fork targets2917 is expected to be falsey2918DesignManagement::Design2919 behaves like AtomicInternalId2920 .has_internal_id2921 Module inclusion2922 is expected to includes the AtomicInternalId module2923 Validation2924 when presence validation is required2925 when creating an object2926 raises an error if the internal id is blank2927 when updating an object2928 raises an error if the internal id is blank2929 when presence validation is not required2930 when creating an object2931 does not raise an error if the internal id is blank (PENDING: No reason given)2932 when updating an object2933 does not raise an error if the internal id is blank (PENDING: No reason given)2934 Creating an instance2935 saves a new instance properly2936 internal id generation2937 calls InternalId.generate_next and sets internal id attribute2938 does not overwrite an existing internal id2939 when the instance has an internal ID set2940 calls InternalId.update_last_value and sets the `last_value` to that of the instance2941 unsetting the instance internal id on rollback2942 when the internal id has been changed2943 when the internal id is automatically set2944 clears it on the instance2945 when the internal id is manually set2946 does not clear it on the instance2947 when the internal id has not been changed2948 preserves the value on the instance2949 supply of internal ids2950 provides a persistent supply of IID values, sensitive to the current state2951 #reset_scope_internal_id_attribute2952 rewinds the allocated IID2953 allocates the same IID2954 behaves like a class that supports relative positioning2955 #scoped_items2956 includes all items with the same scope2957 #relative_siblings2958 includes all items with the same scope, except self2959 .move_nulls_to_end2960 moves items with null relative_position to the end2961 preserves relative position2962 moves the item near the start position when there are no existing positions2963 does not perform any moves if all items have their relative_position set2964 manages to move nulls to the end even if there is a sequence at the end2965 manages to move nulls to the end even if there is not enough space2966 manages to move nulls to the end, stacking if we cannot create enough space2967 manages to move nulls found in the relative scope2968 can move many nulls2969 does not have an N+1 issue2970 .move_nulls_to_start2971 moves items with null relative_position to the start2972 moves the item near the start position when there are no existing positions2973 preserves relative position2974 does not perform any moves if all items have their relative_position set2975 manages to move nulls to the start even if there is not enough space2976 manages to move nulls to the end, stacking if we cannot create enough space2977 #move_before2978 moves item before2979 can move the item before an item at the start2980 can move the item before an item at MIN_POSITION2981 can move the item before an item bunched up at MIN_POSITION2982 when there is no space2983 moves items correctly2984 leap-frogging to the left2985 can leap-frog STEPS times before needing to rebalance2986 there is no space to the left after moving STEPS times2987 rebalances to the right2988 #move_after2989 moves item after2990 can move the item after an item bunched up at MAX_POSITION2991 when there is no space2992 can move the item after an item at MAX_POSITION2993 moves items correctly2994 leap-frogging2995 rebalances after STEPS jumps2996 #move_to_start2997 places items at most IDEAL_DISTANCE from the start when the range is open2998 moves item to the end2999 positions the item at MIN_POSITION when there is only one space left3000 rebalances when there is already an item at the MIN_POSITION3001 deals with a run of elements at the start3002 #move_to_end3003 places items at most IDEAL_DISTANCE from the start when the range is open3004 moves item to the end3005 positions the item at MAX_POSITION when there is only one space left3006 rebalances when there is already an item at the MAX_POSITION3007 deals with a run of elements at the end3008 #move_between3009 positions item between two other3010 positions item between on top3011 positions item between to end3012 positions items even when after and before positions are the same3013 positions item in the middle of other two if distance is big enough3014 positions item closer to the middle if we are at the very top3015 positions item closer to the middle if we are at the very bottom3016 positions item in the middle of other two3017 positions item right if we pass non-sequential parameters3018 avoids N+1 queries when rebalancing other items3019 the two items are next to each other3020 behaves like moves item between3021 moves the middle item to between left and right3022 there is no space3023 behaves like moves item between3024 moves the middle item to between left and right3025 there is a bunch of items3026 handles bunches correctly3027 behaves like moves item between3028 moves the middle item to between left and right3029 relations3030 is expected to belong to project required: false3031 is expected to belong to issue required: false3032 is expected to have many actions3033 is expected to have many versions3034 is expected to have many authors3035 is expected to have many notes dependent => delete_all3036 is expected to have many user_mentions3037 #authors3038 returns unique version authors3039 validations3040 is expected to be valid3041 is expected to validate that :project cannot be empty/falsy3042 is expected to validate that :issue cannot be empty/falsy3043 is expected to validate that :filename cannot be empty/falsy3044 is expected to validate that the length of :filename is at most 2553045 is expected to validate that :filename is case-sensitively unique within the scope of :issue_id3046 validates that the extension is an image3047 validating files with .svg extension3048 allows .svg files when feature flag is enabled3049 does not allow .svg files when feature flag is disabled3050 scopes3051 .visible_at_version3052 at oldest version3053 finds the first design only3054 at version 23055 finds the first and second designs3056 at latest version3057 finds designs3058 when the argument is nil3059 finds all undeleted designs3060 one of the designs was deleted before the given version3061 is not returned3062 a re-created history3063 is returned, though other deleted events are not3064 dead or alive3065 can establish the history at any point3066 .ordered3067 sorts by relative position and ID in ascending order3068 .in_creation_order3069 sorts by ID in ascending order3070 .with_filename3071 returns correct design when passed a single filename3072 returns correct designs when passed an Array of filenames3073 .on_issue3074 returns correct designs when passed a single issue3075 returns correct designs when passed an Array of issues3076 .current3077 returns just the undeleted designs3078 .build_full_path3079 builds the full path for a design3080 #visible_in?3081 tells us when a design is visible3082 #to_ability_name3083 is expected to eq "design"3084 #status3085 the design is new3086 is expected to have attributes {:status => :new}3087 the design is current3088 is expected to have attributes {:status => :current}3089 the design has been deleted3090 is expected to have attributes {:status => :deleted}3091 #deleted?3092 the design is new3093 is falsy3094 the design is current3095 is falsy3096 the design has been deleted3097 is truthy3098 the design has been deleted, but was then re-created3099 is falsy3100 #participants3101 is expected to be empty3102 when participants can read the project3103 is expected to contain exactly #<User id:820 @user331>, #<User id:821 @user332>, and #<User id:822 @user333>3104 #new_design?3105 is false when there are versions3106 is true when there are no versions3107 is false for deleted designs3108 does not cause extra queries when actions are loaded3109 implicitly caches values3110 queries again when the clear_version_cache trigger has been called3111 causes a single query when there versions are not loaded3112 #full_path3113 builds the full path for a design3114 #diff_refs3115 has no diff ref if new3116 there are several versions3117 builds diff refs based on the first commit and it's for the design3118 there is just one version3119 builds diff refs based on the empty tree if there was only one version3120 #repository3121 is a design repository3122 #note_etag_key3123 returns a correct etag key3124 #user_notes_count3125 returns a count of user-generated notes3126 #after_note_changed3127 calls #delete_cache on DesignUserNotesCountService for non-system notes3128 .for_reference3129 avoids extra queries when calling to_reference3130 #to_reference3131 when nil argument3132 uses the simple format3133 when full is true3134 returns complete path to the issue3135 when full is false3136 returns complete path to the issue3137 when same project argument3138 returns bare reference3139 reference_pattern3140 is nil3141 link_reference_pattern3142 is not nil3143 does not match the designs tab3144 intentionally ignores filenames with any special character3145 ext: "png"3146 matches the URL3147 the file is all upper case3148 extracts the encoded filename3149 ext: "PNG"3150 matches the URL3151 the file is all upper case3152 extracts the encoded filename3153 ext: "jpg"3154 matches the URL3155 the file is all upper case3156 extracts the encoded filename3157 ext: "JPG"3158 matches the URL3159 the file is all upper case3160 extracts the encoded filename3161 ext: "jpeg"3162 matches the URL3163 the file is all upper case3164 extracts the encoded filename3165 ext: "JPEG"3166 matches the URL3167 the file is all upper case3168 extracts the encoded filename3169 ext: "gif"3170 matches the URL3171 the file is all upper case3172 extracts the encoded filename3173 ext: "GIF"3174 matches the URL3175 the file is all upper case3176 extracts the encoded filename3177 ext: "bmp"3178 matches the URL3179 the file is all upper case3180 extracts the encoded filename3181 ext: "BMP"3182 matches the URL3183 the file is all upper case3184 extracts the encoded filename3185 ext: "tiff"3186 matches the URL3187 the file is all upper case3188 extracts the encoded filename3189 ext: "TIFF"3190 matches the URL3191 the file is all upper case3192 extracts the encoded filename3193 ext: "ico"3194 matches the URL3195 the file is all upper case3196 extracts the encoded filename3197 ext: "ICO"3198 matches the URL3199 the file is all upper case3200 extracts the encoded filename3201 ext: "webp"3202 matches the URL3203 the file is all upper case3204 extracts the encoded filename3205 ext: "WEBP"3206 matches the URL3207 the file is all upper case3208 extracts the encoded filename3209 ext: "svg"3210 matches the URL3211 the file is all upper case3212 extracts the encoded filename3213 ext: "SVG"3214 matches the URL3215 the file is all upper case3216 extracts the encoded filename3217 .by_issue_id_and_filename3218 behaves like a where_composite scope3219 we pass an empty array3220 returns a null relation3221 we pass nil3222 returns a null relation3223 we pass a singleton composite id3224 finds the first result3225 we pass group of ids3226 finds all the results3227 performance3228 is not O(N)3229Integrations::Slack3230 behaves like Integrations::SlackMattermostNotifier3231 Associations3232 is expected to belong to project required: false3233 is expected to have one service_hook3234 Validations3235 when integration is active3236 is expected to validate that :webhook cannot be empty/falsy3237 behaves like issue tracker integration URL attribute3238 is expected to allow :webhook to be ‹"https://example.com"›3239 is expected not to allow :webhook to be ‹"example.com"›3240 is expected not to allow :webhook to be ‹"ftp://example.com"›3241 is expected not to allow :webhook to be ‹"herp-and-derp"›3242 when integration is inactive3243 is expected not to validate that :webhook cannot be empty/falsy3244 #execute3245 with username for slack configured3246 uses the username as an option3247 push events3248 behaves like calls the integration API with the event message3249 is expected to request POST https://8.8.8.9/ 1 time3250 with event channel3251 uses the right channel for push event3252 tag_push events3253 behaves like calls the integration API with the event message3254 is expected to request POST https://8.8.8.9/ 1 time3255 issue events3256 behaves like calls the integration API with the event message3257 is expected to request POST https://8.8.8.9/ 1 time3258 whith event channel3259 uses the right channel for issue event3260 for confidential issues3261 falls back to issue channel3262 and confidential_issue_channel is defined3263 uses the confidential issue channel when it is defined3264 merge request events3265 behaves like calls the integration API with the event message3266 is expected to request POST https://8.8.8.9/ 1 time3267 with event channel3268 uses the right channel for merge request event3269 wiki page events3270 behaves like calls the integration API with the event message3271 is expected to request POST https://8.8.8.9/ 1 time3272 with event channel3273 uses the right channel for wiki event3274 deployment events3275 behaves like calls the integration API with the event message3276 is expected to request POST https://8.8.8.9/ 1 time3277 note event3278 behaves like calls the integration API with the event message3279 is expected to request POST https://8.8.8.9/ 1 time3280 with event channel3281 uses the right channel3282 for confidential notes3283 falls back to note channel3284 and confidential_note_channel is defined3285 uses confidential channel3286 Push events3287 on default branch3288 pushing tags3289 behaves like triggered Slack integration3290 notifies about push events3291 notification enabled only for default branch3292 behaves like triggered Slack integration3293 notifies about push events3294 notification enabled only for protected branches3295 behaves like untriggered Slack integration3296 notifies about push events3297 notification enabled only for default and protected branches3298 behaves like triggered Slack integration3299 notifies about push events3300 notification enabled for all branches3301 behaves like triggered Slack integration3302 notifies about push events3303 on a protected branch3304 pushing tags3305 behaves like triggered Slack integration3306 notifies about push events3307 notification enabled only for default branch3308 behaves like untriggered Slack integration3309 notifies about push events3310 notification enabled only for protected branches3311 behaves like triggered Slack integration3312 notifies about push events3313 notification enabled only for default and protected branches3314 behaves like triggered Slack integration3315 notifies about push events3316 notification enabled for all branches3317 behaves like triggered Slack integration3318 notifies about push events3319 on a protected branch with protected branches defined using wildcards3320 pushing tags3321 behaves like triggered Slack integration3322 notifies about push events3323 notification enabled only for default branch3324 behaves like untriggered Slack integration3325 notifies about push events3326 notification enabled only for protected branches3327 behaves like triggered Slack integration3328 notifies about push events3329 notification enabled only for default and protected branches3330 behaves like triggered Slack integration3331 notifies about push events3332 notification enabled for all branches3333 behaves like triggered Slack integration3334 notifies about push events3335 on a neither protected nor default branch3336 pushing tags3337 behaves like triggered Slack integration3338 notifies about push events3339 notification enabled only for default branch3340 behaves like untriggered Slack integration3341 notifies about push events3342 notification enabled only for protected branches3343 behaves like untriggered Slack integration3344 notifies about push events3345 notification enabled only for default and protected branches3346 behaves like untriggered Slack integration3347 notifies about push events3348 notification enabled for all branches3349 behaves like triggered Slack integration3350 notifies about push events3351 Note events3352 when commit comment event executed3353 behaves like triggered Slack integration3354 notifies about commit comment events3355 when merge request comment event executed3356 behaves like triggered Slack integration3357 notifies about merge request comment events3358 when issue comment event executed3359 behaves like triggered Slack integration3360 notifies about issue comment events3361 when snippet comment event executed3362 behaves like triggered Slack integration3363 notifies about snippet comment events3364 Pipeline events3365 with succeeded pipeline3366 with default to notify_only_broken_pipelines3367 behaves like untriggered Slack integration3368 notifies about pipeline events3369 with setting notify_only_broken_pipelines to false3370 behaves like triggered Slack integration3371 notifies about pipeline events3372 with failed pipeline3373 on default branch3374 notification enabled only for default branch3375 behaves like triggered Slack integration3376 notifies about pipeline events3377 notification enabled only for protected branches3378 behaves like untriggered Slack integration3379 notifies about pipeline events3380 notification enabled only for default and protected branches3381 behaves like triggered Slack integration3382 notifies about pipeline events3383 notification enabled for all branches3384 behaves like triggered Slack integration3385 notifies about pipeline events3386 on a protected branch3387 notification enabled only for default branch3388 behaves like untriggered Slack integration3389 notifies about pipeline events3390 notification enabled only for protected branches3391 behaves like triggered Slack integration3392 notifies about pipeline events3393 notification enabled only for default and protected branches3394 behaves like triggered Slack integration3395 notifies about pipeline events3396 notification enabled for all branches3397 behaves like triggered Slack integration3398 notifies about pipeline events3399 on a protected branch with protected branches defined usin wildcards3400 notification enabled only for default branch3401 behaves like untriggered Slack integration3402 notifies about pipeline events3403 notification enabled only for protected branches3404 behaves like triggered Slack integration3405 notifies about pipeline events3406 notification enabled only for default and protected branches3407 behaves like triggered Slack integration3408 notifies about pipeline events3409 notification enabled for all branches3410 behaves like triggered Slack integration3411 notifies about pipeline events3412 on a neither protected nor default branch3413 notification enabled only for default branch3414 behaves like untriggered Slack integration3415 notifies about pipeline events3416 notification enabled only for protected branches3417 behaves like untriggered Slack integration3418 notifies about pipeline events3419 notification enabled only for default and protected branches3420 behaves like untriggered Slack integration3421 notifies about pipeline events3422 notification enabled for all branches3423 behaves like triggered Slack integration3424 notifies about pipeline events3425 Deployment events3426 behaves like triggered Slack integration3427 notifies about deployment events3428 on a protected branch3429 notification enabled only for default branch3430 behaves like untriggered Slack integration3431 notifies about pipeline events3432 notification enabled only for protected branches3433 behaves like triggered Slack integration3434 notifies about pipeline events3435 notification enabled only for default and protected branches3436 behaves like triggered Slack integration3437 notifies about pipeline events3438 notification enabled for all branches3439 behaves like triggered Slack integration3440 notifies about pipeline events3441 #execute3442 uses only known events3443 hook data includes a user object3444 event is not supported for usage log3445 does not increase the usage data counter3446 issue notification3447 behaves like increases the usage data counter3448 increases the usage data counter3449 push notification3450 behaves like increases the usage data counter3451 increases the usage data counter3452 deployment notification3453 behaves like increases the usage data counter3454 increases the usage data counter3455 wiki_page notification3456 behaves like increases the usage data counter3457 increases the usage data counter3458 merge_request notification3459 behaves like increases the usage data counter3460 increases the usage data counter3461 note notification3462 behaves like increases the usage data counter3463 increases the usage data counter3464 tag_push notification3465 behaves like increases the usage data counter3466 increases the usage data counter3467 confidential note notification3468 behaves like increases the usage data counter3469 increases the usage data counter3470 confidential issue notification3471 behaves like increases the usage data counter3472 increases the usage data counter3473 hook data does not include a user3474 does not increase the usage data counter3475ProjectStatisticsPolicy3476 #rules3477 project_type: :public, user_type: :unauthenticated, outcome: false3478 is expected to eq false3479 when the user is external3480 is expected to eq false3481 project_type: :public, user_type: :non_member, outcome: false3482 is expected to eq false3483 when the user is external3484 is expected to eq false3485 project_type: :public, user_type: :guest, outcome: false3486 is expected to eq false3487 when the user is external3488 is expected to eq false3489 project_type: :public, user_type: :reporter, outcome: true3490 is expected to eq true3491 when the user is external3492 is expected to eq true3493 project_type: :public, user_type: :developer, outcome: true3494 is expected to eq true3495 when the user is external3496 is expected to eq true3497 project_type: :public, user_type: :maintainer, outcome: true3498 is expected to eq true3499 when the user is external3500 is expected to eq true3501 project_type: :private, user_type: :unauthenticated, outcome: false3502 is expected to eq false3503 when the user is external3504 is expected to eq false3505 project_type: :private, user_type: :non_member, outcome: false3506 is expected to eq false3507 when the user is external3508 is expected to eq false3509 project_type: :private, user_type: :guest, outcome: false3510 is expected to eq false3511 when the user is external3512 is expected to eq false3513 project_type: :private, user_type: :reporter, outcome: true3514 is expected to eq true3515 when the user is external3516 is expected to eq true3517 project_type: :private, user_type: :developer, outcome: true3518 is expected to eq true3519 when the user is external3520 is expected to eq true3521 project_type: :private, user_type: :maintainer, outcome: true3522 is expected to eq true3523 when the user is external3524 is expected to eq true3525 project_type: :internal, user_type: :unauthenticated, outcome: false3526 is expected to eq false3527 when the user is external3528 is expected to eq false3529 project_type: :internal, user_type: :non_member, outcome: false3530 is expected to eq false3531 when the user is external3532 is expected to eq false3533 project_type: :internal, user_type: :guest, outcome: false3534 is expected to eq false3535 when the user is external3536 is expected to eq false3537 project_type: :internal, user_type: :reporter, outcome: true3538 is expected to eq true3539 when the user is external3540 is expected to eq true3541 project_type: :internal, user_type: :developer, outcome: true3542 is expected to eq true3543 when the user is external3544 is expected to eq true3545 project_type: :internal, user_type: :maintainer, outcome: true3546 is expected to eq true3547 when the user is external3548 is expected to eq true3549Tooling::Danger::ProjectHelper3550 #categories_for_file3551 path: "usage_data.rb", expected_categories: [:database, :backend, :product_intelligence]3552 is expected to eq [:database, :backend, :product_intelligence]3553 path: "doc/foo.md", expected_categories: [:docs]3554 is expected to eq [:docs]3555 path: "CONTRIBUTING.md", expected_categories: [:docs]3556 is expected to eq [:docs]3557 path: "LICENSE", expected_categories: [:docs]3558 is expected to eq [:docs]3559 path: "MAINTENANCE.md", expected_categories: [:docs]3560 is expected to eq [:docs]3561 path: "PHILOSOPHY.md", expected_categories: [:docs]3562 is expected to eq [:docs]3563 path: "PROCESS.md", expected_categories: [:docs]3564 is expected to eq [:docs]3565 path: "README.md", expected_categories: [:docs]3566 is expected to eq [:docs]3567 path: "ee/doc/foo", expected_categories: [:unknown]3568 is expected to eq [:unknown]3569 path: "ee/README", expected_categories: [:unknown]3570 is expected to eq [:unknown]3571 path: "app/assets/foo", expected_categories: [:frontend]3572 is expected to eq [:frontend]3573 path: "app/views/foo", expected_categories: [:frontend, :backend]3574 is expected to eq [:frontend, :backend]3575 path: "public/foo", expected_categories: [:frontend]3576 is expected to eq [:frontend]3577 path: "scripts/frontend/foo", expected_categories: [:frontend]3578 is expected to eq [:frontend]3579 path: "spec/frontend/bar", expected_categories: [:frontend]3580 is expected to eq [:frontend]3581 path: "spec/frontend_integration/bar", expected_categories: [:frontend]3582 is expected to eq [:frontend]3583 path: "vendor/assets/foo", expected_categories: [:frontend]3584 is expected to eq [:frontend]3585 path: "babel.config.js", expected_categories: [:frontend]3586 is expected to eq [:frontend]3587 path: "jest.config.js", expected_categories: [:frontend]3588 is expected to eq [:frontend]3589 path: "package.json", expected_categories: [:frontend]3590 is expected to eq [:frontend]3591 path: "yarn.lock", expected_categories: [:frontend]3592 is expected to eq [:frontend]3593 path: "config/foo.js", expected_categories: [:frontend]3594 is expected to eq [:frontend]3595 path: "config/deep/foo.js", expected_categories: [:frontend]3596 is expected to eq [:frontend]3597 path: "ee/app/assets/foo", expected_categories: [:frontend]3598 is expected to eq [:frontend]3599 path: "ee/app/views/foo", expected_categories: [:frontend, :backend]3600 is expected to eq [:frontend, :backend]3601 path: "ee/spec/frontend/bar", expected_categories: [:frontend]3602 is expected to eq [:frontend]3603 path: "ee/spec/frontend_integration/bar", expected_categories: [:frontend]3604 is expected to eq [:frontend]3605 path: ".gitlab/ci/frontend.gitlab-ci.yml", expected_categories: [:frontend, :tooling]3606 is expected to eq [:frontend, :tooling]3607 path: "app/models/foo", expected_categories: [:backend]3608 is expected to eq [:backend]3609 path: "bin/foo", expected_categories: [:backend]3610 is expected to eq [:backend]3611 path: "config/foo", expected_categories: [:backend]3612 is expected to eq [:backend]3613 path: "lib/foo", expected_categories: [:backend]3614 is expected to eq [:backend]3615 path: "rubocop/foo", expected_categories: [:backend]3616 is expected to eq [:backend]3617 path: ".rubocop.yml", expected_categories: [:backend]3618 is expected to eq [:backend]3619 path: ".rubocop_todo.yml", expected_categories: [:backend]3620 is expected to eq [:backend]3621 path: ".rubocop_todo/cop/name.yml", expected_categories: [:backend]3622 is expected to eq [:backend]3623 path: "spec/foo", expected_categories: [:backend]3624 is expected to eq [:backend]3625 path: "spec/foo/bar", expected_categories: [:backend]3626 is expected to eq [:backend]3627 path: "ee/app/foo", expected_categories: [:backend]3628 is expected to eq [:backend]3629 path: "ee/bin/foo", expected_categories: [:backend]3630 is expected to eq [:backend]3631 path: "ee/spec/foo", expected_categories: [:backend]3632 is expected to eq [:backend]3633 path: "ee/spec/foo/bar", expected_categories: [:backend]3634 is expected to eq [:backend]3635 path: "spec/migrations/foo", expected_categories: [:database]3636 is expected to eq [:database]3637 path: "ee/spec/migrations/foo", expected_categories: [:database]3638 is expected to eq [:database]3639 path: "spec/features/foo", expected_categories: [:test]3640 is expected to eq [:test]3641 path: "ee/spec/features/foo", expected_categories: [:test]3642 is expected to eq [:test]3643 path: "spec/support/shared_examples/features/foo", expected_categories: [:test]3644 is expected to eq [:test]3645 path: "ee/spec/support/shared_examples/features/foo", expected_categories: [:test]3646 is expected to eq [:test]3647 path: "spec/support/shared_contexts/features/foo", expected_categories: [:test]3648 is expected to eq [:test]3649 path: "ee/spec/support/shared_contexts/features/foo", expected_categories: [:test]3650 is expected to eq [:test]3651 path: "spec/support/helpers/features/foo", expected_categories: [:test]3652 is expected to eq [:test]3653 path: "ee/spec/support/helpers/features/foo", expected_categories: [:test]3654 is expected to eq [:test]3655 path: "generator_templates/foo", expected_categories: [:backend]3656 is expected to eq [:backend]3657 path: "vendor/languages.yml", expected_categories: [:backend]3658 is expected to eq [:backend]3659 path: "file_hooks/examples/", expected_categories: [:backend]3660 is expected to eq [:backend]3661 path: "Gemfile", expected_categories: [:backend]3662 is expected to eq [:backend]3663 path: "Gemfile.lock", expected_categories: [:backend]3664 is expected to eq [:backend]3665 path: "Rakefile", expected_categories: [:backend]3666 is expected to eq [:backend]3667 path: "FOO_VERSION", expected_categories: [:backend]3668 is expected to eq [:backend]3669 path: "Dangerfile", expected_categories: [:tooling]3670 is expected to eq [:tooling]3671 path: "danger/bundle_size/Dangerfile", expected_categories: [:tooling]3672 is expected to eq [:tooling]3673 path: "ee/danger/bundle_size/Dangerfile", expected_categories: [:tooling]3674 is expected to eq [:tooling]3675 path: "danger/bundle_size/", expected_categories: [:tooling]3676 is expected to eq [:tooling]3677 path: "ee/danger/bundle_size/", expected_categories: [:tooling]3678 is expected to eq [:tooling]3679 path: ".gitlab-ci.yml", expected_categories: [:tooling]3680 is expected to eq [:tooling]3681 path: ".gitlab/ci/cng.gitlab-ci.yml", expected_categories: [:tooling]3682 is expected to eq [:tooling]3683 path: ".gitlab/ci/ee-specific-checks.gitlab-ci.yml", expected_categories: [:tooling]3684 is expected to eq [:tooling]3685 path: "scripts/foo", expected_categories: [:tooling]3686 is expected to eq [:tooling]3687 path: "tooling/danger/foo", expected_categories: [:tooling]3688 is expected to eq [:tooling]3689 path: "ee/tooling/danger/foo", expected_categories: [:tooling]3690 is expected to eq [:tooling]3691 path: "lefthook.yml", expected_categories: [:tooling]3692 is expected to eq [:tooling]3693 path: ".editorconfig", expected_categories: [:tooling]3694 is expected to eq [:tooling]3695 path: "tooling/bin/find_foss_tests", expected_categories: [:tooling]3696 is expected to eq [:tooling]3697 path: ".codeclimate.yml", expected_categories: [:tooling]3698 is expected to eq [:tooling]3699 path: ".gitlab/CODEOWNERS", expected_categories: [:tooling]3700 is expected to eq [:tooling]3701 path: "lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml", expected_categories: [:ci_template]3702 is expected to eq [:ci_template]3703 path: "lib/gitlab/ci/templates/dotNET-Core.yml", expected_categories: [:ci_template]3704 is expected to eq [:ci_template]3705 path: "ee/FOO_VERSION", expected_categories: [:unknown]3706 is expected to eq [:unknown]3707 path: "db/schema.rb", expected_categories: [:database]3708 is expected to eq [:database]3709 path: "db/structure.sql", expected_categories: [:database]3710 is expected to eq [:database]3711 path: "db/migrate/foo", expected_categories: [:database, :migration]3712 is expected to eq [:database, :migration]3713 path: "db/post_migrate/foo", expected_categories: [:database, :migration]3714 is expected to eq [:database, :migration]3715 path: "ee/db/geo/migrate/foo", expected_categories: [:database, :migration]3716 is expected to eq [:database, :migration]3717 path: "ee/db/geo/post_migrate/foo", expected_categories: [:database, :migration]3718 is expected to eq [:database, :migration]3719 path: "app/models/project_authorization.rb", expected_categories: [:database, :backend]3720 is expected to eq [:database, :backend]3721 path: "app/services/users/refresh_authorized_projects_service.rb", expected_categories: [:database, :backend]3722 is expected to eq [:database, :backend]3723 path: "app/services/authorized_project_update/find_records_due_for_refresh_service.rb", expected_categories: [:database, :backend]3724 is expected to eq [:database, :backend]3725 path: "lib/gitlab/background_migration.rb", expected_categories: [:database, :backend]3726 is expected to eq [:database, :backend]3727 path: "lib/gitlab/background_migration/foo", expected_categories: [:database, :backend]3728 is expected to eq [:database, :backend]3729 path: "ee/lib/gitlab/background_migration/foo", expected_categories: [:database, :backend]3730 is expected to eq [:database, :backend]3731 path: "lib/gitlab/database.rb", expected_categories: [:database, :backend]3732 is expected to eq [:database, :backend]3733 path: "lib/gitlab/database/foo", expected_categories: [:database, :backend]3734 is expected to eq [:database, :backend]3735 path: "ee/lib/gitlab/database/foo", expected_categories: [:database, :backend]3736 is expected to eq [:database, :backend]3737 path: "lib/gitlab/github_import.rb", expected_categories: [:database, :backend]3738 is expected to eq [:database, :backend]3739 path: "lib/gitlab/github_import/foo", expected_categories: [:database, :backend]3740 is expected to eq [:database, :backend]3741 path: "lib/gitlab/sql/foo", expected_categories: [:database, :backend]3742 is expected to eq [:database, :backend]3743 path: "rubocop/cop/migration/foo", expected_categories: [:database]3744 is expected to eq [:database]3745 path: "db/fixtures/foo.rb", expected_categories: [:backend]3746 is expected to eq [:backend]3747 path: "ee/db/fixtures/foo.rb", expected_categories: [:backend]3748 is expected to eq [:backend]3749 path: "qa/foo", expected_categories: [:qa]3750 is expected to eq [:qa]3751 path: "ee/qa/foo", expected_categories: [:qa]3752 is expected to eq [:qa]3753 path: "workhorse/main.go", expected_categories: [:workhorse]3754 is expected to eq [:workhorse]3755 path: "workhorse/internal/upload/upload.go", expected_categories: [:workhorse]3756 is expected to eq [:workhorse]3757 path: "locale/gitlab.pot", expected_categories: [:none]3758 is expected to eq [:none]3759 path: "FOO", expected_categories: [:unknown]3760 is expected to eq [:unknown]3761 path: "foo", expected_categories: [:unknown]3762 is expected to eq [:unknown]3763 path: "foo/bar.rb", expected_categories: [:backend]3764 is expected to eq [:backend]3765 path: "foo/bar.js", expected_categories: [:frontend]3766 is expected to eq [:frontend]3767 path: "foo/bar.txt", expected_categories: [:none]3768 is expected to eq [:none]3769 path: "foo/bar.md", expected_categories: [:none]3770 is expected to eq [:none]3771 path: "ee/config/metrics/counts_7d/20210216174919_g_analytics_issues_weekly.yml", expected_categories: [:product_intelligence]3772 is expected to eq [:product_intelligence]3773 path: "lib/gitlab/usage_data_counters/aggregated_metrics/common.yml", expected_categories: [:product_intelligence]3774 is expected to eq [:product_intelligence]3775 path: "lib/gitlab/usage_data_counters/hll_redis_counter.rb", expected_categories: [:backend, :product_intelligence]3776 is expected to eq [:backend, :product_intelligence]3777 path: "lib/gitlab/tracking.rb", expected_categories: [:backend, :product_intelligence]3778 is expected to eq [:backend, :product_intelligence]3779 path: "lib/gitlab/usage/service_ping_report.rb", expected_categories: [:backend, :product_intelligence]3780 is expected to eq [:backend, :product_intelligence]3781 path: "lib/gitlab/usage/metrics/key_path_processor.rb", expected_categories: [:backend, :product_intelligence]3782 is expected to eq [:backend, :product_intelligence]3783 path: "spec/lib/gitlab/tracking_spec.rb", expected_categories: [:backend, :product_intelligence]3784 is expected to eq [:backend, :product_intelligence]3785 path: "app/helpers/tracking_helper.rb", expected_categories: [:backend, :product_intelligence]3786 is expected to eq [:backend, :product_intelligence]3787 path: "spec/helpers/tracking_helper_spec.rb", expected_categories: [:backend, :product_intelligence]3788 is expected to eq [:backend, :product_intelligence]3789 path: "lib/generators/rails/usage_metric_definition_generator.rb", expected_categories: [:backend, :product_intelligence]3790 is expected to eq [:backend, :product_intelligence]3791 path: "spec/lib/generators/usage_metric_definition_generator_spec.rb", expected_categories: [:backend, :product_intelligence]3792 is expected to eq [:backend, :product_intelligence]3793 path: "config/metrics/schema.json", expected_categories: [:product_intelligence]3794 is expected to eq [:product_intelligence]3795 path: "app/assets/javascripts/tracking/foo.js", expected_categories: [:frontend, :product_intelligence]3796 is expected to eq [:frontend, :product_intelligence]3797 path: "spec/frontend/tracking/foo.js", expected_categories: [:frontend, :product_intelligence]3798 is expected to eq [:frontend, :product_intelligence]3799 path: "spec/frontend/tracking_spec.js", expected_categories: [:frontend, :product_intelligence]3800 is expected to eq [:frontend, :product_intelligence]3801 path: "lib/gitlab/usage_database/foo.rb", expected_categories: [:backend]3802 is expected to eq [:backend]3803 path: "config/metrics/counts_7d/test_metric.yml", expected_categories: [:product_intelligence]3804 is expected to eq [:product_intelligence]3805 path: "config/events/snowplow_event.yml", expected_categories: [:product_intelligence]3806 is expected to eq [:product_intelligence]3807 path: "config/metrics/schema.json", expected_categories: [:product_intelligence]3808 is expected to eq [:product_intelligence]3809 path: "doc/api/usage_data.md", expected_categories: [:product_intelligence]3810 is expected to eq [:product_intelligence]3811 path: "spec/lib/gitlab/usage_data_spec.rb", expected_categories: [:product_intelligence]3812 is expected to eq [:product_intelligence]3813 path: "spec/lib/gitlab/usage/service_ping_report.rb", expected_categories: [:backend, :product_intelligence]3814 is expected to eq [:backend, :product_intelligence]3815 path: "spec/lib/gitlab/usage/metrics/key_path_processor.rb", expected_categories: [:backend, :product_intelligence]3816 is expected to eq [:backend, :product_intelligence]3817 path: "app/models/integration.rb", expected_categories: [:integrations_be, :backend]3818 is expected to eq [:integrations_be, :backend]3819 path: "ee/app/models/integrations/github.rb", expected_categories: [:integrations_be, :backend]3820 is expected to eq [:integrations_be, :backend]3821 path: "ee/app/models/ee/integrations/jira.rb", expected_categories: [:integrations_be, :backend]3822 is expected to eq [:integrations_be, :backend]3823 path: "app/models/integrations/chat_message/pipeline_message.rb", expected_categories: [:integrations_be, :backend]3824 is expected to eq [:integrations_be, :backend]3825 path: "app/models/jira_connect_subscription.rb", expected_categories: [:integrations_be, :backend]3826 is expected to eq [:integrations_be, :backend]3827 path: "app/models/hooks/service_hook.rb", expected_categories: [:integrations_be, :backend]3828 is expected to eq [:integrations_be, :backend]3829 path: "ee/app/models/ee/hooks/system_hook.rb", expected_categories: [:integrations_be, :backend]3830 is expected to eq [:integrations_be, :backend]3831 path: "app/services/concerns/integrations/project_test_data.rb", expected_categories: [:integrations_be, :backend]3832 is expected to eq [:integrations_be, :backend]3833 path: "ee/app/services/ee/integrations/test/project_service.rb", expected_categories: [:integrations_be, :backend]3834 is expected to eq [:integrations_be, :backend]3835 path: "app/controllers/concerns/integrations/actions.rb", expected_categories: [:integrations_be, :backend]3836 is expected to eq [:integrations_be, :backend]3837 path: "ee/app/controllers/concerns/ee/integrations/params.rb", expected_categories: [:integrations_be, :backend]3838 is expected to eq [:integrations_be, :backend]3839 path: "ee/app/controllers/projects/integrations/jira/issues_controller.rb", expected_categories: [:integrations_be, :backend]3840 is expected to eq [:integrations_be, :backend]3841 path: "app/controllers/projects/hooks_controller.rb", expected_categories: [:integrations_be, :backend]3842 is expected to eq [:integrations_be, :backend]3843 path: "app/controllers/admin/hook_logs_controller.rb", expected_categories: [:integrations_be, :backend]3844 is expected to eq [:integrations_be, :backend]3845 path: "app/controllers/groups/settings/integrations_controller.rb", expected_categories: [:integrations_be, :backend]3846 is expected to eq [:integrations_be, :backend]3847 path: "app/controllers/jira_connect/branches_controller.rb", expected_categories: [:integrations_be, :backend]3848 is expected to eq [:integrations_be, :backend]3849 path: "app/controllers/oauth/jira/authorizations_controller.rb", expected_categories: [:integrations_be, :backend]3850 is expected to eq [:integrations_be, :backend]3851 path: "ee/app/finders/projects/integrations/jira/by_ids_finder.rb", expected_categories: [:integrations_be, :database, :backend]3852 is expected to eq [:integrations_be, :database, :backend]3853 path: "app/workers/jira_connect/sync_merge_request_worker.rb", expected_categories: [:integrations_be, :backend]3854 is expected to eq [:integrations_be, :backend]3855 path: "app/workers/propagate_integration_inherit_worker.rb", expected_categories: [:integrations_be, :backend]3856 is expected to eq [:integrations_be, :backend]3857 path: "app/workers/web_hooks/log_execution_worker.rb", expected_categories: [:integrations_be, :backend]3858 is expected to eq [:integrations_be, :backend]3859 path: "app/workers/web_hook_worker.rb", expected_categories: [:integrations_be, :backend]3860 is expected to eq [:integrations_be, :backend]3861 path: "app/workers/project_service_worker.rb", expected_categories: [:integrations_be, :backend]3862 is expected to eq [:integrations_be, :backend]3863 path: "lib/atlassian/jira_connect/serializers/commit_entity.rb", expected_categories: [:integrations_be, :backend]3864 is expected to eq [:integrations_be, :backend]3865 path: "lib/api/entities/project_integration.rb", expected_categories: [:integrations_be, :backend]3866 is expected to eq [:integrations_be, :backend]3867 path: "lib/gitlab/hook_data/note_builder.rb", expected_categories: [:integrations_be, :backend]3868 is expected to eq [:integrations_be, :backend]3869 path: "lib/gitlab/data_builder/note.rb", expected_categories: [:integrations_be, :backend]3870 is expected to eq [:integrations_be, :backend]3871 path: "lib/gitlab/web_hooks/recursion_detection.rb", expected_categories: [:integrations_be, :backend]3872 is expected to eq [:integrations_be, :backend]3873 path: "ee/lib/ee/gitlab/integrations/sti_type.rb", expected_categories: [:integrations_be, :backend]3874 is expected to eq [:integrations_be, :backend]3875 path: "ee/lib/ee/api/helpers/integrations_helpers.rb", expected_categories: [:integrations_be, :backend]3876 is expected to eq [:integrations_be, :backend]3877 path: "ee/app/serializers/integrations/jira_serializers/issue_entity.rb", expected_categories: [:integrations_be, :backend]3878 is expected to eq [:integrations_be, :backend]3879 path: "app/serializers/jira_connect/app_data_serializer.rb", expected_categories: [:integrations_be, :backend]3880 is expected to eq [:integrations_be, :backend]3881 path: "lib/api/github/entities.rb", expected_categories: [:integrations_be, :backend]3882 is expected to eq [:integrations_be, :backend]3883 path: "lib/api/v3/github.rb", expected_categories: [:integrations_be, :backend]3884 is expected to eq [:integrations_be, :backend]3885 path: "app/models/clusters/integrations/elastic_stack.rb", expected_categories: [:backend]3886 is expected to eq [:backend]3887 path: "app/controllers/clusters/integrations_controller.rb", expected_categories: [:backend]3888 is expected to eq [:backend]3889 path: "app/services/clusters/integrations/prometheus_health_check_service.rb", expected_categories: [:backend]3890 is expected to eq [:backend]3891 path: "app/graphql/types/alert_management/integration_type.rb", expected_categories: [:backend]3892 is expected to eq [:backend]3893 path: "app/views/jira_connect/branches/new.html.haml", expected_categories: [:integrations_fe, :frontend]3894 is expected to eq [:integrations_fe, :frontend]3895 path: "app/views/layouts/jira_connect.html.haml", expected_categories: [:integrations_fe, :frontend]3896 is expected to eq [:integrations_fe, :frontend]3897 path: "app/assets/javascripts/jira_connect/branches/pages/index.vue", expected_categories: [:integrations_fe, :frontend]3898 is expected to eq [:integrations_fe, :frontend]3899 path: "ee/app/views/projects/integrations/jira/issues/show.html.haml", expected_categories: [:integrations_fe, :frontend]3900 is expected to eq [:integrations_fe, :frontend]3901 path: "ee/app/assets/javascripts/integrations/zentao/issues_list/graphql/queries/get_zentao_issues.query.graphql", expected_categories: [:integrations_fe, :frontend]3902 is expected to eq [:integrations_fe, :frontend]3903 path: "app/assets/javascripts/pages/projects/settings/integrations/show/index.js", expected_categories: [:integrations_fe, :frontend]3904 is expected to eq [:integrations_fe, :frontend]3905 path: "ee/app/assets/javascripts/pages/groups/hooks/index.js", expected_categories: [:integrations_fe, :frontend]3906 is expected to eq [:integrations_fe, :frontend]3907 path: "app/views/clusters/clusters/_integrations_tab.html.haml", expected_categories: [:frontend, :backend]3908 is expected to eq [:frontend, :backend]3909 path: "app/assets/javascripts/alerts_settings/graphql/fragments/integration_item.fragment.graphql", expected_categories: [:frontend]3910 is expected to eq [:frontend]3911 path: "app/assets/javascripts/filtered_search/droplab/hook_input.js", expected_categories: [:frontend]3912 is expected to eq [:frontend]3913 path: "app/views/layouts/header/_default.html.haml", expected_categories: [:frontend, :backend]3914 is expected to eq [:frontend, :backend]3915 path: "app/views/layouts/header/_default.html.erb", expected_categories: [:frontend, :backend]3916 is expected to eq [:frontend, :backend]3917 having specific changes3918 expected_categories: [:product_intelligence], patch: "+data-track-action", changed_files: ["components/welcome.vue"]3919 has the correct categories3920 expected_categories: [:product_intelligence], patch: "+ data: { track_label:", changed_files: ["admin/groups/_form.html.haml"]3921 has the correct categories3922 expected_categories: [:product_intelligence], patch: "+ Gitlab::Tracking.event", changed_files: ["dashboard/todos_controller.rb", "admin/groups/_form.html.haml"]3923 has the correct categories3924 expected_categories: [:database, :backend, :product_intelligence], patch: "+ count(User.active)", changed_files: ["usage_data.rb", "lib/gitlab/usage_data.rb", "ee/lib/ee/gitlab/usage_data.rb"]3925 has the correct categories3926 expected_categories: [:database, :backend, :product_intelligence], patch: "+ estimate_batch_distinct_count(User.active)", changed_files: ["usage_data.rb"]3927 has the correct categories3928 expected_categories: [:backend, :product_intelligence], patch: "+ alt_usage_data(User.active)", changed_files: ["lib/gitlab/usage_data.rb"]3929 has the correct categories3930 expected_categories: [:backend, :product_intelligence], patch: "+ count(User.active)", changed_files: ["lib/gitlab/usage_data/topology.rb"]3931 has the correct categories3932 expected_categories: [:backend, :product_intelligence], patch: "+ foo_count(User.active)", changed_files: ["lib/gitlab/usage_data.rb"]3933 has the correct categories3934 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["user.rb"]3935 has the correct categories3936 expected_categories: [:integrations_be, :database, :migration], patch: "+ add_column :integrations, :foo, :text", changed_files: ["db/migrate/foo.rb"]3937 has the correct categories3938 expected_categories: [:integrations_be, :database, :migration], patch: "+ create_table :zentao_tracker_data do |t|", changed_files: ["ee/db/post_migrate/foo.rb"]3939 has the correct categories3940 expected_categories: [:integrations_be, :backend], patch: "+ Integrations::Foo", changed_files: ["app/foo/bar.rb"]3941 has the correct categories3942 expected_categories: [:integrations_be, :backend], patch: "+ project.execute_hooks(foo, :bar)", changed_files: ["ee/lib/ee/foo.rb"]3943 has the correct categories3944 expected_categories: [:integrations_be, :backend], patch: "+ project.execute_integrations(foo, :bar)", changed_files: ["app/foo.rb"]3945 has the correct categories3946 #file_lines3947 returns the chomped file lines3948IntegrationsHelper3949 #integration_event_title3950 behaves like is defined for each integration event3951 when integration is buildkite, event is push3952 is expected not to be nil3953 when integration is buildkite, event is merge_request3954 is expected not to be nil3955 when integration is buildkite, event is tag_push3956 is expected not to be nil3957 when integration is discord, event is push3958 is expected not to be nil3959 when integration is discord, event is issue3960 is expected not to be nil3961 when integration is discord, event is confidential_issue3962 is expected not to be nil3963 when integration is discord, event is merge_request3964 is expected not to be nil3965 when integration is discord, event is note3966 is expected not to be nil3967 when integration is discord, event is confidential_note3968 is expected not to be nil3969 when integration is discord, event is tag_push3970 is expected not to be nil3971 when integration is discord, event is pipeline3972 is expected not to be nil3973 when integration is discord, event is wiki_page3974 is expected not to be nil3975 when integration is drone_ci, event is push3976 is expected not to be nil3977 when integration is drone_ci, event is merge_request3978 is expected not to be nil3979 when integration is drone_ci, event is tag_push3980 is expected not to be nil3981 when integration is emails_on_push, event is push3982 is expected not to be nil3983 when integration is emails_on_push, event is tag_push3984 is expected not to be nil3985 when integration is hangouts_chat, event is push3986 is expected not to be nil3987 when integration is hangouts_chat, event is issue3988 is expected not to be nil3989 when integration is hangouts_chat, event is confidential_issue3990 is expected not to be nil3991 when integration is hangouts_chat, event is merge_request3992 is expected not to be nil3993 when integration is hangouts_chat, event is note3994 is expected not to be nil3995 when integration is hangouts_chat, event is confidential_note3996 is expected not to be nil3997 when integration is hangouts_chat, event is tag_push3998 is expected not to be nil3999 when integration is hangouts_chat, event is pipeline4000 is expected not to be nil4001 when integration is hangouts_chat, event is wiki_page4002 is expected not to be nil4003 when integration is jenkins, event is push4004 is expected not to be nil4005 when integration is jenkins, event is merge_request4006 is expected not to be nil4007 when integration is jenkins, event is tag_push4008 is expected not to be nil4009 when integration is jira, event is commit4010 is expected not to be nil4011 when integration is jira, event is merge_request4012 is expected not to be nil4013 when integration is mattermost, event is push4014 is expected not to be nil4015 when integration is mattermost, event is issue4016 is expected not to be nil4017 when integration is mattermost, event is confidential_issue4018 is expected not to be nil4019 when integration is mattermost, event is merge_request4020 is expected not to be nil4021 when integration is mattermost, event is note4022 is expected not to be nil4023 when integration is mattermost, event is confidential_note4024 is expected not to be nil4025 when integration is mattermost, event is tag_push4026 is expected not to be nil4027 when integration is mattermost, event is pipeline4028 is expected not to be nil4029 when integration is mattermost, event is wiki_page4030 is expected not to be nil4031 when integration is mattermost, event is deployment4032 is expected not to be nil4033 when integration is mattermost, event is vulnerability4034 is expected not to be nil4035 when integration is microsoft_teams, event is push4036 is expected not to be nil4037 when integration is microsoft_teams, event is issue4038 is expected not to be nil4039 when integration is microsoft_teams, event is confidential_issue4040 is expected not to be nil4041 when integration is microsoft_teams, event is merge_request4042 is expected not to be nil4043 when integration is microsoft_teams, event is note4044 is expected not to be nil4045 when integration is microsoft_teams, event is confidential_note4046 is expected not to be nil4047 when integration is microsoft_teams, event is tag_push4048 is expected not to be nil4049 when integration is microsoft_teams, event is pipeline4050 is expected not to be nil4051 when integration is microsoft_teams, event is wiki_page4052 is expected not to be nil4053 when integration is packagist, event is push4054 is expected not to be nil4055 when integration is packagist, event is merge_request4056 is expected not to be nil4057 when integration is packagist, event is tag_push4058 is expected not to be nil4059 when integration is slack, event is push4060 is expected not to be nil4061 when integration is slack, event is issue4062 is expected not to be nil4063 when integration is slack, event is confidential_issue4064 is expected not to be nil4065 when integration is slack, event is merge_request4066 is expected not to be nil4067 when integration is slack, event is note4068 is expected not to be nil4069 when integration is slack, event is confidential_note4070 is expected not to be nil4071 when integration is slack, event is tag_push4072 is expected not to be nil4073 when integration is slack, event is pipeline4074 is expected not to be nil4075 when integration is slack, event is wiki_page4076 is expected not to be nil4077 when integration is slack, event is deployment4078 is expected not to be nil4079 when integration is slack, event is vulnerability4080 is expected not to be nil4081 when integration is slack, event is alert4082 is expected not to be nil4083 when integration is teamcity, event is push4084 is expected not to be nil4085 when integration is teamcity, event is merge_request4086 is expected not to be nil4087 when integration is unify_circuit, event is push4088 is expected not to be nil4089 when integration is unify_circuit, event is issue4090 is expected not to be nil4091 when integration is unify_circuit, event is confidential_issue4092 is expected not to be nil4093 when integration is unify_circuit, event is merge_request4094 is expected not to be nil4095 when integration is unify_circuit, event is note4096 is expected not to be nil4097 when integration is unify_circuit, event is confidential_note4098 is expected not to be nil4099 when integration is unify_circuit, event is tag_push4100 is expected not to be nil4101 when integration is unify_circuit, event is pipeline4102 is expected not to be nil4103 when integration is unify_circuit, event is wiki_page4104 is expected not to be nil4105 when integration is webex_teams, event is push4106 is expected not to be nil4107 when integration is webex_teams, event is issue4108 is expected not to be nil4109 when integration is webex_teams, event is confidential_issue4110 is expected not to be nil4111 when integration is webex_teams, event is merge_request4112 is expected not to be nil4113 when integration is webex_teams, event is note4114 is expected not to be nil4115 when integration is webex_teams, event is confidential_note4116 is expected not to be nil4117 when integration is webex_teams, event is tag_push4118 is expected not to be nil4119 when integration is webex_teams, event is pipeline4120 is expected not to be nil4121 when integration is webex_teams, event is wiki_page4122 is expected not to be nil4123 #integration_event_description4124 behaves like is defined for each integration event4125 when integration is buildkite, event is push4126 is expected not to be nil4127 when integration is buildkite, event is merge_request4128 is expected not to be nil4129 when integration is buildkite, event is tag_push4130 is expected not to be nil4131 when integration is discord, event is push4132 is expected not to be nil4133 when integration is discord, event is issue4134 is expected not to be nil4135 when integration is discord, event is confidential_issue4136 is expected not to be nil4137 when integration is discord, event is merge_request4138 is expected not to be nil4139 when integration is discord, event is note4140 is expected not to be nil4141 when integration is discord, event is confidential_note4142 is expected not to be nil4143 when integration is discord, event is tag_push4144 is expected not to be nil4145 when integration is discord, event is pipeline4146 is expected not to be nil4147 when integration is discord, event is wiki_page4148 is expected not to be nil4149 when integration is drone_ci, event is push4150 is expected not to be nil4151 when integration is drone_ci, event is merge_request4152 is expected not to be nil4153 when integration is drone_ci, event is tag_push4154 is expected not to be nil4155 when integration is emails_on_push, event is push4156 is expected not to be nil4157 when integration is emails_on_push, event is tag_push4158 is expected not to be nil4159 when integration is hangouts_chat, event is push4160 is expected not to be nil4161 when integration is hangouts_chat, event is issue4162 is expected not to be nil4163 when integration is hangouts_chat, event is confidential_issue4164 is expected not to be nil4165 when integration is hangouts_chat, event is merge_request4166 is expected not to be nil4167 when integration is hangouts_chat, event is note4168 is expected not to be nil4169 when integration is hangouts_chat, event is confidential_note4170 is expected not to be nil4171 when integration is hangouts_chat, event is tag_push4172 is expected not to be nil4173 when integration is hangouts_chat, event is pipeline4174 is expected not to be nil4175 when integration is hangouts_chat, event is wiki_page4176 is expected not to be nil4177 when integration is jenkins, event is push4178 is expected not to be nil4179 when integration is jenkins, event is merge_request4180 is expected not to be nil4181 when integration is jenkins, event is tag_push4182 is expected not to be nil4183 when integration is jira, event is commit4184 is expected not to be nil4185 when integration is jira, event is merge_request4186 is expected not to be nil4187 when integration is mattermost, event is push4188 is expected not to be nil4189 when integration is mattermost, event is issue4190 is expected not to be nil4191 when integration is mattermost, event is confidential_issue4192 is expected not to be nil4193 when integration is mattermost, event is merge_request4194 is expected not to be nil4195 when integration is mattermost, event is note4196 is expected not to be nil4197 when integration is mattermost, event is confidential_note4198 is expected not to be nil4199 when integration is mattermost, event is tag_push4200 is expected not to be nil4201 when integration is mattermost, event is pipeline4202 is expected not to be nil4203 when integration is mattermost, event is wiki_page4204 is expected not to be nil4205 when integration is mattermost, event is deployment4206 is expected not to be nil4207 when integration is mattermost, event is vulnerability4208 is expected not to be nil4209 when integration is microsoft_teams, event is push4210 is expected not to be nil4211 when integration is microsoft_teams, event is issue4212 is expected not to be nil4213 when integration is microsoft_teams, event is confidential_issue4214 is expected not to be nil4215 when integration is microsoft_teams, event is merge_request4216 is expected not to be nil4217 when integration is microsoft_teams, event is note4218 is expected not to be nil4219 when integration is microsoft_teams, event is confidential_note4220 is expected not to be nil4221 when integration is microsoft_teams, event is tag_push4222 is expected not to be nil4223 when integration is microsoft_teams, event is pipeline4224 is expected not to be nil4225 when integration is microsoft_teams, event is wiki_page4226 is expected not to be nil4227 when integration is packagist, event is push4228 is expected not to be nil4229 when integration is packagist, event is merge_request4230 is expected not to be nil4231 when integration is packagist, event is tag_push4232 is expected not to be nil4233 when integration is slack, event is push4234 is expected not to be nil4235 when integration is slack, event is issue4236 is expected not to be nil4237 when integration is slack, event is confidential_issue4238 is expected not to be nil4239 when integration is slack, event is merge_request4240 is expected not to be nil4241 when integration is slack, event is note4242 is expected not to be nil4243 when integration is slack, event is confidential_note4244 is expected not to be nil4245 when integration is slack, event is tag_push4246 is expected not to be nil4247 when integration is slack, event is pipeline4248 is expected not to be nil4249 when integration is slack, event is wiki_page4250 is expected not to be nil4251 when integration is slack, event is deployment4252 is expected not to be nil4253 when integration is slack, event is vulnerability4254 is expected not to be nil4255 when integration is slack, event is alert4256 is expected not to be nil4257 when integration is teamcity, event is push4258 is expected not to be nil4259 when integration is teamcity, event is merge_request4260 is expected not to be nil4261 when integration is unify_circuit, event is push4262 is expected not to be nil4263 when integration is unify_circuit, event is issue4264 is expected not to be nil4265 when integration is unify_circuit, event is confidential_issue4266 is expected not to be nil4267 when integration is unify_circuit, event is merge_request4268 is expected not to be nil4269 when integration is unify_circuit, event is note4270 is expected not to be nil4271 when integration is unify_circuit, event is confidential_note4272 is expected not to be nil4273 when integration is unify_circuit, event is tag_push4274 is expected not to be nil4275 when integration is unify_circuit, event is pipeline4276 is expected not to be nil4277 when integration is unify_circuit, event is wiki_page4278 is expected not to be nil4279 when integration is webex_teams, event is push4280 is expected not to be nil4281 when integration is webex_teams, event is issue4282 is expected not to be nil4283 when integration is webex_teams, event is confidential_issue4284 is expected not to be nil4285 when integration is webex_teams, event is merge_request4286 is expected not to be nil4287 when integration is webex_teams, event is note4288 is expected not to be nil4289 when integration is webex_teams, event is confidential_note4290 is expected not to be nil4291 when integration is webex_teams, event is tag_push4292 is expected not to be nil4293 when integration is webex_teams, event is pipeline4294 is expected not to be nil4295 when integration is webex_teams, event is wiki_page4296 is expected not to be nil4297 when integration is Jira4298 is expected to include "Jira"4299 when integration is Team City4300 is expected to include "TeamCity"4301 #integration_form_data4302 with Slack integration4303 is expected to include :id, :show_active, :activated, :activate_disabled, :type, :merge_request_events, :commit_events, :enable_comments, :comment_detail, :learn_more_path, :trigger_events, :fields, :inherit_from_id, :integration_level, :editable, :cancel_path, :can_test, :test_path, :reset_path, :form_path, and :redirect_to4304 is expected not to include :jira_issue_transition_automatic and :jira_issue_transition_id4305 is expected to eq ""4306 is expected to eq "/services"4307 Jira service4308 is expected to include :id, :show_active, :activated, :activate_disabled, :type, :merge_request_events, :commit_events, :enable_comments, :comment_detail, :learn_more_path, :trigger_events, :fields, :inherit_from_id, :integration_level, :editable, :cancel_path, :can_test, :test_path, :reset_path, :form_path, :redirect_to, :jira_issue_transition_automatic, and :jira_issue_transition_id4309 #integration_overrides_data4310 is expected to include {:edit_path => "/admin/application_settings/integrations/jira/edit", :overrides_path => "/admin/application_settings/integrations/jira/overrides.json"}4311 #scoped_reset_integration_path4312 when no group is present4313 returns instance-level path4314 when group is present4315 returns group-level path4316 when a new integration is not persisted4317 returns an empty string4318 #jira_issue_breadcrumb_link4319 when issue_reference contains HTML4320 escapes issue reference4321Boards::Lists::MoveService4322 #execute4323 when board parent is a project4324 behaves like lists move service4325 keeps position of lists when list type is closed4326 when list type is set to label4327 keeps position of lists when new position is nil4328 keeps position of lists when new position is equal to old position4329 keeps position of lists when new position is negative4330 keeps position of lists when new position is equal to number of labels lists4331 keeps position of lists when new position is greater than number of labels lists4332 increments position of intermediate lists when new position is equal to first position4333 decrements position of intermediate lists when new position is equal to last position4334 decrements position of intermediate lists when new position is greater than old position4335 increments position of intermediate lists when new position is lower than old position4336 when board parent is a group4337 behaves like lists move service4338 keeps position of lists when list type is closed4339 when list type is set to label4340 keeps position of lists when new position is nil4341 keeps position of lists when new position is equal to old position4342 keeps position of lists when new position is negative4343 keeps position of lists when new position is equal to number of labels lists4344 keeps position of lists when new position is greater than number of labels lists4345 increments position of intermediate lists when new position is equal to first position4346 decrements position of intermediate lists when new position is equal to last position4347 decrements position of intermediate lists when new position is greater than old position4348 increments position of intermediate lists when new position is lower than old position4349Gitlab::BareRepositoryImport::Importer4350 with subgroups4351 behaves like importing a repository4352 .execute4353 creates a project for a repository in storage4354 skips wiki repos4355 without admin users4356 raises an error4357 #create_project_if_needed4358 starts an import for a project that did not exist4359 skips importing when the project already exists4360 creates a project with the correct path in the database4361 does not schedule an import4362 creates the Git repo on disk4363 hashed storage enabled4364 creates a project with the correct path in the database4365 without subgroups4366 behaves like importing a repository4367 .execute4368 creates a project for a repository in storage4369 skips wiki repos4370 without admin users4371 raises an error4372 #create_project_if_needed4373 starts an import for a project that did not exist4374 skips importing when the project already exists4375 creates a project with the correct path in the database4376 does not schedule an import4377 creates the Git repo on disk4378 hashed storage enabled4379 creates a project with the correct path in the database4380 without groups4381 starts an import for a project that did not exist4382 creates a project with the correct path in the database4383 creates the Git repo in disk4384 with a repository already on disk4385 moves an existing project to the correct path4386 with Wiki4387 creates the Wiki git repo in disk4388 behaves like importing a repository4389 .execute4390 creates a project for a repository in storage4391 skips wiki repos4392 without admin users4393 raises an error4394 #create_project_if_needed4395 starts an import for a project that did not exist4396 skips importing when the project already exists4397 creates a project with the correct path in the database4398 does not schedule an import4399 creates the Git repo on disk4400 hashed storage enabled4401 creates a project with the correct path in the database4402EmailsOnPushWorker4403 #perform4404 when push is a new branch4405 sends a mail with the correct subject4406 sends the mail to the correct recipient4407 when push is a deleted branch4408 sends a mail with the correct subject4409 sends the mail to the correct recipient4410 when push is a force push to delete commits4411 sends a mail with the correct subject4412 mentions force pushing in the body4413 sends the mail to the correct recipient4414 when there are no errors in sending4415 sends a mail with the correct subject4416 does not mention force pushing in the body4417 sends the mail to the correct recipient4418 when there is an SMTP error4419 gracefully handles an input SMTP error4420 when there are multiple recipients4421 with mixed-case recipient4422 retains the case4423 when the recipient addresses are a list of email addresses4424 sends the mail to each of the recipients4425 only generates the mail once4426 when SMIME signing is enabled4427 does not sign the email multiple times4428 when recipients are invalid4429 ignores them4430 when the recipient addresses contains angle brackets and are separated by spaces4431 accepts emails separated by whitespace4432 when the recipient addresses contain a mix of emails with and without angle brackets4433 accepts both kind of emails4434 when the recipient addresses contains angle brackets and are separated by newlines4435 accepts emails separated by newlines4436 when the recipient addresses contains duplicates4437 deduplicates recipients while treating the domain part as case-insensitive4438Gitlab::SidekiqMiddleware::ServerMetrics4439 behaves like metrics middleware with worker attribution4440 when workers are not attributed4441 behaves like a metrics middleware4442 with mocked prometheus4443 .initialize_process_metrics4444 sets concurrency metrics4445 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4446 when the sidekiq_job_completion_metric_initialize feature flag is disabled4447 sets the concurrency metric4448 does not initialize sidekiq_jobs_completion_seconds4449 #call4450 yields block4451 calls BackgroundTransaction4452 sets queue specific metrics4453 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4454 sets the thread name if it was nil4455 when job_duration is not available4456 does not set the queue_duration_seconds histogram4457 when error is raised4458 sets sidekiq_jobs_failed_total and reraises4459 when job is retried4460 sets sidekiq_jobs_retried_total metric4461 with prometheus integrated4462 #call4463 yields block4464 when error is raised4465 sets sidekiq_jobs_failed_total and reraises4466 when a worker is wrapped into ActiveJob4467 behaves like a metrics middleware4468 with mocked prometheus4469 .initialize_process_metrics4470 sets concurrency metrics4471 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4472 when the sidekiq_job_completion_metric_initialize feature flag is disabled4473 sets the concurrency metric4474 does not initialize sidekiq_jobs_completion_seconds4475 #call4476 yields block4477 calls BackgroundTransaction4478 sets queue specific metrics4479 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4480 sets the thread name if it was nil4481 when job_duration is not available4482 does not set the queue_duration_seconds histogram4483 when error is raised4484 sets sidekiq_jobs_failed_total and reraises4485 when job is retried4486 sets sidekiq_jobs_retried_total metric4487 with prometheus integrated4488 #call4489 yields block4490 when error is raised4491 sets sidekiq_jobs_failed_total and reraises4492 when workers are attributed4493 high urgency4494 behaves like a metrics middleware4495 with mocked prometheus4496 .initialize_process_metrics4497 sets concurrency metrics4498 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4499 when the sidekiq_job_completion_metric_initialize feature flag is disabled4500 sets the concurrency metric4501 does not initialize sidekiq_jobs_completion_seconds4502 #call4503 yields block4504 calls BackgroundTransaction4505 sets queue specific metrics4506 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4507 sets the thread name if it was nil4508 when job_duration is not available4509 does not set the queue_duration_seconds histogram4510 when error is raised4511 sets sidekiq_jobs_failed_total and reraises4512 when job is retried4513 sets sidekiq_jobs_retried_total metric4514 with prometheus integrated4515 #call4516 yields block4517 when error is raised4518 sets sidekiq_jobs_failed_total and reraises4519 no urgency4520 behaves like a metrics middleware4521 with mocked prometheus4522 .initialize_process_metrics4523 sets concurrency metrics4524 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4525 when the sidekiq_job_completion_metric_initialize feature flag is disabled4526 sets the concurrency metric4527 does not initialize sidekiq_jobs_completion_seconds4528 #call4529 yields block4530 calls BackgroundTransaction4531 sets queue specific metrics4532 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4533 sets the thread name if it was nil4534 when job_duration is not available4535 does not set the queue_duration_seconds histogram4536 when error is raised4537 sets sidekiq_jobs_failed_total and reraises4538 when job is retried4539 sets sidekiq_jobs_retried_total metric4540 with prometheus integrated4541 #call4542 yields block4543 when error is raised4544 sets sidekiq_jobs_failed_total and reraises4545 external dependencies4546 behaves like a metrics middleware4547 with mocked prometheus4548 .initialize_process_metrics4549 sets concurrency metrics4550 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4551 when the sidekiq_job_completion_metric_initialize feature flag is disabled4552 sets the concurrency metric4553 does not initialize sidekiq_jobs_completion_seconds4554 #call4555 yields block4556 calls BackgroundTransaction4557 sets queue specific metrics4558 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4559 sets the thread name if it was nil4560 when job_duration is not available4561 does not set the queue_duration_seconds histogram4562 when error is raised4563 sets sidekiq_jobs_failed_total and reraises4564 when job is retried4565 sets sidekiq_jobs_retried_total metric4566 with prometheus integrated4567 #call4568 yields block4569 when error is raised4570 sets sidekiq_jobs_failed_total and reraises4571 cpu boundary4572 behaves like a metrics middleware4573 with mocked prometheus4574 .initialize_process_metrics4575 sets concurrency metrics4576 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4577 when the sidekiq_job_completion_metric_initialize feature flag is disabled4578 sets the concurrency metric4579 does not initialize sidekiq_jobs_completion_seconds4580 #call4581 yields block4582 calls BackgroundTransaction4583 sets queue specific metrics4584 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4585 sets the thread name if it was nil4586 when job_duration is not available4587 does not set the queue_duration_seconds histogram4588 when error is raised4589 sets sidekiq_jobs_failed_total and reraises4590 when job is retried4591 sets sidekiq_jobs_retried_total metric4592 with prometheus integrated4593 #call4594 yields block4595 when error is raised4596 sets sidekiq_jobs_failed_total and reraises4597 memory boundary4598 behaves like a metrics middleware4599 with mocked prometheus4600 .initialize_process_metrics4601 sets concurrency metrics4602 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4603 when the sidekiq_job_completion_metric_initialize feature flag is disabled4604 sets the concurrency metric4605 does not initialize sidekiq_jobs_completion_seconds4606 #call4607 yields block4608 calls BackgroundTransaction4609 sets queue specific metrics4610 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4611 sets the thread name if it was nil4612 when job_duration is not available4613 does not set the queue_duration_seconds histogram4614 when error is raised4615 sets sidekiq_jobs_failed_total and reraises4616 when job is retried4617 sets sidekiq_jobs_retried_total metric4618 with prometheus integrated4619 #call4620 yields block4621 when error is raised4622 sets sidekiq_jobs_failed_total and reraises4623 feature category4624 behaves like a metrics middleware4625 with mocked prometheus4626 .initialize_process_metrics4627 sets concurrency metrics4628 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4629 when the sidekiq_job_completion_metric_initialize feature flag is disabled4630 sets the concurrency metric4631 does not initialize sidekiq_jobs_completion_seconds4632 #call4633 yields block4634 calls BackgroundTransaction4635 sets queue specific metrics4636 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4637 sets the thread name if it was nil4638 when job_duration is not available4639 does not set the queue_duration_seconds histogram4640 when error is raised4641 sets sidekiq_jobs_failed_total and reraises4642 when job is retried4643 sets sidekiq_jobs_retried_total metric4644 with prometheus integrated4645 #call4646 yields block4647 when error is raised4648 sets sidekiq_jobs_failed_total and reraises4649 combined4650 behaves like a metrics middleware4651 with mocked prometheus4652 .initialize_process_metrics4653 sets concurrency metrics4654 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process4655 when the sidekiq_job_completion_metric_initialize feature flag is disabled4656 sets the concurrency metric4657 does not initialize sidekiq_jobs_completion_seconds4658 #call4659 yields block4660 calls BackgroundTransaction4661 sets queue specific metrics4662 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4663 sets the thread name if it was nil4664 when job_duration is not available4665 does not set the queue_duration_seconds histogram4666 when error is raised4667 sets sidekiq_jobs_failed_total and reraises4668 when job is retried4669 sets sidekiq_jobs_retried_total metric4670 with prometheus integrated4671 #call4672 yields block4673 when error is raised4674 sets sidekiq_jobs_failed_total and reraises4675 DB load balancing4676 #call4677 when worker declares data consistency4678 increments load balancing counter with defined data consistency4679 when worker does not declare data consistency4680 increments load balancing counter with default data consistency4681 feature attribution4682 when a worker has a feature category4683 uses that category for metrics4684 when a worker does not have a feature category4685 uses the category from the context for metrics4686DesignManagement::CopyDesignCollection::CopyService4687 returns an error response4688 when user has permission to read the design collection4689 returns an error response4690 when the user also has permission to admin the target issue4691 returns an error response4692 when the target design collection has been queued4693 returns an error response4694 when design collection has designs4695 returns a success response4696 creates a design repository for the target project4697 copies the designs correctly4698 copies the design versions correctly4699 copies the design actions correctly4700 copies design notes correctly4701 links the LfsObjects4702 copies the Git repository data4703 creates a default branch if none previously existed4704 does not create default branch when one exists4705 leaves the design collection in the correct copy state4706 when target issue already has designs4707 returns an error response4708 when target project already has designs4709 sets IIDs for new designs above existing ones4710 does not allow for IID collisions4711 when the target project already has a design repository4712 returns a success response4713 rollback4714 returns an error response4715 rollsback all PostgreSQL data created4716 does not alter master branch4717 sets the design collection copy state4718 Alert if schema changes4719 is expected to contain exactly "id", "project_id", "issue_id", "filename", "relative_position", and "iid"4720 is expected to contain exactly "id", "design_id", "version_id", "event", and "image_v432x230"4721 is expected to contain exactly "id", "sha", "issue_id", "created_at", and "author_id"4722Ci::Bridge4723 has many sourced pipelines4724 has one downstream pipeline4725 #retryable?4726 returns true4727 without ci_recreate_downstream_pipeline ff4728 returns false4729 when there is a pipeline loop detected4730 returns false4731 when the pipeline depth has reached the max descendents4732 returns false4733 #tags4734 only has a bridge tag4735 #detailed_status4736 returns detailed status object4737 #scoped_variables4738 returns a hash representing variables4739 when bridge has dependency which has dotenv variable4740 includes inherited variable4741 state machine transitions4742 when bridge points towards downstream4743 schedules downstream pipeline creation when the status is created4744 schedules downstream pipeline creation when the status is manual4745 schedules downstream pipeline creation when the status is waiting for resource4746 raises error when the status is failed4747 #inherit_status_from_downstream!4748 when status is not supported4749 when status is created4750 returns false4751 does not change the bridge status4752 when status is waiting_for_resource4753 returns false4754 does not change the bridge status4755 when status is preparing4756 returns false4757 does not change the bridge status4758 when status is pending4759 returns false4760 does not change the bridge status4761 when status is running4762 returns false4763 does not change the bridge status4764 when status is manual4765 returns false4766 does not change the bridge status4767 when status is scheduled4768 returns false4769 does not change the bridge status4770 when status is supported4771 downstream_status: "success", upstream_status: "success"4772 inherits the downstream status4773 downstream_status: "failed", upstream_status: "failed"4774 inherits the downstream status4775 downstream_status: "canceled", upstream_status: "failed"4776 inherits the downstream status4777 downstream_status: "skipped", upstream_status: "failed"4778 inherits the downstream status4779 #dependent?4780 when bridge has strategy depend4781 is expected to equal true4782 when bridge does not have strategy depend4783 is expected to equal false4784 #yaml_variables4785 returns YAML variables4786 #downstream_variables4787 returns variables that are going to be passed downstream4788 when using variables interpolation4789 correctly expands variables with interpolation4790 when recursive interpolation has been used4791 does not expand variable recursively4792 forward variables4793 yaml_variables: nil, pipeline_variables: nil, ff: true, variables: ["BRIDGE"]4794 returns variables according to the forward value4795 yaml_variables: nil, pipeline_variables: false, ff: true, variables: ["BRIDGE"]4796 returns variables according to the forward value4797 yaml_variables: nil, pipeline_variables: true, ff: true, variables: ["BRIDGE", "PVAR1"]4798 returns variables according to the forward value4799 yaml_variables: false, pipeline_variables: nil, ff: true, variables: []4800 returns variables according to the forward value4801 yaml_variables: false, pipeline_variables: false, ff: true, variables: []4802 returns variables according to the forward value4803 yaml_variables: false, pipeline_variables: true, ff: true, variables: ["PVAR1"]4804 returns variables according to the forward value4805 yaml_variables: true, pipeline_variables: nil, ff: true, variables: ["BRIDGE"]4806 returns variables according to the forward value4807 yaml_variables: true, pipeline_variables: false, ff: true, variables: ["BRIDGE"]4808 returns variables according to the forward value4809 yaml_variables: true, pipeline_variables: true, ff: true, variables: ["BRIDGE", "PVAR1"]4810 returns variables according to the forward value4811 yaml_variables: nil, pipeline_variables: nil, ff: false, variables: ["BRIDGE"]4812 returns variables according to the forward value4813 yaml_variables: nil, pipeline_variables: false, ff: false, variables: ["BRIDGE"]4814 returns variables according to the forward value4815 yaml_variables: nil, pipeline_variables: true, ff: false, variables: ["BRIDGE"]4816 returns variables according to the forward value4817 yaml_variables: false, pipeline_variables: nil, ff: false, variables: ["BRIDGE"]4818 returns variables according to the forward value4819 yaml_variables: false, pipeline_variables: false, ff: false, variables: ["BRIDGE"]4820 returns variables according to the forward value4821 yaml_variables: false, pipeline_variables: true, ff: false, variables: ["BRIDGE"]4822 returns variables according to the forward value4823 yaml_variables: true, pipeline_variables: nil, ff: false, variables: ["BRIDGE"]4824 returns variables according to the forward value4825 yaml_variables: true, pipeline_variables: false, ff: false, variables: ["BRIDGE"]4826 returns variables according to the forward value4827 yaml_variables: true, pipeline_variables: true, ff: false, variables: ["BRIDGE"]4828 returns variables according to the forward value4829 when sending a variable via both yaml and pipeline4830 uses the pipeline variable4831 when the pipeline runs from a pipeline schedule4832 adds the schedule variable4833 metadata support4834 reads YAML variables from metadata4835 reads options from metadata4836 #triggers_child_pipeline?4837 when bridge defines a downstream YAML4838 is expected to be truthy4839 when bridge does not define a downstream YAML4840 is expected to be falsey4841 #yaml_for_downstream4842 when bridge defines a downstream YAML4843 is expected to eq "---\ninclude: path/to/child.yml\n"4844 when bridge does not define a downstream YAML4845 is expected to be nil4846 #target_ref4847 when trigger is defined4848 returns a ref name4849 when using variable expansion4850 correctly expands variables4851 when trigger does not have project defined4852 returns nil4853 #play4854 enqueues the bridge4855 #playable?4856 when bridge is a manual action4857 is expected to be truthy4858 when build is not a manual action4859 is expected to be falsey4860 #action?4861 when bridge is a manual action4862 is expected to be truthy4863 when build is not a manual action4864 is expected to be falsey4865 #dependency_variables4866 when downloading from previous stages4867 inherits only dependent variables4868 when using needs4869 inherits only needs with artifacts variables4870Banzai::ReferenceParser::BaseParser4871 .reference_type=4872 sets the reference type4873 #project_for_node4874 returns the Project for a node4875 #nodes_visible_to_user4876 when the link has a data-project attribute4877 includes the link if can_read_reference? returns true4878 excludes the link if can_read_reference? returns false4879 when the link does not have a data-project attribute4880 returns the nodes4881 #nodes_user_can_reference4882 returns the nodes4883 #referenced_by4884 when references_relation is implemented4885 and ids_only is set to false4886 returns a collection of objects4887 and ids_only is set to true4888 returns a collection of id values without performing a db query4889 and the html fragment does not contain any attributes4890 returns an empty array4891 when references_relation is not implemented4892 raises NotImplementedError4893 #references_relation4894 raises NotImplementedError4895 #gather_attributes_per_project4896 returns a Hash containing attribute values per project4897 #grouped_objects_for_nodes4898 returns a Hash grouping objects per node4899 returns an empty Hash when entry does not exist in the database4900 #unique_attribute_values4901 returns an Array of unique values4902 #process4903 gathers the references for every node matching the reference type4904 #gather_references4905 returns referenceable and visible objects, alongside all and visible nodes4906 is always empty if the input is empty4907 #can?4908 delegates the permissions check to the Ability class4909 #find_projects_for_hash_keys4910 returns a list of Projects4911 #collection_objects_for_ids4912 with RequestStore disabled4913 queries the collection directly4914 with RequestStore enabled4915 queries the collection on the first call4916 does not query previously queried objects4917 casts String based IDs to Fixnums before querying objects4918 queries any additional objects after the first call4919 caches objects on a per collection class basis4920 will not overflow the stack4921 #collection_cache_key4922 returns the cache key for a Class4923 returns the cache key for an ActiveRecord::Relation4924Ci::UpdateBuildQueueService4925 pending builds queue push / pop4926 #push4927 when pending build can be created4928 creates a new pending build in transaction4929 increments queue push metric4930 when invalid transition is detected4931 raises an error4932 when duplicate entry exists4933 does nothing and returns build id4934 #pop4935 when pending build exists4936 removes pending build in a transaction4937 increments queue pop metric4938 when pending build does not exist4939 does nothing if there is no pending build to remove4940 when invalid transition is detected4941 raises an error4942 #remove!4943 when pending build exists4944 removes pending build in a transaction4945 when pending build does not exist4946 does nothing if there is no pending build to remove4947 shared runner builds tracking4948 #track4949 when a shared runner build can be tracked4950 creates a new shared runner build tracking entry4951 increments new shared runner build metric4952 when invalid transition is detected4953 raises an error4954 when duplicate entry exists4955 does nothing and returns build id4956 #untrack4957 when shared runner build tracking entry exists4958 removes shared runner build4959 increments shared runner build done metric4960 when tracking entry does not exist4961 does nothing if there is no tracking entry to remove4962 when invalid transition is detected4963 raises an error4964 #tick4965 when updating specific runners4966 behaves like matching build4967 when there is a online runner that can pick build4968 avoids running redundant queries4969 behaves like refreshes runner4970 ticks runner queue value4971 behaves like mismatching tags4972 when there is no runner that can pick build due to tag mismatch4973 behaves like does not refresh runner4974 ticks runner queue value4975 behaves like recent runner queue4976 when there is runner with expired cache4977 behaves like does not refresh runner4978 ticks runner queue value4979 when the runner is assigned to another project4980 behaves like does not refresh runner4981 ticks runner queue value4982 when updating shared runners4983 behaves like matching build4984 when there is a online runner that can pick build4985 avoids running redundant queries4986 behaves like refreshes runner4987 ticks runner queue value4988 behaves like mismatching tags4989 when there is no runner that can pick build due to tag mismatch4990 behaves like does not refresh runner4991 ticks runner queue value4992 behaves like recent runner queue4993 when there is runner with expired cache4994 behaves like does not refresh runner4995 ticks runner queue value4996 when there is no runner that can pick build due to being disabled on project4997 behaves like does not refresh runner4998 ticks runner queue value4999 when updating group runners5000 behaves like matching build5001 when there is a online runner that can pick build5002 avoids running redundant queries5003 behaves like refreshes runner5004 ticks runner queue value5005 behaves like mismatching tags5006 when there is no runner that can pick build due to tag mismatch5007 behaves like does not refresh runner5008 ticks runner queue value5009 behaves like recent runner queue5010 when there is runner with expired cache5011 behaves like does not refresh runner5012 ticks runner queue value5013 when there is no runner that can pick build due to being disabled on project5014 behaves like does not refresh runner5015 ticks runner queue value5016 avoids N+1 queries5017 does execute the same amount of queries regardless of number of runners5018DeployToken5019 is expected to have many project_deploy_tokens5020 is expected to have many projects through project_deploy_tokens5021 is expected to have many group_deploy_tokens5022 is expected to have many groups through group_deploy_tokens5023 is expected to belong to user required: false5024 behaves like having unique enum values5025 has unique values in "deploy_token_type"5026 validations5027 is expected to validate that the length of :username is at most 2555028 is expected to allow :username to be ‹"GitLab+deploy_token-3.14"›5029 is expected not to allow :username to be ‹"<script>"›, producing a custom validation error on failure5030 is expected not to allow :username to be ‹""›, producing a custom validation error on failure5031 is expected to validate that :deploy_token_type cannot be empty/falsy5032 deploy_token_type validations5033 when a deploy token is associated to a group5034 does not allow setting a project to it5035 when a deploy token is associated to a project5036 does not allow setting a group to it5037 #ensure_token5038 ensures a token5039 #ensure_at_least_one_scope5040 with at least one scope5041 is valid5042 with no scopes5043 is invalid5044 #valid_for_dependency_proxy?5045 is expected to eq true5046 behaves like invalid group deploy token5047 revoked5048 is expected to eq false5049 expired5050 is expected to eq false5051 project type5052 is expected to eq false5053 insufficient scopes5054 is expected to eq false5055 #has_access_to_group?5056 is expected to eq true5057 behaves like invalid group deploy token5058 revoked5059 is expected to eq false5060 expired5061 is expected to eq false5062 project type5063 is expected to eq false5064 for a sub group5065 is expected to eq true5066 for a different group5067 is expected to eq false5068 #scopes5069 with all the scopes5070 returns scopes assigned to DeployToken5071 with only one scope5072 returns scopes assigned to DeployToken5073 #revoke!5074 updates revoke attribute5075 #active?5076 when it has been revoked5077 returns false5078 when it hasn't been revoked and is not expired5079 returns true5080 when it hasn't been revoked and is expired5081 returns true5082 when it hasn't been revoked and has no expiry5083 returns true5084 #deactivated?5085 when it has been revoked5086 returns true5087 when it hasn't been revoked and is not expired5088 returns false5089 when it hasn't been revoked and is expired5090 returns false5091 when it hasn't been revoked and has no expiry5092 returns false5093 #username5094 persisted records5095 returns a default username if none is set5096 returns the username provided if one is set5097 new records5098 returns nil if no username is set5099 returns the username provided if one is set5100 #holder5101 when the token is of project type5102 returns the relevant holder token5103 when the token is of group type5104 returns the relevant holder token5105 #has_access_to?5106 when a project is not passed in5107 is expected to be falsy5108 when a project is passed in5109 when deploy token is active and related to project5110 is expected to be truthy5111 when deploy token is active but not related to project5112 is expected to be falsy5113 when deploy token is revoked and related to project5114 is expected to be falsy5115 when deploy token is revoked and not related to the project5116 is expected to be falsy5117 and when the token is of group type5118 and the passed-in project does not belong to any group5119 is expected to be falsy5120 and the passed-in project belongs to the token group5121 is true5122 and the passed-in project belongs to a subgroup5123 and the token group is an ancestor (grand-parent) of this group5124 is expected to be truthy5125 and the token group is not ancestor of this group5126 is false5127 and the passed-in project does not belong to the token group5128 is expected to be falsy5129 and the project belongs to a group that is parent of the token group5130 is false5131 and the token is of project type5132 and the passed-in project is the same as the token project5133 is expected to be truthy5134 and the passed-in project is not the same as the token project5135 is expected to be falsey5136 #expires_at5137 when using Forever.date5138 returns nil5139 when using a personalized date5140 returns the personalized date5141 #expires_at=5142 when passing nil5143 assigns Forever.date5144 when passing a value5145 respects the value5146 .gitlab_deploy_token5147 with a gitlab deploy token associated5148 returns the gitlab deploy token5149 with no gitlab deploy token associated5150 returns nil5151 #accessible_projects5152 when a deploy token is associated to a project5153 returns only projects directly associated with the token5154 when a deploy token is associated to a group5155 returns all projects from the group5156Gitlab::Pagination::OffsetPagination5157 #paginate5158 when resource can be paginated5159 first page5160 does not return the total headers when excluding them5161 when resources count is less than MAX_COUNT_LIMIT5162 behaves like paginated response5163 returns appropriate amount of resources5164 executes only one SELECT COUNT query5165 behaves like response with pagination headers5166 adds appropriate headers5167 when resources count is more than MAX_COUNT_LIMIT5168 does not return the X-Total and X-Total-Pages headers5169 behaves like paginated response5170 returns appropriate amount of resources5171 executes only one SELECT COUNT query5172 when resource already paginated5173 when per_page param is specified5174 returns appropriate amount of resources based on per_page param5175 when page and per page params are strings5176 returns appropriate amount of resources5177 when per_page param is blank5178 returns appropriate amount of resources5179 when page param is blank5180 returns appropriate amount of resources based on resource per(N)5181 when resource does not respond to limit_value5182 when page param is blank5183 returns appropriate amount of resources5184 when per_page param is blank5185 returns appropriate amount of resources with default per page value5186 when resource is a paginatable array5187 only returns the requested resources5188 does not return total headers when excluding them5189 behaves like response with pagination headers5190 adds appropriate headers5191 second page5192 returns appropriate amount of resources5193 adds appropriate headers5194 if order5195 is not present it adds default order(:id) if no order is present5196 is present it does not add anything5197 when resource empty5198 first page5199 returns appropriate amount of resources5200 adds appropriate headers5201Ci::RunnerJobsFinder5202 #execute5203 when params is empty5204 returns all jobs assigned to Runner5205 when params contains status5206 when status is created5207 returns matched job5208 when status is waiting_for_resource5209 returns matched job5210 when status is preparing5211 returns matched job5212 when status is pending5213 returns matched job5214 when status is running5215 returns matched job5216 when status is success5217 returns matched job5218 when status is failed5219 returns matched job5220 when status is canceled5221 returns matched job5222 when status is skipped5223 returns matched job5224 when status is manual5225 returns matched job5226 when status is scheduled5227 returns matched job5228 when order_by and sort are specified5229 when order_by id and sort is asc5230 sorts as id: :asc5231 when order_by is specified and sort is not specified5232 when order_by id and sort is not specified5233 sorts as id: :desc5234Git::ProcessRefChangesService5235 branch changes5236 behaves like service for processing ref changes5237 calls Git::BranchPushService5238 changes exceed push_event_hooks_limit5239 calls Git::BranchPushService with execute_project_hooks set to false5240 changes exceed push_event_activities_limit per action5241 calls Git::BranchPushService with create_push_event set to false5242 creates events per action5243 pipeline creation5244 with valid .gitlab-ci.yml5245 when git_push_create_all_pipelines is disabled5246 creates pipeline for branches and tags5247 creates exactly 4 pipelines5248 when git_push_create_all_pipelines is enabled5249 creates all pipelines5250 with invalid .gitlab-ci.yml5251 does not create a pipeline5252 housekeeping5253 does not perform housekeeping when not needed5254 increments the push counter5255 when housekeeping is needed5256 performs housekeeping5257 does not raise an exception5258 when there are merge requests associated with branches5259 schedules job for existing merge requests5260 tag changes5261 behaves like service for processing ref changes5262 calls Git::TagPushService5263 changes exceed push_event_hooks_limit5264 calls Git::TagPushService with execute_project_hooks set to false5265 changes exceed push_event_activities_limit per action5266 calls Git::TagPushService with create_push_event set to false5267 creates events per action5268 pipeline creation5269 with valid .gitlab-ci.yml5270 when git_push_create_all_pipelines is disabled5271 creates pipeline for branches and tags5272 creates exactly 4 pipelines5273 when git_push_create_all_pipelines is enabled5274 creates all pipelines5275 with invalid .gitlab-ci.yml5276 does not create a pipeline5277 housekeeping5278 does not perform housekeeping when not needed5279 increments the push counter5280 when housekeeping is needed5281 performs housekeeping5282 does not raise an exception5283PushEvent5284 .created_or_pushed5285 includes events for pushing to existing refs5286 includes events for creating new refs5287 does not include events for removing refs5288 .branch_events5289 includes events for branches5290 does not include events for tags5291 .without_existing_merge_requests5292 includes events that do not have a corresponding merge request5293 does not include events that have a corresponding open merge request5294 includes events that has corresponding closed/merged merge requests5295 does not include events for removed refs5296 does not include events for pushing to tags5297 .sti_name5298 returns the integer representation of the :pushed event action5299 #push_action?5300 returns true5301 #push_with_commits?5302 returns true when both the first and last commit are present5303 returns false when the first commit is missing5304 returns false when the last commit is missing5305 #tag?5306 returns true when pushing to a tag5307 returns false when pushing to a branch5308 #branch?5309 returns true when pushing to a branch5310 returns false when pushing to a tag5311 #valid_push?5312 returns true if a ref exists5313 returns false when no ref is present5314 #new_ref?5315 returns true when pushing a new ref5316 returns false when pushing to an existing ref5317 #rm_ref?5318 returns true when removing an existing ref5319 returns false when pushing to an existing ref5320 #commit_from5321 returns the first commit SHA5322 #commit_to5323 returns the last commit SHA5324 #ref_name5325 returns the name of the ref5326 #ref_type5327 returns the type of the ref5328 #branch_name5329 returns the name of the branch5330 #tag_name5331 returns the name of the tag5332 #commit_title5333 returns the commit message5334 #commit_id5335 returns the SHA of the last commit if present5336 returns the SHA of the first commit if the last commit is not present5337 #commits_count5338 returns the number of commits5339 #validate_push_action5340 adds an error when the action is not PUSHED5341MergeRequestPollCachedWidgetEntity5342 has the latest sha of the target branch5343 has blob path data5344 merge_status5345 calls for MergeRequest#check_mergeability5346 has public_merge_status as merge_status5347 diverged_commits_count5348 when MR open and its diverging5349 returns diverged commits count5350 when MR is not open5351 returns 05352 when MR is not diverging5353 returns 05354 diff_head_sha5355 when diff head commit is empty5356 returns nil5357 when diff head commit present5358 returns diff head commit short id5359 metrics5360 when metrics record exists with merged data5361 matches merge request metrics schema5362 returns values from metrics record5363 when metrics record exists with closed data5364 matches merge request metrics schema5365 returns values from metrics record5366 when metrics does not exists5367 when events exists5368 matches merge request metrics schema5369 returns values from events record5370 when events does not exists5371 matches merge request metrics schema5372 commits_without_merge_commits5373 does not include merge commits5374 auto merge5375 when auto merge is enabled5376 returns auto merge related information5377 when auto merge is not enabled5378 returns auto merge related information5379 squash defaults for projects5380 squash_option: "always", value: true, default: true, readonly: true5381 the key reflects the correct value5382 squash_option: "never", value: false, default: false, readonly: true5383 the key reflects the correct value5384 squash_option: "default_on", value: false, default: true, readonly: false5385 the key reflects the correct value5386 squash_option: "default_off", value: false, default: false, readonly: false5387 the key reflects the correct value5388 attributes for squash commit message5389 when merge request is mergeable5390 has default_squash_commit_message and commits_without_merge_commits5391 pipeline5392 when user has access to pipelines5393 when is up to date5394 returns pipeline5395 when user does not have access to pipelines5396 does not have pipeline5397 when is not up to date5398 returns nil5399 merge_pipeline5400 returns nil5401 when is merged5402 returns merge_pipeline5403 when user cannot read pipelines on target project5404 returns nil5405 ci related paths5406 path_field: :terraform_reports_path, method_for_existence_check: :has_terraform_reports?5407 when merge request has reports5408 set the path to poll data5409 when merge request has no reports5410 does not set reports path5411 path_field: :accessibility_report_path, method_for_existence_check: :has_accessibility_reports?5412 when merge request has reports5413 set the path to poll data5414 when merge request has no reports5415 does not set reports path5416 path_field: :exposed_artifacts_path, method_for_existence_check: :has_exposed_artifacts?5417 when merge request has reports5418 set the path to poll data5419 when merge request has no reports5420 does not set reports path5421 path_field: :test_reports_path, method_for_existence_check: :has_test_reports?5422 when merge request has reports5423 set the path to poll data5424 when merge request has no reports5425 does not set reports path5426 path_field: :codequality_reports_path, method_for_existence_check: :has_codequality_reports?5427 when merge request has reports5428 set the path to poll data5429 when merge request has no reports5430 does not set reports path5431Label5432 modules5433 is expected to includes the Referable module5434 is expected to includes the Subscribable module5435 associations5436 is expected to have many issues through label_links source => target5437 is expected to have many label_links dependent => destroy5438 is expected to have many lists dependent => destroy5439 is expected to have many priorities class_name => LabelPriority5440 validation5441 is expected to validate that :title is case-sensitively unique within the scope of :group_id and :project_id5442 validates color code5443 validates title5444 scopes5445 .on_board5446 returns only the board labels5447 #color5448 strips color5449 uses default color if color is missing5450 #text_color5451 uses default color if color is missing5452 #title5453 sanitizes title5454 strips title5455 #description5456 sanitizes description5457 accepts an empty string5458 priorization5459 #prioritize!5460 when label is not prioritized5461 creates a label priority5462 sets label priority5463 when label is prioritized5464 does not create a label priority5465 updates label priority5466 #unprioritize!5467 removes label priority5468 #priority5469 when label is not prioritized5470 returns nil5471 when label is prioritized5472 returns label priority5473 .search5474 returns labels with a partially matching title5475 returns labels with a partially matching description5476 returns nothing5477 .subscribed_by5478 returns subscribed labels5479 returns nothing5480 .top_labels_by_target5481 returns distinct labels, ordered by usage in the given target relation5482 excludes labels that are not assigned to any records in the given target relation5483 .optionally_subscribed_by5484 returns subscribed labels5485 returns all labels if user_id is nil5486 #templates5487 with invalid template labels5488 returns only valid template labels5489Gitlab::Ci::Status::Stage::Factory5490 when stage has a core status5491 when core status is created5492 fabricates a core status created5493 extends core status with common stage methods5494 when core status is waiting_for_resource5495 fabricates a core status waiting_for_resource5496 extends core status with common stage methods5497 when core status is preparing5498 fabricates a core status preparing5499 extends core status with common stage methods5500 when core status is pending5501 fabricates a core status pending5502 extends core status with common stage methods5503 when core status is running5504 fabricates a core status running5505 extends core status with common stage methods5506 when core status is success5507 fabricates a core status success5508 extends core status with common stage methods5509 when core status is failed5510 fabricates a core status failed5511 extends core status with common stage methods5512 when core status is canceled5513 fabricates a core status canceled5514 extends core status with common stage methods5515 when stage has warnings5516 fabricates extended "success with warnings" status5517 extends core status with common stage method5518 when stage has manual builds5519 when status is manual5520 fabricates a play manual status5521 when status is scheduled5522 fabricates a play manual status5523 when status is skipped5524 fabricates a play manual status5525Group Routable5526 creates route with namespace referencing group5527 behaves like routable resource5528 .find_by_full_path5529 finds records by their full path5530 returns nil for unknown paths5531 includes route information when loading a record5532 with redirect routes5533 without follow_redirects option5534 does not find records by their redirected path5535 with follow_redirects option set to true5536 finds records by their canonical path5537 finds records by their redirected path5538 returns nil for unknown paths5539 behaves like routable resource with parent5540 behaves like routable resource5541 .find_by_full_path5542 finds records by their full path5543 returns nil for unknown paths5544 includes route information when loading a record5545 with redirect routes5546 without follow_redirects option5547 does not find records by their redirected path5548 with follow_redirects option set to true5549 finds records by their canonical path5550 finds records by their redirected path5551 returns nil for unknown paths5552 #full_path5553 is expected to eq "foo/group107"5554 hits the cache when not preloaded5555 #full_name5556 is expected to eq "foo / group107"5557 hits the cache when not preloaded5558 Validations5559 is expected to validate that :route cannot be empty/falsy5560 Associations5561 is expected to have one route dependent => destroy5562 is expected to have many redirect_routes dependent => destroy5563 Callbacks5564 for a group5565 creates route record on create5566 updates route record on path change5567 ensure route path uniqueness across different objects5568 for a user5569 creates the route for a record on create5570 updates routes and nested routes on name change5571 .where_full_path_in5572 without any paths5573 returns an empty relation5574 without any valid paths5575 returns an empty relation5576 with valid paths5577 returns the projects matching the paths5578 returns projects regardless of the casing of paths5579 #parent_loaded?5580 is false when the parent is not loaded5581 is true when the parent is loaded5582 #route_loaded?5583 is false when the route is not loaded5584 is true when the route is loaded5585Project Routable5586 creates route with namespace referencing project namespace5587 behaves like routable resource with parent5588 behaves like routable resource5589 .find_by_full_path5590 finds records by their full path5591 returns nil for unknown paths5592 includes route information when loading a record5593 with redirect routes5594 without follow_redirects option5595 does not find records by their redirected path5596 with follow_redirects option set to true5597 finds records by their canonical path5598 finds records by their redirected path5599 returns nil for unknown paths5600 #full_path5601 is expected to eq "namespace1008/project1214"5602 hits the cache when not preloaded5603 #full_name5604 is expected to eq "Sidney Jones1805 / project1214"5605 hits the cache when not preloaded5606Namespaces::ProjectNamespace Routable5607 skips route creation for the resource5608Banzai::Filter::References::ProjectReferenceFilter5609 ignores invalid projects5610 allows references with text after the > character5611 ignores valid references contained inside 'pre' element5612 ignores valid references contained inside 'code' element5613 ignores valid references contained inside 'a' element5614 ignores valid references contained inside 'style' element5615 includes default classes5616 behaves like user reference or project reference5617 supports an :only_path context5618 mentioning a resource5619 links to a resource5620 links to a resource with a period5621 links to a resource with an underscore5622 links to a resource with different case-sensitivity5623 behaves like a reference containing an element node5624 does not escape inner html5625 behaves like it contains a data- attribute5626 includes a data- attribute5627 referencing a resource in a link href5628 links to the resource5629 links with adjacent text5630 behaves like it contains a data- attribute5631 includes a data- attribute5632 when invalid reference strings are very long5633 behaves like fails fast5634 fails fast for long strings5635 behaves like fails fast5636 fails fast for long strings5637 in group context5638 supports mentioning a project5639 supports mentioning a project in a nested group5640 #projects_hash5641 returns a Hash containing all Projects5642 #projects5643 returns the projects mentioned in a document5644 checking N+15645 does not have N+1 per multiple project references5646Gitlab::JsonCache5647 #active?5648 when backend respond to active? method5649 delegates to the underlying cache implementation5650 when backend does not respond to active? method5651 returns true5652 #cache_key5653 namespace: nil, cache_key_strategy: :revision, expanded_key: "foo:d5ce7ff4989"5654 is expected to eq "foo:d5ce7ff4989"5655 namespace: nil, cache_key_strategy: :version, expanded_key: "foo:14.11.0-pre:6.1.4.7"5656 is expected to eq "foo:14.11.0-pre:6.1.4.7"5657 namespace: "geo", cache_key_strategy: :revision, expanded_key: "geo:foo:d5ce7ff4989"5658 is expected to eq "geo:foo:d5ce7ff4989"5659 namespace: "geo", cache_key_strategy: :version, expanded_key: "geo:foo:14.11.0-pre:6.1.4.7"5660 is expected to eq "geo:foo:14.11.0-pre:6.1.4.7"5661 when cache_key_strategy is unknown5662 raises KeyError5663 #namespace5664 defaults to nil5665 #strategy_key_component5666 defaults to Gitlab.revision5667 when cache_key_strategy is :revision5668 is expected to eq "d5ce7ff4989"5669 when cache_key_strategy is :version5670 is expected to eq ["14.11.0-pre", "6.1.4.7"]5671 when cache_key_strategy is invalid5672 raises KeyError5673 #expire5674 expires the given key from the cache5675 #read5676 reads the given key from the cache5677 returns the cached value when there is data in the cache with the given key5678 returns nil when there is no data in the cache with the given key5679 when the cached value is true5680 parses the cached value5681 when the cached value is false5682 parses the cached value5683 when the cached value is a JSON true value5684 parses the cached value5685 when the cached value is a JSON false value5686 parses the cached value5687 when the cached value is a hash5688 parses the cached value5689 returns nil when klass is nil5690 gracefully handles bad cached entry5691 gracefully handles an empty hash5692 gracefully handles unknown attributes5693 gracefully handles excluded fields from attributes during serialization5694 when the cached value is an array5695 parses the cached value5696 returns an empty array when klass is nil5697 gracefully handles bad cached entry5698 gracefully handles an empty array5699 gracefully handles unknown attributes5700 #write5701 writes value to the cache with the given key5702 writes a string containing a JSON representation of the value to the cache5703 passes options the underlying cache implementation5704 passes options the underlying cache implementation when options is empty5705 passes options the underlying cache implementation when options is nil5706 #fetch5707 requires a block5708 passes options the underlying cache implementation5709 when the given key does not exist in the cache5710 when the result of the block is truthy5711 returns the result of the block5712 caches the value5713 when the result of the block is false5714 returns the result of the block5715 caches the value5716 when the result of the block is nil5717 returns the result of the block5718 caches the value5719 when the given key exists in the cache5720 when the cached value is a hash5721 parses the cached value5722 decodes enums correctly5723 returns the result of the block when 'as' option is nil5724 returns the result of the block when 'as' option is missing5725 when the cached value is an instance of ActiveRecord::Base5726 returns a persisted record when id is set5727 returns a new record when id is nil5728 returns a new record when id is missing5729 gracefully handles bad cached entry5730 gracefully handles an empty hash5731 gracefully handles unknown attributes5732 gracefully handles excluded fields from attributes during serialization5733 when the cached value is a array5734 parses the cached value5735 returns an empty array when 'as' option is nil5736 returns an empty array when 'as' option is not informed5737 when the cached value is true5738 returns the cached value5739 does not execute the block5740 does not write to the cache5741 when the cached value is false5742 returns the cached value5743 does not execute the block5744 does not write to the cache5745 when the cached value is nil5746 returns the result of the block5747 writes the result of the block to the cache5748npm.gitlab-ci.yml5749 the created pipeline5750 on default branch5751 when package.json has been changed5752 behaves like publish job created5753 creates a pipeline with a single job: publish5754 when package.json does not exist or has not been changed5755 behaves like no pipeline created5756 does not create a pipeline because the only job (publish) is not created5757 when the branch name is v1.0.05758 behaves like publish job created5759 creates a pipeline with a single job: publish5760 when the tag name is v1.0.05761 behaves like publish job created5762 creates a pipeline with a single job: publish5763 when the branch name is v2.1.0-alpha5764 behaves like publish job created5765 creates a pipeline with a single job: publish5766 when the tag name is v2.1.0-alpha5767 behaves like publish job created5768 creates a pipeline with a single job: publish5769 when the branch name is patch-15770 behaves like no pipeline created5771 does not create a pipeline because the only job (publish) is not created5772 when the tag name is patch-15773 behaves like no pipeline created5774 does not create a pipeline because the only job (publish) is not created5775 when the branch name is my-feature-branch5776 behaves like no pipeline created5777 does not create a pipeline because the only job (publish) is not created5778 when the tag name is my-feature-branch5779 behaves like no pipeline created5780 does not create a pipeline because the only job (publish) is not created5781 when the branch name is v15782 behaves like no pipeline created5783 does not create a pipeline because the only job (publish) is not created5784 when the tag name is v15785 behaves like no pipeline created5786 does not create a pipeline because the only job (publish) is not created5787 when the branch name is v1.05788 behaves like no pipeline created5789 does not create a pipeline because the only job (publish) is not created5790 when the tag name is v1.05791 behaves like no pipeline created5792 does not create a pipeline because the only job (publish) is not created5793 when the branch name is 2.1.05794 behaves like no pipeline created5795 does not create a pipeline because the only job (publish) is not created5796 when the tag name is 2.1.05797 behaves like no pipeline created5798 does not create a pipeline because the only job (publish) is not created5799ActiveSession5800 #current?5801 returns true if the active session matches the current session5802 returns false if the active session does not match the current session5803 returns false if the session id is nil5804 .list5805 returns all sessions by user5806 returns an empty array if the user does not have any active session5807 when the current session is in the old format5808 behaves like ignoring obsolete entries5809 does not return obsolete entries and cleans them up5810 when the current session is in the new format5811 behaves like ignoring obsolete entries5812 does not return obsolete entries and cleans them up5813 .list_sessions5814 uses the ActiveSession lookup to return original sessions5815 .session_ids_for_user5816 uses the user lookup table to return session ids5817 .sessions_from_ids5818 uses the ActiveSession lookup to return original sessions5819 avoids a redis lookup for an empty array5820 uses redis lookup in batches5821 .set5822 sets a new redis entry for the user session and a lookup entry5823 adds timestamps and information from the request5824 is possible to log in only using the old session key5825 keeps the created_at from the login on consecutive requests5826 .destroy_session5827 destroy called with Rack::Session::SessionId#private_id5828 calls .destroy_sessions5829 ActiveSession with session_private_id5830 when using old session key serialization5831 removes the devise session5832 removes the lookup entry5833 removes the ActiveSession5834 when using new session key serialization5835 removes the devise session5836 removes the lookup entry5837 removes the ActiveSession5838 .destroy_all_but_current5839 gracefully handles a nil session ID5840 with legacy sessions5841 behaves like with user sessions5842 removes the entry associated with the all user sessions but current5843 removes the lookup entry of deleted sessions5844 does not remove impersonated sessions5845 with new sessions5846 behaves like with user sessions5847 removes the entry associated with the all user sessions but current5848 removes the lookup entry of deleted sessions5849 does not remove impersonated sessions5850 .cleanup5851 with legacy sessions5852 behaves like cleaning up5853 does not bail if there are no lookup entries5854 when removing obsolete sessions5855 removes obsolete lookup entries5856 cleaning up old sessions5857 removes obsolete active sessions entries5858 removes obsolete lookup entries5859 removes obsolete lookup entries even without active session5860 when the number of active sessions is lower than the limit5861 does not remove active session entries, but removes lookup entries5862 cleaning up old sessions stored by Rack::Session::SessionId#private_id5863 removes obsolete active sessions entries5864 with new sessions5865 behaves like cleaning up5866 does not bail if there are no lookup entries5867 when removing obsolete sessions5868 removes obsolete lookup entries5869 cleaning up old sessions5870 removes obsolete active sessions entries5871 removes obsolete lookup entries5872 removes obsolete lookup entries even without active session5873 when the number of active sessions is lower than the limit5874 does not remove active session entries, but removes lookup entries5875 cleaning up old sessions stored by Rack::Session::SessionId#private_id5876 removes obsolete active sessions entries5877 .cleaned_up_lookup_entries5878 with legacy sessions5879 behaves like cleaning up lookup entries5880 removes obsolete lookup entries5881 reports the removed entries5882 with new sessions5883 behaves like cleaning up lookup entries5884 removes obsolete lookup entries5885 reports the removed entries5886Metrics::Dashboard::CustomDashboardService5887 #raw_dashboard5888 behaves like #raw_dashboard raises error if dashboard loading fails5889 when yaml is too large5890 raises error5891 when yaml loader returns error5892 raises error5893 when yaml is not a hash5894 returns nil5895 #get_dashboard5896 when the dashboard does not exist5897 does not update gitlab_metrics_dashboard_processing_time_ms metric5898 behaves like misconfigured dashboard service response5899 returns an appropriate message and status code5900 behaves like raises error for users with insufficient permissions5901 when the user does not have sufficient access5902 behaves like misconfigured dashboard service response5903 returns an appropriate message and status code5904 when the user is anonymous5905 behaves like misconfigured dashboard service response5906 returns an appropriate message and status code5907 when the dashboard exists5908 caches the unprocessed dashboard for subsequent calls5909 tracks panel type5910 behaves like valid dashboard service response5911 behaves like valid dashboard service response for schema5912 returns a json representation of the dashboard5913 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric5914 prometheus5915 with metric in database5916 includes metric_id5917 and the dashboard is then deleted5918 does not return the previously cached dashboard5919 when the dashboard is configured incorrectly5920 behaves like misconfigured dashboard service response5921 returns an appropriate message and status code5922 .all_dashboard_paths5923 when there are no project dashboards5924 returns an empty array5925 when there are project dashboards available5926 returns the dashboard attributes5927 caches repo file list5928 .valid_params?5929 is expected to be truthy5930 missing dashboard_path5931 is expected to be falsey5932 empty dashboard_path5933 is expected to be falsey5934Gitlab::Auth::Ldap::Person5935 .normalize_dn5936 behaves like normalizes a DN5937 test_description: "strips extraneous whitespace", given: "uid =John Smith , ou = People, dc= example,dc =com", expected: "uid=john smith,ou=people,dc=example,dc=com"5938 normalizes the DN5939 test_description: "strips extraneous whitespace for a DN with a single RDN", given: "uid = John Smith", expected: "uid=john smith"5940 normalizes the DN5941 test_description: "unescapes non-reserved, non-special Unicode characters", given: "uid = Sebasti\\c3\\a1n\\ C.\\20Smith, ou=People (aka. \\22humans\\\") ,dc=example, dc=com", expected: "uid=sebastián c. smith,ou=people (aka. \\\"humans\\\"),dc=example,dc=com"5942 normalizes the DN5943 test_description: "downcases the whole string", given: "UID=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5944 normalizes the DN5945 test_description: "for a null DN (empty string), returns empty string and does not error", given: "", expected: ""5946 normalizes the DN5947 test_description: "does not strip an escaped leading space in an attribute value", given: "uid=\\ John Smith,ou=People,dc=example,dc=com", expected: "uid=\\ john smith,ou=people,dc=example,dc=com"5948 normalizes the DN5949 test_description: "does not strip an escaped leading space in the last attribute value", given: "uid=\\ John Smith", expected: "uid=\\ john smith"5950 normalizes the DN5951 test_description: "does not strip an escaped trailing space in an attribute value", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5952 normalizes the DN5953 test_description: "strips extraneous spaces after an escaped trailing space", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5954 normalizes the DN5955 test_description: "strips extraneous spaces after an escaped trailing space at the end of the DN", given: "uid=John Smith,ou=People,dc=example,dc=com\\ ", expected: "uid=john smith,ou=people,dc=example,dc=com\\ "5956 normalizes the DN5957 test_description: "properly preserves escaped trailing space after unescaped trailing spaces", given: "uid=John Smith \\ ,ou=People,dc=example,dc=com", expected: "uid=john smith \\ ,ou=people,dc=example,dc=com"5958 normalizes the DN5959 test_description: "preserves multiple inner spaces in an attribute value", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5960 normalizes the DN5961 test_description: "preserves inner spaces after an escaped space", given: "uid=John\\ Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5962 normalizes the DN5963 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "uid=\\\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5964 normalizes the DN5965 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "uid=John Smith\\\n,ou=People,dc=example,dc=com", expected: "uid=john smith\\0a,ou=people,dc=example,dc=com"5966 normalizes the DN5967 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN?)", given: "uid=\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5968 normalizes the DN5969 test_description: "strips an unescaped trailing newline (actually an invalid DN?)", given: "uid=John Smith\n,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5970 normalizes the DN5971 test_description: "does not strip if no extraneous whitespace", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5972 normalizes the DN5973 test_description: "does not modify an escaped equal sign in an attribute value", given: "uid= foo \\= bar", expected: "uid=foo \\= bar"5974 normalizes the DN5975 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: "uid= foo \\3D bar", expected: "uid=foo \\= bar"5976 normalizes the DN5977 test_description: "does not modify an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\, CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5978 normalizes the DN5979 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\2C CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5980 normalizes the DN5981 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0DCA", expected: "uid=john c. smith,ou=san francisco\\,\\0dca"5982 normalizes the DN5983 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0aca"5984 normalizes the DN5985 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0D\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0d\\0aca"5986 normalizes the DN5987 test_description: "allows attribute type name OIDs", given: "0.9.2342.19200300.100.1.25=Example,0.9.2342.19200300.100.1.25=Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5988 normalizes the DN5989 test_description: "strips extraneous whitespace from attribute type name OIDs", given: "0.9.2342.19200300.100.1.25 = Example, 0.9.2342.19200300.100.1.25 = Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5990 normalizes the DN5991 with an exception during normalization5992 returns the given DN unmodified5993 .normalize_uid5994 behaves like normalizes a DN attribute value5995 test_description: "strips extraneous whitespace", given: " John Smith ", expected: "john smith"5996 normalizes the DN attribute value5997 test_description: "unescapes non-reserved, non-special Unicode characters", given: "Sebasti\\c3\\a1n\\ C.\\20Smith", expected: "sebastián c. smith"5998 normalizes the DN attribute value5999 test_description: "downcases the whole string", given: "JoHn C. Smith", expected: "john c. smith"6000 normalizes the DN attribute value6001 test_description: "does not strip an escaped leading space in an attribute value", given: "\\ John Smith", expected: "\\ john smith"6002 normalizes the DN attribute value6003 test_description: "does not strip an escaped trailing space in an attribute value", given: "John Smith\\ ", expected: "john smith\\ "6004 normalizes the DN attribute value6005 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "\\\nJohn Smith", expected: "\\0ajohn smith"6006 normalizes the DN attribute value6007 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "John Smith\\\n", expected: "john smith\\0a"6008 normalizes the DN attribute value6009 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN value?)", given: "\nJohn Smith", expected: "\\0ajohn smith"6010 normalizes the DN attribute value6011 test_description: "strips an unescaped trailing newline (actually an invalid DN value?)", given: "John Smith\n", expected: "john smith"6012 normalizes the DN attribute value6013 test_description: "does not strip if no extraneous whitespace", given: "John Smith", expected: "john smith"6014 normalizes the DN attribute value6015 test_description: "does not modify an escaped equal sign in an attribute value", given: " foo \\= bar", expected: "foo \\= bar"6016 normalizes the DN attribute value6017 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: " foo \\3D bar", expected: "foo \\= bar"6018 normalizes the DN attribute value6019 test_description: "does not modify an escaped comma in an attribute value", given: "San Francisco\\, CA", expected: "san francisco\\, ca"6020 normalizes the DN attribute value6021 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "San Francisco\\2C CA", expected: "san francisco\\, ca"6022 normalizes the DN attribute value6023 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "San Francisco\\,\\0DCA", expected: "san francisco\\,\\0dca"6024 normalizes the DN attribute value6025 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "San Francisco\\,\\0ACA", expected: "san francisco\\,\\0aca"6026 normalizes the DN attribute value6027 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "San Francisco\\,\\0D\\0ACA", expected: "san francisco\\,\\0d\\0aca"6028 normalizes the DN attribute value6029 with an exception during normalization6030 returns the given UID unmodified6031 .ldap_attributes6032 returns a compact and unique array6033 #name6034 uses the configured name attribute and handles values as an array6035 #email6036 returns the value of mail, if present6037 returns the value of userPrincipalName, if mail and email are not present6038 #username6039 with default uid username attribute6040 returns the proper username value6041 with a different username attribute6042 returns the proper username value6043 with a non-standard username attribute6044 returns the proper username value6045 if lowercase_usernames setting is6046 enabled the username attribute is lower cased6047 disabled the username attribute is not lower cased6048ServerlessDomainFinder6049 #serverless?6050 with a valid URI6051 is expected to be truthy6052 with an invalid URI6053 is expected to be falsy6054 #serverless_domain_cluster_uuid6055 with a valid URI6056 is expected to eq "abcdef12345678"6057 with an invalid URI6058 is expected to be nil6059 #execute6060 with a valid URI6061 has the correct function_name6062 has the correct serverless_domain_cluster6063 has the correct environment6064 with an invalid URI6065 is expected to be nil6066Gitlab::Usage::Metrics::Aggregates::Aggregate6067 aggregated_metrics_data6068 allows for YAML aliases in aggregated metrics configs6069 .aggregated_metrics_all_time_data6070 behaves like database_sourced_aggregated_metrics6071 behaves like aggregated_metrics_data6072 no aggregated metric is defined6073 returns empty hash6074 there are aggregated metrics defined6075 with OR operator6076 returns the number of unique events occurred for any metric in aggregate6077 with AND operator6078 returns the number of unique events that occurred for all of metrics in the aggregate6079 hidden behind feature flag6080 does not calculate data for aggregates with ff turned off6081 error handling6082 development and test environment6083 raises error when unknown aggregation operator is used6084 raises error when unknown aggregation source is used6085 raises error when union is missing6086 production6087 rescues unknown aggregation operator error6088 rescues unknown aggregation source error6089 rescues error when union is missing6090 redis sourced aggregated metrics6091 development and test environment6092 raises Gitlab::Usage::Metrics::Aggregates::DisallowedAggregationTimeFrame6093 production env6094 returns fallback value for unsupported time frame6095 .aggregated_metrics_weekly_data6096 behaves like database_sourced_aggregated_metrics6097 behaves like aggregated_metrics_data6098 no aggregated metric is defined6099 returns empty hash6100 there are aggregated metrics defined6101 with OR operator6102 returns the number of unique events occurred for any metric in aggregate6103 with AND operator6104 returns the number of unique events that occurred for all of metrics in the aggregate6105 hidden behind feature flag6106 does not calculate data for aggregates with ff turned off6107 error handling6108 development and test environment6109 raises error when unknown aggregation operator is used6110 raises error when unknown aggregation source is used6111 raises error when union is missing6112 production6113 rescues unknown aggregation operator error6114 rescues unknown aggregation source error6115 rescues error when union is missing6116 behaves like redis_sourced_aggregated_metrics6117 behaves like aggregated_metrics_data6118 no aggregated metric is defined6119 returns empty hash6120 there are aggregated metrics defined6121 with OR operator6122 returns the number of unique events occurred for any metric in aggregate6123 with AND operator6124 returns the number of unique events that occurred for all of metrics in the aggregate6125 hidden behind feature flag6126 does not calculate data for aggregates with ff turned off6127 error handling6128 development and test environment6129 raises error when unknown aggregation operator is used6130 raises error when unknown aggregation source is used6131 raises error when union is missing6132 production6133 rescues unknown aggregation operator error6134 rescues unknown aggregation source error6135 rescues error when union is missing6136 error handling6137 development and test environment6138 re raises Gitlab::UsageDataCounters::HLLRedisCounter::EventError6139 production6140 rescues Gitlab::UsageDataCounters::HLLRedisCounter::EventError6141 .aggregated_metrics_monthly_data6142 behaves like database_sourced_aggregated_metrics6143 behaves like aggregated_metrics_data6144 no aggregated metric is defined6145 returns empty hash6146 there are aggregated metrics defined6147 with OR operator6148 returns the number of unique events occurred for any metric in aggregate6149 with AND operator6150 returns the number of unique events that occurred for all of metrics in the aggregate6151 hidden behind feature flag6152 does not calculate data for aggregates with ff turned off6153 error handling6154 development and test environment6155 raises error when unknown aggregation operator is used6156 raises error when unknown aggregation source is used6157 raises error when union is missing6158 production6159 rescues unknown aggregation operator error6160 rescues unknown aggregation source error6161 rescues error when union is missing6162 behaves like redis_sourced_aggregated_metrics6163 behaves like aggregated_metrics_data6164 no aggregated metric is defined6165 returns empty hash6166 there are aggregated metrics defined6167 with OR operator6168 returns the number of unique events occurred for any metric in aggregate6169 with AND operator6170 returns the number of unique events that occurred for all of metrics in the aggregate6171 hidden behind feature flag6172 does not calculate data for aggregates with ff turned off6173 error handling6174 development and test environment6175 raises error when unknown aggregation operator is used6176 raises error when unknown aggregation source is used6177 raises error when union is missing6178 production6179 rescues unknown aggregation operator error6180 rescues unknown aggregation source error6181 rescues error when union is missing6182 error handling6183 development and test environment6184 re raises Gitlab::UsageDataCounters::HLLRedisCounter::EventError6185 production6186 rescues Gitlab::UsageDataCounters::HLLRedisCounter::EventError6187OnboardingProgress6188 associations6189 is expected to belong to namespace required: true6190 validations6191 namespace_is_root_namespace6192 when associated namespace is root6193 is expected to be valid6194 when associated namespace is not root6195 is invalid6196 scopes6197 .incomplete_actions6198 when given one action6199 is expected to eq [#<OnboardingProgress id: 15, namespace_id: 3324, created_at: "2022-04-28 09:34:59.764158911 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]6200 when given an array of actions6201 is expected to eq [#<OnboardingProgress id: 17, namespace_id: 3326, created_at: "2022-04-28 09:34:59.985049532 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]6202 .completed_actions6203 when given one action6204 is expected to eq [#<OnboardingProgress id: 19, namespace_id: 3328, created_at: "2022-04-28 09:35:00.212687172 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]6205 when given an array of actions6206 is expected to eq [#<OnboardingProgress id: 22, namespace_id: 3331, created_at: "2022-04-28 09:35:00.535211654 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]6207 .completed_actions_with_latest_in_range6208 when given one action6209 is expected to eq [#<OnboardingProgress id: 24, namespace_id: 3333, created_at: "2022-04-28 09:35:00.735242016 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]6210 when given an array of actions6211 is expected to eq [#<OnboardingProgress id: 30, namespace_id: 3339, created_at: "2022-04-28 09:35:01.316499935 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]6212 .onboard6213 adds a record for the namespace6214 when not given a namespace6215 does not add a record for the namespace6216 when not given a root namespace6217 does not add a record for the namespace6218 .onboarding?6219 when onboarded6220 is expected to eq true6221 when not onboarding6222 is expected to eq false6223 .register6224 for a single action6225 when the namespace was onboarded6226 registers the action for the namespace6227 does not override timestamp6228 when the action does not exist6229 does not register the action for the namespace6230 when the namespace was not onboarded6231 does not register the action for the namespace6232 for multiple actions6233 when the namespace was onboarded6234 registers the actions for the namespace6235 does not override timestamp6236 when one of the actions does not exist6237 does not register any action for the namespace6238 when the namespace was not onboarded6239 does not register the action for the namespace6240 .completed?6241 when the namespace has not yet been onboarded6242 is expected to eq false6243 when the namespace has been onboarded but not registered the action yet6244 is expected to eq false6245 when the action has been registered6246 is expected to eq true6247 .not_completed?6248 when the namespace has not yet been onboarded6249 is expected to equal false6250 when the namespace has been onboarded but not registered the action yet6251 is expected to equal true6252 when the action has been registered6253 is expected to equal false6254 .column_name6255 is expected to eq :subscription_created_at6256 #number_of_completed_actions6257 0 completed actions6258 is expected to eq 06259 1 completed action6260 is expected to eq 16261 2 completed actions6262 is expected to eq 26263Gitlab::Database::LoadBalancing::Host6264 #connection6265 returns a connection from the pool6266 #disconnect!6267 disconnects the pool6268 disconnects the pool when waiting for connections takes too long6269 #release_connection6270 releases the current connection from the pool6271 #offline!6272 marks the host as offline6273 #online?6274 when the replica status is recent enough6275 returns the latest status6276 returns an offline status6277 when the replica status is outdated6278 refreshes the status6279 and replica is not up to date6280 marks the host offline6281 when the replica is not online6282 returns false when ActionView::Template::Error is raised6283 returns false when ActiveRecord::StatementInvalid is raised6284 returns false when PG::Error is raised6285 returns false when ActiveRecord::ConnectionNotEstablished is raised6286 #refresh_status6287 refreshes the status6288 #check_replica_status?6289 returns true when we need to check the replica status6290 returns false when we do not need to check the replica status6291 #replica_is_up_to_date?6292 when the lag time is below the threshold6293 returns true6294 when the lag time exceeds the threshold6295 returns true if the data is recent enough6296 returns false when the data is not recent enough6297 #replication_lag_below_threshold6298 returns true when the lag time is below the threshold6299 returns false when the lag time exceeds the threshold6300 returns false when no lag time could be calculated6301 #data_is_recent_enough?6302 returns true when the data is recent enough6303 returns false when the data is not recent enough6304 returns false when no lag size could be calculated6305 #replication_lag_time6306 returns the lag time as a Float6307 returns nil when the database query returned no rows6308 #replication_lag_size6309 returns the lag size as an Integer6310 returns nil when the database query returned no rows6311 returns nil when the database connection fails6312 #primary_write_location6313 returns the write location of the primary6314 #caught_up?6315 returns true when a host has caught up6316 returns true when a host has caught up6317 returns false when a host has not caught up6318 returns false when a host has not caught up6319 returns false when the connection fails6320 #database_replica_location6321 returns the write ahead location of the replica6322 returns nil when the database query returned no rows6323 returns nil when the database connection fails6324 #query_and_release6325 executes a SQL query6326 releases the connection after running the query6327 returns an empty Hash in the event of an error6328 #host6329 returns the hostname6330Mutations::MergeRequests::SetAssignees6331 when the user does not have permissions6332 #resolve6333 behaves like permission level for merge request mutation is correctly verified6334 when the user is not a project member6335 behaves like when the user does not have access to the resource6336 raises an error6337 even if assigned to the merge request6338 does not modify merge request6339 even if reviewer of the merge request6340 raises an error6341 even if author of the merge request6342 raises an error6343 when the user is a project member6344 with guest role6345 behaves like when the user does not have access to the resource6346 raises an error6347 even if assigned to the merge request6348 does not modify merge request6349 even if reviewer of the merge request6350 raises an error6351 even if author of the merge request6352 raises an error6353 with reporter role6354 behaves like when the user does not have access to the resource6355 raises an error6356 even if assigned to the merge request6357 does not modify merge request6358 even if reviewer of the merge request6359 raises an error6360 even if author of the merge request6361 raises an error6362 behaves like an assignable resource6363 #resolve6364 raises an error if the resource is not accessible to the user6365 does not change assignees if the resource is not accessible to the assignees6366 returns an operational error if the resource is not accessible to the assignees6367 when the user can update the resource6368 replaces the assignee6369 returns errors when resource could not be updated6370 when passing an empty assignee list6371 removes all assignees6372 when passing "append" as true6373 is a NO-OP in FOSS6374 when passing "remove" as true6375 removes named assignee6376 does not remove unnamed assignee6377Gitlab::Metrics::Dashboard::Processor6378 process6379 includes an id for each dashboard panel6380 includes boolean to indicate if panel group has custom metrics6381 when the dashboard is not present6382 returns nil6383 when dashboard config corresponds to common metrics6384 inserts metric ids into the config6385 when the project has associated metrics6386 includes project-specific metrics6387 display groups and panels in the order they are defined6388 when the project has multiple metrics in the same group6389 includes multiple metrics6390 when the dashboard should not include project metrics6391 includes only dashboard metrics6392 when sample_metrics are requested6393 includes a sample metrics path for the prometheus endpoint with each metric6394 when the dashboard references persisted metrics with alerts6395 that are shared across projects6396 behaves like has saved alerts6397 includes an alert path6398 when the project has associated metrics6399 behaves like has saved alerts6400 includes an alert path6401 when there are no alerts6402 does not insert an alert_path6403 when the dashboard is missing panel_groups6404 behaves like errors with message6405 raises a DashboardLayoutError6406 when the dashboard contains a panel_group which is missing panels6407 behaves like errors with message6408 raises a DashboardLayoutError6409 when the dashboard contains a panel which is missing metrics6410 behaves like errors with message6411 raises a DashboardLayoutError6412 when the dashboard contains a metric which is missing a query6413 behaves like errors with message6414 raises a DashboardLayoutError6415SshHostKey6416 .primary_key6417 returns a symbol6418 .find_by6419 accepts a string key6420 accepts a symbol key6421 #fingerprints6422 returns an array of indexed fingerprints when the cache is filled6423 returns an empty array when the cache is empty6424 #fingerprints6425 returns an array of indexed fingerprints when the cache is filled6426 returns an empty array when the cache is empty6427 #host_keys_changed?6428 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", result: true6429 (normal)6430 is expected to eq true6431 (reversed)6432 is expected to eq true6433 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "foo\n", result: true6434 (normal)6435 is expected to eq true6436 (reversed)6437 is expected to eq true6438 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "", result: true6439 (normal)6440 is expected to eq true6441 (reversed)6442 is expected to eq true6443 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: nil, result: true6444 (normal)6445 is expected to eq true6446 (reversed)6447 is expected to eq true6448 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false6449 (normal)6450 is expected to eq false6451 (reversed)6452 is expected to eq false6453 known_hosts_a: "@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nexample.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false6454 (normal)6455 is expected to eq false6456 (reversed)6457 is expected to eq false6458 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", known_hosts_b: "foo\n", result: true6459 (normal)6460 is expected to eq true6461 (reversed)6462 is expected to eq true6463 known_hosts_a: "", known_hosts_b: "", result: false6464 (normal)6465 is expected to eq false6466 (reversed)6467 is expected to eq false6468 known_hosts_a: nil, known_hosts_b: nil, result: false6469 (normal)6470 is expected to eq false6471 (reversed)6472 is expected to eq false6473 known_hosts_a: "", known_hosts_b: nil, result: false6474 (normal)6475 is expected to eq false6476 (reversed)6477 is expected to eq false6478 #calculate_reactive_cache6479 writes the hostname to STDIN6480 successful key scan6481 stores the cleaned known_hosts data6482 failed key scan (exit code 1)6483 returns a generic error6484 failed key scan (exit code 0)6485 returns a generic error6486 DNS rebinding protection enabled6487 sends an address as well as hostname to ssh-keyscan6488 URL validation6489 when local requests are not allowed6490 forbids scanning localhost6491 when local requests are allowed6492 permits scanning localhost6493Ci::StuckBuilds::DropScheduledService6494 when job is scheduled6495 for more than an hour ago6496 behaves like job is dropped with failure reason6497 changes status6498 when job has data integrity problem6499 drops the job and logs the reason6500 for less than 1 hour ago6501 behaves like job is unchanged6502 does not change status6503 when job is success6504 and scheduled for more than an hour ago6505 behaves like job is unchanged6506 does not change status6507 and scheduled for less than 1 hour ago6508 behaves like job is unchanged6509 does not change status6510 when job is skipped6511 and scheduled for more than an hour ago6512 behaves like job is unchanged6513 does not change status6514 and scheduled for less than 1 hour ago6515 behaves like job is unchanged6516 does not change status6517 when job is failed6518 and scheduled for more than an hour ago6519 behaves like job is unchanged6520 does not change status6521 and scheduled for less than 1 hour ago6522 behaves like job is unchanged6523 does not change status6524 when job is canceled6525 and scheduled for more than an hour ago6526 behaves like job is unchanged6527 does not change status6528 and scheduled for less than 1 hour ago6529 behaves like job is unchanged6530 does not change status6531 when job is running6532 and scheduled for more than an hour ago6533 behaves like job is unchanged6534 does not change status6535 and scheduled for less than 1 hour ago6536 behaves like job is unchanged6537 does not change status6538 when job is pending6539 and scheduled for more than an hour ago6540 behaves like job is unchanged6541 does not change status6542 and scheduled for less than 1 hour ago6543 behaves like job is unchanged6544 does not change status6545 when there are no stale scheduled builds6546 does not drop the stale scheduled build yet6547Environments::EnvironmentsByDeploymentsFinder6548 #execute6549 tagged deployment6550 does not return environment when commit is not part of deployment6551 only calls Gitaly twice when multiple environments are present6552 branch deployment6553 returns environment when ref is set6554 does not environment when ref is different6555 does not return environment when commit is not part of deployment6556 returns environment when commit constraint is not set6557 sha deployment6558 returns environment6559 does not return environment when sha is different6560 commit deployment6561 returns environment6562 recently updated6563 when last deployment to environment is the most recent one6564 finds recently updated environment6565 when last deployment to environment is not the most recent6566 does not find environment6567 when there are two environments that deploy to the same branch6568 finds both environments6569Nav::TopNavHelper6570 #top_nav_view_model6571 has :activeTitle6572 when current_user is nil (anonymous)6573 has expected :primary6574 has expected :shortcuts6575 has expected :secondary6576 with current nav as project6577 has expected :active6578 when current_user is non-admin6579 has no menu items or views by default6580 with projects6581 has expected :primary6582 has expected :shortcuts6583 projects6584 has expected :currentUserName6585 has expected :namespace6586 has expected :linksPrimary6587 has expected :linksSecondary6588 with current nav as project6589 has expected :active6590 with persisted project6591 has project as :container6592 with groups6593 has expected :primary6594 has expected :shortcuts6595 groups6596 has expected :currentUserName6597 has expected :namespace6598 has expected :linksPrimary6599 has expected :linksSecondary6600 with external user6601 does not have create group link6602 with current nav as group6603 has expected :active6604 with persisted group6605 has expected :container6606 with milestones6607 has expected :primary6608 has expected :shortcuts6609 with snippets6610 has expected :primary6611 has expected :shortcuts6612 with activity6613 has expected :primary6614 has expected :shortcuts6615 when current_user is admin6616 has admin as first :secondary item6617 with header link admin_mode true6618 has leave_admin_mode as last :secondary item6619 with header link admin_mode false6620 has enter_admin_mode as last :secondary item6621 #top_nav_responsive_view_model6622 has nil new subview6623 has nil search subview6624 with search6625 has search subview6626 with new6627 has new subview6628 with new and no menu_sections6629 has new subview6630Gitlab::GitalyClient::OperationService6631 #user_create_branch6632 sends a user_create_branch message and returns a Gitlab::git::Branch6633 when pre_receive_error is present6634 throws a PreReceive exception6635 #user_update_branch6636 sends a user_update_branch message6637 #user_merge_to_ref6638 sends a user_merge_to_ref message6639 when pre_receive_error is present6640 throws a PreReceive exception6641 #user_delete_branch6642 sends a user_delete_branch message6643 when pre_receive_error is present6644 throws a PreReceive exception6645 #user_merge_branch6646 sends a user_merge_branch message6647 with an exception with the UserMergeBranchError6648 raises PreRecieveError with the error message6649 with an exception without the detailed error6650 raises PermissionDenied6651 with ReferenceUpdateError6652 returns nil6653 #user_ff_branch6654 sends a user_ff_branch message and returns a BranchUpdate object6655 when the response has no branch_update6656 is expected to be nil6657 when the pre-receive hook fails6658 raises the error6659 #user_cherry_pick6660 behaves like cherry pick and revert errors6661 when a pre_receive_error is present6662 raises a PreReceiveError6663 when a commit_error is present6664 raises a CommitError6665 when a create_tree_error is present6666 raises a CreateTreeError6667 when branch_update is nil6668 is expected to be nil6669 #user_revert6670 behaves like cherry pick and revert errors6671 when a pre_receive_error is present6672 raises a PreReceiveError6673 when a commit_error is present6674 raises a CommitError6675 when a create_tree_error is present6676 raises a CreateTreeError6677 when branch_update is nil6678 is expected to be nil6679 #rebase6680 when AccessError is raised6681 behaves like #rebase with an error6682 raises a GitError exception6683 when RebaseConflictError is raised6684 behaves like #rebase with an error6685 raises a GitError exception6686 when non-detailed gRPC error is raised6687 behaves like #rebase with an error6688 raises a GitError exception6689 #user_squash6690 sends a user_squash message and returns the squash sha6691 when git_error is present6692 raises a GitError exception6693 when ResolveRevisionError is raised6694 behaves like #user_squash with an error6695 raises a GitError exception6696 when RebaseConflictError is raised6697 behaves like #user_squash with an error6698 raises a GitError exception6699 when non-detailed gRPC error is raised6700 behaves like #user_squash with an error6701 raises a GitError exception6702 #user_commit_files6703 when a pre_receive_error is present6704 raises a PreReceiveError6705 when an index_error is present6706 raises a PreReceiveError6707 when branch_update is nil6708 is expected to be nil6709 #user_commit_patches6710 applies the patch correctly6711 when the patch could not be applied6712 raises the correct error6713MergeRequestAssignee6714 associations6715 is expected to belong to merge_request class_name => MergeRequest required: false6716 is expected to belong to assignee class_name => User required: false6717 validations6718 is expected to validate that :assignee is case-sensitively unique within the scope of :merge_request_id6719 scopes6720 in_projects6721 returns issue assignees for given project6722 behaves like having unique enum values6723 has unique values in "state"6724 behaves like having reviewer state6725 mr_attention_requests feature flag is disabled6726 is expected to have attributes {:state => "unreviewed"}6727 mr_attention_requests feature flag is enabled6728 is expected to have attributes {:state => "attention_requested"}6729 syncs to reviewer state6730 is expected to have attributes {:state => "reviewed"}6731 #attention_requested_by6732 attention requested6733 is expected to eq #<User id:2052 @user875>6734 attention requested6735 is expected to eq nil6736Packages::CreateEventService6737 #execute6738 with a user6739 behaves like db package event creation6740 with feature flag disable6741 does not create an event6742 with feature flag enabled6743 creates the event6744 on a read-only instance6745 does not create an event6746 behaves like redis package unique event creation6747 tracks the event6748 behaves like redis package count event creation6749 tracks the event6750 with a deploy token6751 behaves like db package event creation6752 with feature flag disable6753 does not create an event6754 with feature flag enabled6755 creates the event6756 on a read-only instance6757 does not create an event6758 behaves like redis package unique event creation6759 tracks the event6760 behaves like redis package count event creation6761 tracks the event6762 with no user6763 behaves like db package event creation6764 with feature flag disable6765 does not create an event6766 with feature flag enabled6767 creates the event6768 on a read-only instance6769 does not create an event6770 behaves like redis package count event creation6771 tracks the event6772 with a package as scope6773 as guest6774 behaves like db package event creation6775 with feature flag disable6776 does not create an event6777 with feature flag enabled6778 creates the event6779 on a read-only instance6780 does not create an event6781 behaves like redis package count event creation6782 tracks the event6783 with user6784 behaves like db package event creation6785 with feature flag disable6786 does not create an event6787 with feature flag enabled6788 creates the event6789 on a read-only instance6790 does not create an event6791 behaves like redis package unique event creation6792 tracks the event6793 behaves like redis package count event creation6794 tracks the event6795Clusters::KubernetesNamespace6796 is expected to belong to cluster_project required: false6797 is expected to belong to project required: false6798 is expected to belong to cluster required: false6799 is expected to have one platform_kubernetes6800 has_service_account_token6801 namespace has service_account_token6802 is expected to include #<Clusters::KubernetesNamespace id: 1, cluster_id: 81, project_id: 1323, cluster_project_id: 15, crea..._account_name: "project1380-1323--service-account", environment_id: nil, service_account_token: nil>6803 namespace has no service_account_token6804 is expected not to include #<Clusters::KubernetesNamespace id: 2, cluster_id: 84, project_id: 1324, cluster_project_id: 16, crea..._account_name: "project1381-1324--service-account", environment_id: nil, service_account_token: nil>6805 .with_environment_name6806 there is no associated environment6807 is expected to be empty6808 there is an assicated environment6809 with a matching name6810 is expected to eq [#<Clusters::KubernetesNamespace id: 4, cluster_id: 86, project_id: 1326, cluster_project_id: nil, cr...me: "project1383-1326-production-service-account", environment_id: 262, service_account_token: nil>]6811 without a matching name6812 is expected to be empty6813 namespace uniqueness validation6814 when cluster is using the namespace6815 is expected not to be valid6816 when cluster is not using the namespace6817 is expected to be valid6818 #predefined_variables6819 sets the variables6820Mutations::Issues::Create6821 is expected to require graphql authorizations :create_issue6822 #resolve6823 when the user does not have permission to create an issue6824 raises an error6825 when the user has exceeded the rate limit6826 raises an error6827 when the user can create an issue6828 when creating an issue a developer6829 creates issue with correct values6830 when passing in label_ids6831 creates issue with correct values6832 when trying to create issue with restricted params6833 ignores the special params6834 when creating a non-default issue type6835 creates issue with correct values6836 when creating an issue as owner6837 sets the special params6838 #ready?6839 when passing in both labels and label_ids6840 raises exception when mutually exclusive params are given6841 when passing only `discussion_to_resolve` param6842 raises exception when mutually exclusive params are given6843 when passing only `merge_request_to_resolve_discussions_of` param6844 raises exception when mutually exclusive params are given6845Mutations::Releases::Create6846 #resolve6847 when the current user has access to create releases6848 returns no errors6849 creates the release with the correct tag6850 creates the release with the correct name6851 creates the release with the correct description6852 creates the release with the correct released_at6853 creates the release with the correct created_at6854 creates the release with the correct milestone associations6855 asset links6856 creates a single asset link6857 creates the link with the correct name6858 creates the link with the correct url6859 creates the link with the correct link type6860 creates the link with the correct direct filepath6861 with protected tag6862 when user has access to the protected tag6863 does not have errors6864 when user does not have access to the protected tag6865 has an access error6866 when the current user doesn't have access to create releases6867 raises an error6868Ci::Runners::RegisterRunnerService#execute6869 when no token is provided6870 returns nil6871 when invalid token is provided6872 returns nil6873 when valid token is provided6874 with a registration token6875 creates runner with default values6876 with non-default arguments6877 creates runner with specified values6878 with runner token expiration interval6879 creates runner with token expiration6880 when project token is used6881 creates project runner6882 when it exceeds the application limits6883 does not create runner6884 when abandoned runners cause application limits to not be exceeded6885 creates runner6886 when valid runner registrars do not include project6887 when feature flag is enabled6888 returns 403 error6889 when feature flag is disabled6890 registers the runner6891 when group token is used6892 creates a group runner6893 when it exceeds the application limits6894 does not create runner6895 when abandoned runners cause application limits to not be exceeded6896 creates runner6897 when valid runner registrars do not include group6898 when feature flag is enabled6899 returns nil6900 when feature flag is disabled6901 registers the runner6902Gitlab::Ci::Pipeline::Chain::Validate::External6903 #perform!6904 respects the defined payload schema6905 with configuration values in ApplicationSetting6906 uses those values rather than env vars or defaults6907 with EXTERNAL_VALIDATION_SERVICE_TIMEOUT defined6908 with valid value6909 uses defined timeout6910 with invalid value6911 uses default timeout6912 when EXTERNAL_VALIDATION_SERVICE_TOKEN is set6913 passes token in X-Gitlab-Token header6914 when validation returns 200 OK6915 behaves like successful external authorization6916 does not drop the pipeline6917 does not break the chain6918 logs the authorization6919 returns expected payload6920 when validation returns 404 Not Found6921 behaves like successful external authorization6922 does not drop the pipeline6923 does not break the chain6924 logs the authorization6925 returns expected payload6926 when validation returns 500 Internal Server Error6927 behaves like successful external authorization6928 does not drop the pipeline6929 does not break the chain6930 logs the authorization6931 returns expected payload6932 when validation raises exceptions6933 logs exceptions6934 behaves like successful external authorization6935 does not drop the pipeline6936 does not break the chain6937 logs the authorization6938 returns expected payload6939 when validation returns 406 Not Acceptable6940 drops the pipeline6941 breaks the chain6942 logs the authorization6943 when save_incompleted is false6944 adds errors to the pipeline without dropping it6945 breaks the chain6946 logs the authorization6947ExtractsPath6948 #assign_ref_vars6949 log tree path has no escape sequences6950 behaves like assigns ref vars6951 assigns the repository var6952 ref contains %206953 is not converted to a space in @id6954 ref contains trailing space6955 strips surrounding space6956 ref contains leading space6957 strips surrounding space6958 path contains space6959 is not converted to %20 in @path6960 subclass overrides get_id6961 uses ref returned by get_id6962 ref contains space in the middle6963 returns 4046964 ref only exists without .atom suffix6965 with a path6966 renders a 4046967 without a path6968 sets the un-suffixed version as @ref6969 sets the request format to Atom6970 ref exists with .atom suffix6971 with a path6972 sets the suffixed version as @ref6973 does not change the request format6974 without a path6975 sets the suffixed version as @ref6976 does not change the request format6977 ref and path are nil6978 does not set commit6979 ref points to a previous default branch6980 redirects to the new default branch for a GET request6981 redirects to the new default branch for a HEAD request6982 returns 404 for any other request type6983 redirect behaviour is disabled6984 returns 404 for a GET request6985 behaves like extracts refs6986 #extract_ref6987 returns an empty pair when no repository_container is set6988 without a path6989 extracts a valid branch6990 extracts a valid tag6991 extracts a valid commit ref without a path6992 falls back to a primitive split for an invalid ref6993 does not fetch ref names when there is no slash6994 fetches ref names when there is a slash6995 with a path6996 extracts a valid branch6997 extracts a valid tag6998 extracts a valid commit SHA6999 falls back to a primitive split for an invalid ref7000 extracts the longest matching ref7001 when the repository does not have ambiguous refs7002 does not fetch all ref names when the first path component is a ref7003 fetches all ref names when the first path component is not a ref7004 when the repository has ambiguous refs7005 always fetches all ref names7006 #extract_ref_without_atom7007 ignores any matching refs suffixed with atom7008 returns the longest matching ref7009 raises an error if there are no matching refs7010Ci::Lint::ResultSerializer7011 when config is invalid7012 returns expected validity7013 returns job data7014 behaves like matches schema7015 is expected to match schema "entities/lint_result_entity"7016 when config is valid7017 returns expected validity7018 returns job data7019 behaves like matches schema7020 is expected to match schema "entities/lint_result_entity"7021 when dry run is enabled7022 returns expected validity7023 returns job data7024 behaves like matches schema7025 is expected to match schema "entities/lint_result_entity"7026 when only is not nil in the yaml7027 when only: is hash7028 renders only:refs as hash7029 behaves like matches schema7030 is expected to match schema "entities/lint_result_entity"7031 when only is an array of strings in the yaml7032 renders only: list as hash7033 behaves like matches schema7034 is expected to match schema "entities/lint_result_entity"7035 when except is not nil in the yaml7036 when except: is hash7037 renders except as hash7038 behaves like matches schema7039 is expected to match schema "entities/lint_result_entity"7040 when except is an array of strings in the yaml7041 renders only: list as hash7042 behaves like matches schema7043 is expected to match schema "entities/lint_result_entity"7044 with minimal job configuration7045 renders the job with defaults7046 behaves like matches schema7047 is expected to match schema "entities/lint_result_entity"7048 with environment defined7049 when formatted as a hash in yaml7050 renders the environment as a string7051 behaves like matches schema7052 is expected to match schema "entities/lint_result_entity"7053 when formatted as a string in yaml7054 renders the environment as a string7055 behaves like matches schema7056 is expected to match schema "entities/lint_result_entity"7057 when script values are formatted as arrays in the yaml7058 renders the scripts as arrays7059 behaves like matches schema7060 is expected to match schema "entities/lint_result_entity"7061Pages::ZipDirectoryService7062 returns true if ZIP64 is enabled7063 when work directory doesn't exist7064 returns success7065 when public directory is absent7066 returns success7067 when public directory is a symlink7068 returns success7069 when there is a public directory7070 creates the file next the public directory7071 includes public directory7072 returns number of entries7073 removes the old file if it exists7074 ignores other top level files and directories7075 includes index.html file7076 includes hidden file7077 includes nested directories and files7078 adds a valid symlink7079 includes raw symlink if it's target is a valid directory7080 when symlink points outside of public directory7081 raises error7082 when errors are ignored7083 does not create entry7084 when target of the symlink is absent7085 raises error7086 when errors are ignored7087 does not create entry7088 when targets itself7089 raises error7090 when errors are ignored7091 does not create entry7092 when symlink is absolute and points to outside of directory7093 raises error7094 when errors are ignored7095 does not create entry7096 when entry has unknown ftype7097 raises error7098 when errors are ignored7099 does not create entry7100 validating fixtures pages archives7101 fixture_path: "spec/fixtures/pages.zip"7102 a created archives contains exactly the same entries7103 fixture_path: "spec/fixtures/pages_non_writeable.zip"7104 a created archives contains exactly the same entries7105MergeWorker7106 remove source branch7107 clears cache of source repo after removing source branch7108 behaves like an idempotent worker7109 is labeled as idempotent7110 performs multiple times sequentially without raising an exception7111 the merge request is still shown as merged7112ForkTargetsFinder7113 #execute7114 returns all user manageable namespaces7115 returns only groups when only_groups option is passed7116 returns groups relation when only_groups option is passed7117Gitlab::PerformanceBar7118 is expected to eq #<ActiveSupport::Cache::MemoryStore entries=0, size=0, options={:compress=>false}>7119 is expected to eq <ActiveSupport::Cache::NullStore>7120 .allowed_for_user?7121 returns false when given user is nil7122 returns true when given user is an admin7123 returns false when allowed_group_id is nil7124 when allowed group ID does not exist7125 returns false7126 when allowed group exists7127 when user is not a member of the allowed group7128 returns false7129 caching of allowed user IDs7130 behaves like allowed user IDs are cached7131 caches the allowed user IDs in cache7132 caches the allowed user IDs in L1 cache for 1 minute7133 caches the allowed user IDs in L2 cache for 5 minutes7134 when user is a member of the allowed group7135 returns true7136 caching of allowed user IDs7137 behaves like allowed user IDs are cached7138 caches the allowed user IDs in cache7139 caches the allowed user IDs in L1 cache for 1 minute7140 caches the allowed user IDs in L2 cache for 5 minutes7141 when allowed group is nested7142 returns the nested group7143 when a nested group has the same path7144 returns false7145Gitlab::ExclusiveLease7146 #try_obtain7147 cannot obtain twice before the lease has expired7148 can obtain after the lease has expired7149 .redis_shared_state_key7150 provides a namespaced key7151 .ensure_prefixed_key7152 does not double prefix a key7153 raises errors when there is no key7154 #renew7155 returns true when we have the existing lease7156 returns false when we dont have a lease7157 #exists?7158 returns true for an existing lease7159 returns false for a lease that does not exist7160 .get_uuid7161 gets the uuid if lease with the key associated exists7162 returns false if the lease does not exist7163 cancellation7164 .cancel7165 does not raise errors when given a nil key7166 when called with the unprefixed key7167 behaves like cancelling a lease7168 releases the held lease7169 when called with the prefixed key7170 behaves like cancelling a lease7171 releases the held lease7172 #cancel7173 is safe to call even if the lease was never obtained7174 behaves like cancelling a lease7175 releases the held lease7176 #ttl7177 returns the TTL of the Redis key7178 returns nil when the lease does not exist7179 .reset_all!7180 removes all existing lease keys from redis7181 .throttle7182 prevents repeated execution of the block7183 is distinct by block7184 is distinct by key7185 allows a group to be passed7186 defaults to a 60min timeout7187 allows count to be specified7188 allows period to be specified7189 allows period and count to be specified7190BoardPolicy7191 group board7192 user has access7193 is expected to be allowed :read_issue7194 user does not have access7195 is expected not to be allowed :read_issue7196 project board7197 user has access7198 is expected to be allowed :read_issue7199 user does not have access7200 is expected not to be allowed :read_issue7201 create_non_backlog_issues7202 for project boards7203 when user can admin project issues7204 allows to add non backlog issues from issue board7205 when user cannot admin project issues7206 does not allow to add non backlog issues from issue board7207 for group boards7208 when user is at least reporter in one of the child projects7209 allows to add non backlog issues from issue board7210 when user is not a reporter from any child projects7211 does not allow to add non backlog issues from issue board7212Metrics::Dashboard::CloneDashboardService7213 #execute7214 user does not have push right to repository7215 behaves like misconfigured dashboard service response with stepable7216 returns an appropriate message and status code7217 with rights to push to the repository7218 wrong target file extension7219 behaves like misconfigured dashboard service response with stepable7220 returns an appropriate message and status code7221 wrong source dashboard file7222 behaves like misconfigured dashboard service response with stepable7223 returns an appropriate message and status code7224 path traversal attack attempt7225 behaves like misconfigured dashboard service response with stepable7226 returns an appropriate message and status code7227 path traversal attack attempt on target file7228 strips target file name to safe value7229 valid parameters7230 extends dashboard template path to absolute url7231 behaves like valid dashboard cloning process7232 dashboard template: config/prometheus/common_metrics.yml7233 delegates commit creation to Files::CreateService7234 user has defined custom metrics7235 uses external service to includes them into new file content7236 behaves like valid dashboard cloning process7237 dashboard template: config/prometheus/cluster_metrics.yml7238 delegates commit creation to Files::CreateService7239 user has defined custom metrics7240 uses external service to includes them into new file content7241 behaves like valid dashboard cloning process7242 dashboard template: config/prometheus/self_monitoring_default.yml7243 delegates commit creation to Files::CreateService7244 user has defined custom metrics7245 uses external service to includes them into new file content7246 selected branch already exists7247 behaves like misconfigured dashboard service response with stepable7248 returns an appropriate message and status code7249 blank branch name7250 behaves like misconfigured dashboard service response with stepable7251 returns an appropriate message and status code7252 dashboard file already exists7253 behaves like misconfigured dashboard service response with stepable7254 returns an appropriate message and status code7255 Files::CreateService success7256 clears dashboards cache7257 returns success7258 Files::CreateService fails7259 does NOT clear dashboards cache7260 returns error7261Gitlab::Suggestions::CommitMessage7262 #message7263 suggestion_set: suggestion_set_same_project7264 when a custom commit message is not specified7265 and is nil7266 uses the default commit message7267 and is an empty string7268 uses the default commit message7269 when a custom commit message is specified for forked project7270 uses the default commit message7271 when a custom commit message is specified7272 shows the custom commit message7273 is specified and includes all placeholders7274 generates a custom commit message7275 when a custom commit message is specified for forked project7276 uses the target project commit message7277 suggestion_set: suggestion_set_forked_project7278 when a custom commit message is not specified7279 and is nil7280 uses the default commit message7281 and is an empty string7282 uses the default commit message7283 when a custom commit message is specified for forked project7284 uses the default commit message7285 when a custom commit message is specified7286 shows the custom commit message7287 is specified and includes all placeholders7288 generates a custom commit message7289 when a custom commit message is specified for forked project7290 uses the target project commit message7291RuboCop::Cop::Graphql::Descriptions7292 with fields7293 adds an offense when there is no description7294 adds an offense when description does not end in a period7295 adds an offense when description begins with "A"7296 adds an offense when description begins with "The"7297 does not add an offense when description is correct7298 does not add an offense when there is a resolver7299 with arguments7300 adds an offense when there is no description7301 adds an offense when description does not end in a period7302 adds an offense when description begins with "A"7303 adds an offense when description begins with "The"7304 does not add an offense when description is correct7305 with enum values7306 adds an offense when there is no description7307 adds an offense when description does not end in a period7308 adds an offense when description begins with "The"7309 adds an offense when description begins with "A"7310 does not add an offense when description is correct (defined using `description:`)7311 does not add an offense when description is correct (defined as a second argument)7312 autocorrecting descriptions without periods7313 can autocorrect7314 can autocorrect a heredoc7315Projects::Topic7316 is expected to be valid7317 modules7318 is expected to includes the Avatarable module7319 associations7320 is expected to have many project_topics7321 is expected to have many projects7322 validations7323 is expected to validate that :name cannot be empty/falsy7324 is expected to validate that :name is case-insensitively unique7325 is expected to validate that the length of :name is at most 2557326 is expected to validate that the length of :description is at most 10247327 is expected to validate that :title cannot be empty/falsy7328 is expected to validate that the length of :title is at most 2557329 scopes7330 order_by_non_private_projects_count7331 sorts topics by non_private_projects_count7332 reorder_by_similarity7333 sorts topics by similarity7334 #find_by_name_case_insensitive7335 returns topic with case insensitive name7336 #search7337 returns topics with a matching name7338 returns topics with a partially matching name7339 returns topics with a matching name regardless of the casing7340 #avatar_type7341 is true if avatar is image7342 is false if avatar is html page7343 #avatar_url7344 when avatar file is uploaded7345 shows correct avatar url7346projects/artifacts/_artifact.html.haml7347 delete button7348 with admin7349 when admin mode is enabled7350 has a delete button7351 when admin mode is disabled7352 has no delete button7353 with owner7354 has a delete button7355 with master7356 has a delete button7357 with developer7358 has no delete button7359 with reporter7360 has no delete button7361ErrorTracking::SentryClient::IssueLink7362 #create_issue_link7363 is expected to be present7364 behaves like calls sentry api7365 calls sentry api7366 redirects7367 behaves like no Sentry redirects7368 does not follow redirects7369 when exception is raised7370 behaves like maps Sentry exceptions7371 HTTParty::Error7372 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"7373 Net::OpenTimeout7374 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"7375 SocketError7376 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"7377 OpenSSL::SSL::SSLError7378 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"7379 Errno::ECONNREFUSED7380 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"7381 StandardError7382 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"7383 when integration_id is not provided7384 is expected to be present7385 behaves like calls sentry api7386 calls sentry api7387 redirects7388 behaves like no Sentry redirects7389 does not follow redirects7390 when exception is raised7391 behaves like maps Sentry exceptions7392 HTTParty::Error7393 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"7394 Net::OpenTimeout7395 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"7396 SocketError7397 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"7398 OpenSSL::SSL::SSLError7399 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"7400 Errno::ECONNREFUSED7401 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"7402 StandardError7403 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"7404Ci::UpdateInstanceVariablesService7405 #execute7406 without variables7407 is expected to be truthy7408 with insert only variables7409 is expected to be truthy7410 persists all the records7411 persists attributes7412 with update only variables7413 is expected to be truthy7414 does not change the count7415 updates the records in place7416 with insert and update variables7417 is expected to be truthy7418 inserts only one record7419 persists all the records7420 with insert, update, and destroy variables7421 is expected to be truthy7422 persists all the records7423 with invalid variables7424 is expected to be falsey7425 does not insert any records7426 does not update existing records7427 returns errors7428 when deleting non existing variables7429 is expected to raise ActiveRecord::RecordNotFound7430 when updating non existing variables7431 is expected to raise ActiveRecord::RecordNotFound7432ContainerExpirationPolicyWorker7433 #perform7434 with throttling enabled7435 calls the limited capacity worker7436 behaves like handling a taken exclusive lease7437 with exclusive lease taken7438 does not do anything7439 with throttling disabled7440 with no container expiration policies7441 behaves like not executing any policy7442 does not run any policy7443 with container expiration policies7444 a valid policy7445 runs the policy7446 a disabled policy7447 behaves like not executing any policy7448 does not run any policy7449 a policy that is not due for a run7450 behaves like not executing any policy7451 does not run any policy7452 a policy linked to no container repository7453 behaves like not executing any policy7454 does not run any policy7455 an invalid policy7456 disables the policy and tracks an error7457 process stale ongoing cleanups7458 set them as unfinished7459 policies without container repositories7460 disables them7461 counts logging7462 logs all the counts7463 with load balancing enabled7464 reads the counts from the replica7465Files::CreateService7466 #execute7467 when file matches LFS filter7468 with LFS disabled7469 skips gitattributes check7470 doesn't create LFS pointers7471 with LFS enabled7472 creates an LFS pointer7473 creates an LfsObject with the file's content7474 links the LfsObject to the project7475 commit attribute7476 uses the commit email7477Gitlab::Ci::Status::Stage::PlayManual7478 #action_icon7479 is expected to eq "play"7480 #action_button_title7481 is expected to eq "Play all manual"7482 #action_title7483 is expected to eq "Play all manual"7484 #action_path7485 is expected to eq "/namespace1273/project1447/-/pipelines/965/stages/test/play_manual"7486 #action_method7487 is expected to eq :post7488 .matches?7489 when stage is skipped7490 is expected to be truthy7491 when stage is manual7492 is expected to be truthy7493 when stage is scheduled7494 is expected to be truthy7495 when stage is success7496 and does not have manual builds7497 is expected to be falsy7498Packages::Go::ModuleVersion7499 #name7500 with ref and name specified7501 returns that name7502 with ref specified and name unspecified7503 returns the name of the ref7504 with ref and name unspecified7505 returns nil7506 #gomod7507 with go.mod missing7508 returns nil7509 with go.mod present7510 returns the contents of go.mod7511 #files7512 with a root module7513 with an empty module path7514 behaves like #files7515 returns all the files7516 with a root module and a submodule7517 with an empty module path7518 behaves like #files7519 returns files excluding the submodule7520 with the submodule's path7521 behaves like #files7522 returns the submodule's files7523 #archive7524 with a root module7525 with an empty module path7526 behaves like #archive7527 returns an archive of all the files7528 with a root module and a submodule7529 with an empty module path7530 behaves like #archive7531 returns an archive of files excluding the submodule7532 with the submodule's path7533 behaves like #archive7534 returns an archive of the submodule's files7535RuboCop::TodoDir7536 #initialize7537 when passing inflector7538 calls .underscore7539 #directory7540 is expected to eq "/tmp/d20220428-478-1wxvqx3"7541 #read7542 when file exists7543 is expected to eq "a"7544 when file is missing7545 is expected to be nil7546 #write7547 is expected to eq "/tmp/d20220428-478-v0lici/r_spec/variable_instance.yml"7548 writes content to YAML file7549 #inspect7550 with existing YAML file7551 is expected to eq true7552 moves YAML file to .inspect7553 with missing YAML file7554 is expected to eq false7555 #inspect_all7556 with YAML files7557 is expected to eq 37558 moves all YAML files to .inspect7559 with non-YAML files7560 is expected to eq 07561 does not move non-YAML files7562 without files7563 is expected to eq 07564 #list_inspect7565 when file exists and is being inspected7566 is expected to contain exactly "/tmp/d20220428-478-1niq8lx/r_spec/variable_instance.yml.inspect"7567 when file exists but not being inspected7568 is expected to be empty7569 when file is missing7570 is expected to be empty7571 #delete_inspected7572 with YAML files7573 is expected to eq 37574 deletes all .inspected YAML files7575 with non-YAML files7576 is expected to eq 07577 does not delete non-YAML files7578 without files7579 is expected to eq 07580Pages::LookupPath7581 #project_id7582 delegates to Project#id7583 #access_control7584 delegates to Project#private_pages?7585 #https_only7586 when no domain provided7587 delegates to Project#pages_https_only?7588 when there is domain provided7589 takes into account the https setting of the domain7590 #source7591 returns nil7592 when there is pages deployment7593 uses deployment from object storage7594 when deployment is in the local storage7595 uses file protocol7596 when deployment were created during migration7597 uses deployment from object storage7598 #prefix7599 returns "/" for pages group root projects7600 returns the project full path with the provided prefix removed7601Resolvers::BaseResolver.single7602 #resolve7603 when there is no parent7604 returns nil if parent is nil7605 when project boards7606 behaves like group and project boards resolver7607 does not create a default board7608 calls Boards::BoardsFinder7609 requires an ID7610 when querying for a single board7611 returns specified board7612 returns nil if board not found7613 when group boards7614 behaves like group and project boards resolver7615 does not create a default board7616 calls Boards::BoardsFinder7617 requires an ID7618 when querying for a single board7619 returns specified board7620 returns nil if board not found7621NotificationRecipients::Builder::Default7622 #build!7623 participants and project watchers7624 adds all participants and watchers7625 subscribers7626 adds all subscribers7627 custom notifications7628 behaves like custom notification recipients7629 with project custom notification setting7630 adds the user to the recipients7631 with the project custom notification setting in another project7632 does not add the user to the recipients7633 with group custom notification setting7634 adds the user to the recipients7635 with the group custom notification setting in another group7636 does not add the user to the recipients7637 with project global custom notification setting7638 with global custom notification setting7639 adds the user to the recipients7640 without global custom notification setting7641 does not add the user to the recipients7642 with group global custom notification setting7643 with global custom notification setting7644 adds the user to the recipients7645 without global custom notification setting7646 does not add the user to the recipients7647 with group custom notification setting in deeply nested parent group7648 adds the user to the recipients7649 without a project or group7650 does not add the user to the recipients7651Projects::HashedStorage::MigrationService7652 #execute7653 repository migration7654 delegates migration to Projects::HashedStorage::MigrateRepositoryService7655 does not delegate migration if repository is already migrated7656 migrates legacy repositories to hashed storage7657 attachments migration7658 delegates migration to Projects::HashedStorage::MigrateRepositoryService7659 does not delegate migration if attachments are already migrated7660 migrates legacy attachments to hashed storage7661Resolvers::GroupIssuesResolver7662 #resolve7663 finds all group issues7664 finds all group and subgroup issues7665 returns issues without the specified issue_type7666 confidential issues7667 when user is allowed to view confidential issues7668 returns all viewable issues by default7669 filtering for confidential issues7670 returns only the non-confidential issues for the group when filter is set to false7671 returns only the confidential issues for the group when filter is set to true7672 when user is not allowed to see confidential issues7673 returns all viewable issues by default7674 filtering for confidential issues7675 does not return the confidential issues when filter is set to false7676 does not return the confidential issues when filter is set to true7677 release_tag filter7678 generates an error when trying to filter by negated release_tag7679Ci::DeletedObject7680 attributes7681 is expected to respond to #file7682 is expected to respond to #store_dir7683 is expected to respond to #file_store7684 is expected to respond to #pick_up_at7685 .bulk_import7686 with data7687 imports data7688 with invalid data7689 does not import anything7690 with empty data7691 returns successfully7692 ActiveRecord scopes7693 .ready_for_destruction7694 returns objects that are ready7695 .lock_for_destruction7696 returns objects that are ready7697 selects only the id7698 orders by pick_up_at7699 applies limit7700 uses select for update7701 #delete_file_from_storage7702 does not raise errors7703admin/dashboard/index.html.haml7704 shows version of GitLab Workhorse7705 includes revision of GitLab for pre VERSION7706 shows the tag for GitLab version7707 does not include license breakdown7708 when show_version_check? is true7709 renders the version check badge7710 GitLab KAS7711 KAS enabled7712 includes KAS version7713 KAS disabled7714 does not include KAS version7715Gitlab::Ci::Pipeline::Chain::Limit::RateLimit7716 when the limit is exceeded7717 does not persist the pipeline7718 breaks the chain7719 creates a log entry7720 with child pipelines7721 does not break the chain7722 does not invalidate the pipeline7723 does not log anything7724 when saving incompleted pipelines7725 does not persist the pipeline7726 breaks the chain7727 when ci_throttle_pipelines_creation is disabled7728 does not break the chain7729 does not invalidate the pipeline7730 does not log anything7731 when ci_throttle_pipelines_creation_dry_run is enabled7732 does not break the chain7733 does not invalidate the pipeline7734 creates a log entry7735 when the limit is not exceeded7736 does not break the chain7737 does not invalidate the pipeline7738 does not log anything7739ExperimentSubject7740 associations7741 is expected to belong to experiment required: false7742 is expected to belong to user required: false7743 is expected to belong to namespace required: false7744 is expected to belong to project required: false7745 validations7746 is expected to validate that :experiment cannot be empty/falsy7747 must_have_one_subject_present7748 fails when no subject is present7749 passes when user subject is present7750 passes when namespace subject is present7751 passes when project subject is present7752 fails when more than one subject is present7753 .valid_subject?7754 when passing a Group, Namespace, User or Project7755 is expected to equal true7756 is expected to equal true7757 is expected to equal true7758 is expected to equal true7759 when passing another object7760 is expected to equal false7761Integrations::PropagateService7762 .propagate7763 with inherited integration7764 calls to PropagateIntegrationProjectWorker7765 with a project without integration7766 calls to PropagateIntegrationProjectWorker7767 with a group without integration7768 calls to PropagateIntegrationProjectWorker7769 for a group-level integration7770 with a project without integration7771 calls to PropagateIntegrationProjectWorker7772 with a subgroup without integration7773 calls to PropagateIntegrationGroupWorker7774 with a subgroup with integration7775 calls to PropagateIntegrationInheritDescendantWorker7776Gitlab::Ci::Status::External::Common7777 #label7778 returns description7779 when description is nil7780 uses core status label7781 when description is empty string7782 uses core status label7783 #has_action?7784 is expected not to have action7785 #has_details?7786 when user has access to read commit status7787 is expected to have details7788 when user does not have access to read commit status7789 is expected not to have details7790 #details_path7791 links to the external target URL7792Integrations::SlackSlashCommands7793 behaves like Integrations::BaseSlashCommands7794 Associations7795 is expected to respond to #token7796 is expected to have many chat_names7797 #valid_token?7798 when the token is empty7799 is false7800 when there is a token7801 accepts equal tokens7802 #trigger7803 no token is passed7804 returns nil7805 with a token passed7806 no user can be found7807 when no url can be generated7808 responds with the authorize url7809 when an auth url can be generated7810 generates the url7811 when the user is authenticated7812 triggers the command7813 when user is blocked7814 behaves like blocks command execution7815 is expected to match "you do not have access to the GitLab project"7816 when user is deactivated7817 behaves like blocks command execution7818 is expected to match "your account has been deactivated by your administrator"7819 #trigger7820 when an auth url is generated7821 uses slack compatible links7822 #chat_responder7823 returns the responder to use for Slack7824SystemNotes::IncidentService7825 #change_incident_severity7826 behaves like a system note7827 has the correct attributes7828 with unknown severity7829 has the appropriate message7830 with low severity7831 has the appropriate message7832 with medium severity7833 has the appropriate message7834 with high severity7835 has the appropriate message7836 with critical severity7837 has the appropriate message7838 when severity is invalid7839 does not create system note7840 writes error to logs7841 #change_incident_status7842 with a provided reason7843 creates a new note for an incident status change7844 without provided reason7845 creates a new note for an incident status change7846PrometheusMetricsFinder7847 #execute7848 with params7849 with appropriate indexes7850 with project7851 is expected to eq [#<PrometheusMetric id: 22, project_id: 1455, title: [FILTERED], query: "avg(metric)", y_label: "y_la...85 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]7852 with group7853 is expected to contain exactly #<PrometheusMetric id: 23, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...2354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 22, project_id: 1455, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...985 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7854 with title7855 is expected to contain exactly #<PrometheusMetric id: 22, project_id: 1455, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...985 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 23, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...2354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7856 with y_label7857 is expected to contain exactly #<PrometheusMetric id: 22, project_id: 1455, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...985 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 23, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...2354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7858 with common7859 is expected to contain exactly #<PrometheusMetric id: 23, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...2354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 24, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7860 with ordered7861 is expected to eq [#<PrometheusMetric id: 24, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Uniqu...354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]7862 with indentifier7863 raises an error7864 with common7865 is expected to contain exactly #<PrometheusMetric id: 24, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7866 with id7867 raises an error7868 with id7869 is expected to contain exactly #<PrometheusMetric id: 23, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...2354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7870 with multiple params7871 is expected to contain exactly #<PrometheusMetric id: 23, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...2354 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7872 without an appropriate index7873 raises an error7874 without params7875 raises an error7876IssuablesDescriptionTemplatesHelper7877 #issuable_templates7878 returns empty hash when template type does not exist7879 with cached issuable templates7880 does not call TemplateFinder7881 when project has no parent group7882 behaves like project issuable templates7883 issuable templates7884 returns only md files as issue templates7885 returns only md files as merge_request templates7886 when project has parent group7887 when project parent group does not have a file template project7888 behaves like project issuable templates7889 issuable templates7890 returns only md files as issue templates7891 returns only md files as merge_request templates7892 #selected_template7893 with project templates7894 returns project templates7895 when no issuable_template parameter or default template is present7896 does not select a template7897 when an issuable_template parameter has been provided7898 selects the issuable template7899 when there is a default template7900 selects the default template7901 when there are not templates in the project7902 returns empty array7903Gitlab::PhabricatorImport::Conduit::Response7904 .parse!7905 raises a ResponseError if the http response was not successfull7906 raises a ResponseError if the response contained a Phabricator error7907 raises a ResponseError if JSON parsing failed7908 returns a parsed response for valid input7909 #success?7910 is expected to be success7911 is expected not to be success7912 #error_code7913 is expected to eq "ERR-INVALID-AUTH"7914 is expected to be nil7915 #error_info7916 returns the correct error info7917 is expected to be nil7918 #data7919 is expected to be nil7920 is expected to be a kind of Array7921 #pagination7922 is expected to be nil7923 builds the pagination correctly7924Gitlab::Analytics::CycleAnalytics::StageEvents::CodeStageStart7925 needs connection with an issue via merge_requests_closing_issues table7926 behaves like value stream analytics event7927 is expected to be a kind of String7928 is expected to be a kind of Symbol7929 is expected to include ApplicationRecord(abstract)7930 is expected to respond to #timestamp_projection7931 is expected to respond to #html_description7932 is expected to be a kind of Array7933 #apply_query_customization7934 expects an ActiveRecord::Relation object as argument and returns a modified version of it7935 #hash_code7936 returns a hash that uniquely identifies an event7937 does not differ when the same object is built with the same params7938 behaves like LEFT JOIN-able value stream analytics event7939 can use the event as LEFT JOIN7940 when looking at the record with data7941 contains the timestamp expression7942 when looking at the record without data7943 returns nil for the timestamp expression7944Gitlab::Ci::Reports::AccessibilityReports7945 #scans_count7946 when data has errors7947 returns the scans_count7948 when data has no errors7949 returns the scans_count7950 when data has no url7951 returns the scans_count7952 #passes_count7953 when data has errors7954 returns the passes_count7955 when data has no errors7956 returns the passes_count7957 when data has no url7958 returns the scans_count7959 #errors_count7960 when data has errors7961 returns the errors_count7962 when data has no errors7963 returns the errors_count7964 when data has no url7965 returns the errors_count7966 #add_url7967 when data has errors7968 adds urls and data to accessibility report7969 when data does not have errors7970 adds data to accessibility report7971 when url does not exist7972 sets error_message and decreases total7973 #set_error_message7974 when error is nil7975 returns the error7976 sets the error7977 when a error has already been set7978 overwrites the existing message7979 #all_errors7980 when data has errors7981 returns all errors7982 when data has no errors7983 returns an empty array7984 when accessibility report has no data7985 returns an empty array7986Gitlab::Spamcheck::Client7987 url scheme7988 is tls7989 uses secure connection7990 is grpc7991 uses insecure connection7992 #issue_spam?7993 includes interceptors7994 verdict: 0, expected: "allow"7995 returns expected spam constant7996 verdict: 1, expected: "conditional_allow"7997 returns expected spam constant7998 verdict: 2, expected: "disallow"7999 returns expected spam constant8000 verdict: 3, expected: "block"8001 returns expected spam constant8002 verdict: 4, expected: "noop"8003 returns expected spam constant8004 #build_issue_protobuf8005 builds the expected protobuf object8006 #build_user_protobuf8007 builds the expected protobuf object8008 when user has multiple email addresses8009 adds emails to the user pb object8010 #build_project_protobuf8011 builds the expected protobuf object8012Atlassian::JiraConnect::Serializers::FeatureFlagEntity8013 when the feature flag does not belong to any Jira issue8014 #issue_keys8015 is empty8016 #to_json8017 can encode the object8018 is invalid, since it has no issue keys8019 when the feature flag does belong to a Jira issue8020 #issue_keys8021 is not empty8022 #to_json8023 is valid according to the feature flag info schema8024 it has a percentage strategy8025 is valid according to the feature flag info schema8026 has the correct summary8027 includes the correct environments8028LearnGitlab::Project8029 .available?8030 project: nil, board: nil, label: nil, expected_result: nil8031 is expected to equal nil8032 project: nil, board: nil, label: true, expected_result: nil8033 is expected to equal nil8034 project: nil, board: true, label: nil, expected_result: nil8035 is expected to equal nil8036 project: nil, board: true, label: true, expected_result: nil8037 is expected to equal nil8038 project: true, board: nil, label: nil, expected_result: nil8039 is expected to equal nil8040 project: true, board: nil, label: true, expected_result: nil8041 is expected to equal nil8042 project: true, board: true, label: nil, expected_result: nil8043 is expected to equal nil8044 project: true, board: true, label: true, expected_result: true8045 is expected to equal true8046 .project8047 is expected to eq #<Project id:1464 namespace1344/learn_gitlab>>8048 when it is created during trial signup8049 is expected to eq #<Project id:1465 namespace1345/learn-gitlab-ultimate-trial>>8050 .board8051 is expected to eq #<Board id: 34, project_id: 1464, created_at: "2022-04-28 09:38:04.321604319 +0000", updated_at: "202...il, hide_backlog_list: false, hide_closed_list: false, iteration_id: nil, iteration_cadence_id: nil>8052 .label8053 is expected to eq #<ProjectLabel id:120 namespace1344/learn_gitlab~120>8054LimitedCapacity::Worker8055 required methods8056 is expected to raise NotImplementedError8057 is expected to raise NotImplementedError8058 is expected to raise NotImplementedError8059 Sidekiq options8060 does not retry failed jobs8061 does not deduplicate jobs8062 .perform_with_capacity8063 enqueues jobs8064 #perform8065 with capacity8066 calls perform_work8067 re-enqueues itself8068 reports prometheus metrics8069 updates the running set8070 with capacity and without work8071 does not re-enqueue itself8072 without capacity8073 does not call perform_work8074 does not re-enqueue itself8075 when perform_work fails8076 does not re-enqueue itself8077 removes itself from the running set8078 reports prometheus metrics8079 #remove_failed_jobs8080 removes failed jobs8081 #report_prometheus_metrics8082 reports number of running jobs8083Projects::LfsPointers::LfsImportService8084 when lfs is enabled for the project8085 downloads lfs objects8086 when no downloadable lfs object links8087 does not call LfsDownloadService8088 when an exception is raised8089 returns error8090 when lfs is not enabled for the project8091 does not download lfs objects8092RepositoryUpdateRemoteMirrorWorker8093 is labeled as idempotent8094 performs multiple times sequentially without raising an exception8095 #perform8096 calls out to the service to perform the update8097 does not do anything if the mirror was already updated8098 schedules a retry when the mirror is marked for retrying8099 clears the lease if there was an unexpected exception8100 retries 3 times for the worker to finish before rescheduling8101Gitlab::Email::Smime::Signer8102 when using an intermediate CA8103 signs data appropriately with SMIME8104 when not using an intermediate CA8105 signs data appropriately with SMIME8106DesignManagement::VersionsFinder8107 #execute8108 when user cannot read designs of an issue8109 returns no results when passed a DesignCollection8110 when passed a Design8111 returns no results when passed a Design8112 when user can read designs of an issue8113 when design management feature is disabled8114 returns no results when passed a DesignCollection8115 when passed a Design8116 returns no results when passed a Design8117 when design management feature is enabled8118 passing a DesignCollection or a Design for the initial scoping8119 returns the versions scoped to the DesignCollection8120 when passed a Design8121 returns the versions scoped to the Design8122 returning versions earlier or equal to a version8123 when argument is the first version8124 is expected to eq [#<DesignManagement::Version id: 103, sha: "2122686f951bac9a8c86722e4db21bcfef0dcb0a", issue_id: 138, created_at: "2022-04-28 09:38:10.412690000 +0000", author_id: 2314>]8125 when argument is the second version8126 is expected to contain exactly #<DesignManagement::Version id: 103, sha: "2122686f951bac9a8c86722e4db21bcfef0dcb0a", issue_id: 138, created_at: "2022-04-28 09:38:10.412690000 +0000", author_id: 2314> and #<DesignManagement::Version id: 104, sha: "005f9b697023017ae39656bbdd4dc6d2c18bfc51", issue_id: 138, created_at: "2022-04-28 09:38:10.461553000 +0000", author_id: 2314>8127 returning versions by SHA8128 when argument is the first version8129 is expected to contain exactly #<DesignManagement::Version id: 103, sha: "2122686f951bac9a8c86722e4db21bcfef0dcb0a", issue_id: 138, created_at: "2022-04-28 09:38:10.412690000 +0000", author_id: 2314>8130 when argument is the second version8131 is expected to contain exactly #<DesignManagement::Version id: 104, sha: "005f9b697023017ae39656bbdd4dc6d2c18bfc51", issue_id: 138, created_at: "2022-04-28 09:38:10.461553000 +0000", author_id: 2314>8132 returning versions by ID8133 when argument is the first version8134 is expected to contain exactly #<DesignManagement::Version id: 103, sha: "2122686f951bac9a8c86722e4db21bcfef0dcb0a", issue_id: 138, created_at: "2022-04-28 09:38:10.412690000 +0000", author_id: 2314>8135 when argument is the second version8136 is expected to contain exactly #<DesignManagement::Version id: 104, sha: "005f9b697023017ae39656bbdd4dc6d2c18bfc51", issue_id: 138, created_at: "2022-04-28 09:38:10.461553000 +0000", author_id: 2314>8137 mixing id and sha8138 when arguments are consistent8139 is expected to contain exactly #<DesignManagement::Version id: 103, sha: "2122686f951bac9a8c86722e4db21bcfef0dcb0a", issue_id: 138, created_at: "2022-04-28 09:38:10.412690000 +0000", author_id: 2314>8140 when arguments are in-consistent8141 is expected to be empty8142Packages::Helm::IndexPresenter8143 #entries8144 returns the correct hash8145 with an unknown channel8146 is expected to be empty8147 with a nil channel8148 is expected to be empty8149 #api_version8150 is expected to eq "v1"8151 #generated8152 returns the expected format8153 #server_info8154 is expected to eq {"contextPath"=>"/api/v4/projects/1473/packages/helm"}8155 with url encoded project id param8156 is expected to eq {"contextPath"=>"/api/v4/projects/foo%2Fbar/packages/helm"}8157WebHooks::DestroyService8158 with system hook8159 behaves like batched destroys8160 destroys all hooks in batches8161 returns an error if sync destroy fails8162 schedules an async delete8163 with project hook8164 behaves like batched destroys8165 destroys all hooks in batches8166 returns an error if sync destroy fails8167 schedules an async delete8168Banzai::Filter::SpacedLinkFilter8169 does not process malicious input8170 converts multiple URLs8171 ignores valid links contained inside 'a' element8172 ignores valid links contained inside 'code' element8173 ignores valid links contained inside 'kbd' element8174 ignores valid links contained inside 'pre' element8175 ignores valid links contained inside 'script' element8176 ignores valid links contained inside 'style' element8177 when a link is detected8178 converts slug with spaces to a link8179 converts slug with spaces and a title to a link8180 does nothing with empty text8181 does nothing with an empty slug8182 when an image is detected8183 converts slug with spaces to an iamge8184 converts slug with spaces and a title to an image8185Gitlab::IssuableMetadata8186 returns an empty Hash if an empty collection is provided8187 raises an error when given a collection with no limit8188 issues8189 aggregates stats on issues8190 merge requests8191 aggregates stats on merge requests8192AuthorizedProjectUpdate::UserRefreshWithLowUrgencyWorker8193 is labeled as low urgency8194 behaves like refreshes user's project authorizations8195 #perform8196 refreshes user's authorized projects8197 when the user is not found8198 does nothing8199 behaves like an idempotent worker8200 is labeled as idempotent8201 performs multiple times sequentially without raising an exception8202 does not change authorizations when run twice8203Gitlab::Kubernetes::Helm::V2::BaseCommand8204 HELM_VERSION8205 is expected to match /^2\.\d+\.\d+$/8206 #env8207 is expected to include {:TILLER_NAMESPACE => "gitlab-managed-apps"}8208 behaves like helm command generator8209 #generate_script8210 returns appropriate command8211 #pod_name8212 is expected to eq "install-test-class-name"8213 behaves like helm command8214 HELM_VERSION8215 is expected to match /\d+\.\d+\.\d+/8216 #env8217 is expected to be a kind of Hash8218 #rbac?8219 rbac is enabled8220 is expected to be truthy8221 rbac is not enabled8222 is expected to be falsey8223 #pod_resource8224 rbac is enabled8225 is expected to be an instance of Kubeclient::Resource8226 generates a pod that uses the tiller serviceAccountName8227 rbac is not enabled8228 is expected to be an instance of Kubeclient::Resource8229 generates a pod that uses the default serviceAccountName8230 #config_map_resource8231 returns a KubeClient resource with config map content for the application8232 #service_account_resource8233 rbac is enabled8234 generates a Kubeclient resource for the tiller ServiceAccount8235 rbac is not enabled8236 generates nothing8237 #cluster_role_binding_resource8238 rbac is enabled8239 generates a Kubeclient resource for the ClusterRoleBinding for tiller8240 binds the account in #service_account_resource8241 rbac is not enabled8242 generates nothing8243Groups::DeployTokens::CreateService8244 behaves like a deploy token creation service8245 #execute8246 when the deploy token is valid8247 creates a new DeployToken8248 creates a new ProjectDeployToken8249 returns a DeployToken8250 sets the creator_id as the id of the current_user8251 when expires at date is not passed8252 sets Forever.date8253 when username is empty string8254 converts it to nil8255 when username is provided8256 keeps the provided username8257 when the deploy token is invalid8258 does not create a new DeployToken8259 does not create a new ProjectDeployToken8260Gitlab::SlashCommands::IssueNew8261 #execute8262 without description8263 creates the issue8264 with description8265 creates the issue with description8266 with more newlines between the title and the description8267 creates the issue8268 issue cannot be created8269 displays the errors8270 .match8271 matches the title without description8272 matches the title with description8273 matches the alias new8274Gitlab::UsageDataCounters::DesignsCounter8275 behaves like a redis usage counter8276 .count(create)8277 increments the Designs create counter by 18278 .read(create)8279 returns the total number of create events8280 behaves like a redis usage counter8281 .count(update)8282 increments the Designs update counter by 18283 .read(update)8284 returns the total number of update events8285 behaves like a redis usage counter8286 .count(delete)8287 increments the Designs delete counter by 18288 .read(delete)8289 returns the total number of delete events8290 behaves like a redis usage counter with totals8291 totals8292 can report all totals8293 unknown events8294 cannot increment8295 cannot read8296Gitlab::DatabaseImporters::SelfMonitoring::Project::DeleteService8297 #execute8298 when project does not exist8299 returns error8300 when self monitoring project exists8301 destroys project8302 deletes project ID from application settings8303 does not delete group8304Gitlab::GithubImport::ReschedulingMethods8305 #perform8306 with a non-existing project8307 does not perform any work8308 notifies any waiters so they do not wait forever8309 with an existing project8310 notifies any waiters upon successfully importing the data8311 reschedules itself if the data could not be imported8312 #try_import8313 returns true when the import succeeds8314 returns false when the import fails due to hitting the GitHub API rate limit8315 #notify_waiter8316 notifies the waiter if a waiter key is specified8317 does not notify any waiters if no waiter key is specified8318Gitlab::LetsEncrypt::Challenge8319 #status8320 delegates to Acme::Client::Resources::Challenge8321 #token8322 delegates to Acme::Client::Resources::Challenge8323 #file_content8324 delegates to Acme::Client::Resources::Challenge8325 #request_validation8326 delegates to Acme::Client::Resources::Challenge8327 #error8328 delegates to Acme::Client::Resources::Challenge8329Namespaces::ProcessSyncEventsWorker8330 is labeled as idempotent8331 performs multiple times sequentially without raising an exception8332 #perform8333 consumes all sync events8334 syncs namespace hierarchy traversal ids8335 logs the service result8336Tooling::Danger::FeatureFlag8337 #feature_flag_files8338 retrieves added feature flag files8339 with added added feature flag files8340 returns an array of Found objects8341 without added added feature flag files8342 returns an array of Found objects8343 retrieves modified feature flag files8344 with modified modified feature flag files8345 returns an array of Found objects8346 without modified modified feature flag files8347 returns an array of Found objects8348 retrieves deleted feature flag files8349 with deleted deleted feature flag files8350 returns an array of Found objects8351 without deleted deleted feature flag files8352 returns an array of Found objects8353 Tooling::Danger::FeatureFlag::Found8354 #raw8355 returns the raw YAML8356 #group8357 returns the group found in the YAML8358 #default_enabled8359 returns the default_enabled found in the YAML8360 #rollout_issue_url8361 returns the rollout_issue_url found in the YAML8362 #group_match_mr_label?8363 when MR labels match FF group8364 is expected to eq true8365 when MR labels does not match FF group8366 is expected to eq false8367 when group is nil8368 and MR has no group label8369 is expected to eq true8370 and MR has a group label8371 is expected to eq false8372GpgKeys::DestroyService8373 destroys the GPG key8374projects/commit/show.html.haml8375 inline diff view8376 has limited width8377 parallel diff view8378 spans full width8379 in the context of a merge request8380 shows that it is in the context of a merge request8381Gitlab::Checks::DiffCheck8382 #validate!8383 when commits is empty8384 does not call find_changed_paths8385 when commits is not empty8386 when deletion is true8387 does not call find_changed_paths8388 with LFS not enabled8389 does not invoke :lfs_file_locks_validation8390 with LFS enabled8391 when change is sent by a different user8392 raises an error if the user is not allowed to update the file8393 when change is sent by the author of the lock8394 doesn't raise any error8395DeployTokenPolicy8396 creating a deploy key8397 when user is maintainer8398 is expected to be allowed :create_deploy_token8399 when user is not maintainer8400 is expected to be disallowed :create_deploy_token8401 updating a deploy key8402 when user is maintainer8403 is expected to be allowed :update_deploy_token8404 when user is not maintainer8405 is expected to be disallowed :update_deploy_token8406Gitlab::Ci::Config::Entry::Rules8407 .new8408 with a list of rule rule8409 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules8410 is expected to be valid8411 with a list of two rules8412 is expected to be valid8413 with a single rule object8414 is expected not to be valid8415 with nested rules8416 is expected to be valid8417 with rules nested more than one level8418 is expected to be valid8419 #value8420 with a list of rule rule8421 is expected to eq [{:if=>"$THIS == \"that\"", :when=>"never"}]8422 with a list of two rules8423 is expected to eq [{:if=>"$THIS == \"that\"", :when=>"always"}, {:if=>"$SKIP", :when=>"never"}]8424 with a single rule object8425 is expected to eq [{:if=>"$SKIP", :when=>"never"}]8426 with nested rules8427 is expected to contain exactly {:if=>"$THIS == \"that\"", :when=>"always"} and {:if=>"$SKIP", :when=>"never"}8428 with rules nested more than one level8429 is expected to contain exactly {:if=>"$THIS == \"that\"", :when=>"always"}, {:if=>"$SKIP", :when=>"never"}, and {:if=>"$THIS == \"other\"", :when=>"always"}8430 .default8431 does not have default policy8432RuboCop::Cop::Gitlab::AvoidFeatureCategoryNotOwned8433 in controllers8434 behaves like defining feature category on a class8435 flags a method call on a class8436 flags a method call on a class with an array passed8437 flags a method call on a class with an array passed8438 in workers8439 behaves like defining feature category on a class8440 flags a method call on a class8441 flags a method call on a class with an array passed8442 flags a method call on a class with an array passed8443 for grape endpoints8444 flags when passed as a hash for a Grape endpoint as keyword args8445 flags when passed as a hash for a Grape endpoint in a hash8446 behaves like defining feature category on a class8447 flags a method call on a class8448 flags a method call on a class with an array passed8449 flags a method call on a class with an array passed8450Autocomplete::ProjectFinder8451 #execute8452 without a project ID8453 returns nil8454 with an empty String as the project ID8455 returns nil8456 with a project ID8457 raises ActiveRecord::RecordNotFound if the project does not exist8458 raises ActiveRecord::RecordNotFound if the user can not read the project8459 raises ActiveRecord::RecordNotFound if an anonymous user can not read the project8460 returns the project if it exists and is readable8461Ci::PipelineArtifacts::CoverageReportService8462 #execute8463 when pipeline has coverage reports8464 when pipeline is finished8465 creates a pipeline artifact8466 persists the default file name8467 sets expire_at to 1 week8468 when pipeline artifact has already been created8469WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb:41:in `block (5 levels) in <top (required)>'.8470 do not raise an error and do not persist the same artifact twice8471 when pipeline is running and coverage report does not exist8472 does not persist data8473Banzai::Renderer8474 #cache_collection_render8475 when an item has a rendered field8476 does not touch redis if the field is in the cache8477 #render_field8478 without cache8479 returns cacheless render field8480 with cache8481 with a stale cache8482 caches and returns the result8483 skips database caching on a GitLab read-only instance8484 with an up-to-date cache8485 uses the cache8486 #cacheless_render8487 without cache8488 returns cacheless render field8489 #post_process8490 when xhtml8491 without :post_process_pipeline key8492 uses PostProcessPipeline8493 with :post_process_pipeline key8494 uses passed post process pipeline8495 when not xhtml8496 without :post_process_pipeline key8497 uses PostProcessPipeline8498 with :post_process_pipeline key8499 uses passed post process pipeline8500Gitlab::ImportExport::Shared8501 with a repository on disk8502 #archive_path8503 uses a random hash to avoid conflicts8504 memoizes the path8505 #export_path8506 uses a random hash relative to project path8507 memoizes the path8508 with a group on disk8509 #base_path8510 uses hashed storage path8511 when exportable type is unsupported8512 #base_path8513 raises8514 #error8515 filters any full paths8516 updates the import JID8517gitlab:uploads rake tasks8518 check8519 outputs the integrity check for each batch8520 errors out about missing files on the file system8521 errors out about invalid checksum8522BulkImports::Common::Transformers::UserReferenceTransformer8523 #transform8524 when user can be found by email8525 sets found user_id and removes user key8526 when user cannot be found by email8527 sets found user_id and removes user key8528 when there is no data to transform8529 returns8530 when custom reference is provided8531 updates provided reference8532 updates provided reference8533Gitlab::Blame8534 #first_line8535 is expected to eq 18536 with a range8537 is expected to eq 28538 #groups8539 groups lines properly8540 with a range 1..58541 returns the correct lines8542 with highlighted lines8543 returns the correct lines8544 with a range 2..48545 returns the correct lines8546 with highlighted lines8547 returns the correct lines8548 renamed file8549 adds previous path8550Gitlab::Verify::LfsObjects8551 behaves like Gitlab::Verify::BatchVerifier subclass8552 batching8553 iterates through objects in batches8554 allows the starting ID to be specified8555 allows the finishing ID to be specified8556 #run_batches8557 passes LFS objects with the correct file8558 fails LFS objects with a missing file8559 fails LFS objects with a mismatched oid8560 with remote files8561 passes LFS objects in object storage that exist8562 fails LFS objects in object storage that do not exist8563Resolvers::LastCommitResolver8564 #resolve8565 last commit is a merge commit8566 resolves to the merge commit8567 last commit for a different branch and path8568 resolves commit8569 last commit for a wildcard pathspec8570 returns nil8571 last commit with pathspec characters8572 resolves commit8573 last commit does not exist8574 returns nil8575ThemeKit.gitlab-ci.yml8576 the created pipeline8577 on the default branch8578 only creates staging deploy8579 on a tag8580 only creates a production deploy8581 outside of the default branch8582 has no jobs8583BatchDestroyDependentAssociations8584 #dependent_associations_to_destroy8585 returns the right associations8586 #destroy_dependent_associations_in_batches8587 destroys multiple notes8588 destroys note in batches8589 excludes associations8590Gitlab::Pagination::Keyset::Pager8591 #paginate8592 does not execute a query8593 applies a LIMIT8594 returns the limited relation8595 validating the order clause8596 raises an error if has a different order clause than the page8597 #finalize8598 passes information about next page to request8599 when retrieving the last page8600 indicates there is another (likely empty) page8601 when retrieving an empty page8602 indicates this is the last page8603UploaderFinder8604 #execute8605 when successful8606 gets the file-like uploader8607 when path traversal in file name8608 returns nil8609 when unexpected failure8610 returns nil when unexpected error is raised8611Gitlab::LocalAndRemoteStorageMigration::ArtifactMigrater8612 behaves like local and remote storage migration8613 start_store: 1, end_store: 2, method: :migrate_to_remote_storage8614 successfully migrates8615 start_store: 2, end_store: 2, method: :migrate_to_remote_storage8616 successfully migrates8617 start_store: 2, end_store: 1, method: :migrate_to_local_storage8618 successfully migrates8619 start_store: 1, end_store: 1, method: :migrate_to_local_storage8620 successfully migrates8621 when migration fails8622 prints error8623Gitlab::Graphql::Authorize::AuthorizeResource8624 when the user is allowed to perform the action8625 #authorized_find!8626 returns the object8627 #authorize!8628 does not raise an error8629 when the user is not allowed to perform the action8630 #authorized_find!8631 raises an error8632 #authorize!8633 raises an error8634 when the class does not define #find_object8635 raises a comprehensive error message8636 #authorize8637 adds permissions from subclasses to those of superclasses when used on classes8638DeleteContainerRepositoryWorker8639 #perform8640 executes the destroy service8641 does not raise error when user could not be found8642 does not raise error when registry could not be found8643Projects::RefreshBuildArtifactsSizeStatisticsWorker8644 #perform_work8645 when refresh job is present8646 logs refresh information8647 when refresh job is not present8648 logs refresh information8649 #remaining_work_count8650 and there are remaining refresh jobs8651 is expected to eq 18652 and there are no remaining refresh jobs8653 is expected to eq 08654 #max_running_jobs8655 when all projects_build_artifacts_size_refresh flags are enabled8656 is expected to eq 508657 when projects_build_artifacts_size_refresh_high flags is disabled8658 is expected to eq 208659 when projects_build_artifacts_size_refresh_high and projects_build_artifacts_size_refresh_medium flags are disabled8660 is expected to eq 28661 when all projects_build_artifacts_size_refresh flags are disabled8662 is expected to eq 08663SystemCheck::Orphans::RepositoryCheck8664 #multi_check8665 all orphans8666 prints list of all orphaned namespaces except @hashed8667 few orphans with existing namespace8668 prints list of orphaned namespaces8669 few orphans with existing namespace and parents with same name as orphans8670 prints list of orphaned namespaces ignoring parents with same namespace as orphans8671 no orphans8672 prints an empty list ignoring @hashed8673ProjectRepository8674 associations8675 is expected to belong to shard required: false8676 is expected to belong to project required: false8677 behaves like shardable scopes8678 .for_repository_storage8679 returns the objects for a given repository storage8680 .excluding_repository_storage8681 returns the objects excluding the given repository storage8682 .for_shard8683 returns the objects for a given shard8684 .find_project8685 finds project by disk path8686 returns nil when it does not find the project8687Gitlab::GithubImport::Representation::PullRequestReview8688 .from_api_response8689 does not set the user if the response did not include a user8690 behaves like a PullRequest review8691 returns an instance of PullRequest8692 .from_json_hash8693 does not set the user if the response did not include a user8694 does not fail when submitted_at is blank8695 behaves like a PullRequest review8696 returns an instance of PullRequest8697 #github_identifiers8698 returns a hash with needed identifiers8699Integrations::Flowdock8700 Validations8701 when integration is active8702 is expected to validate that :token cannot be empty/falsy8703 when integration is inactive8704 is expected not to validate that :token cannot be empty/falsy8705 Execute8706 calls FlowDock API8707Gitlab::ExternalAuthorization::Response8708 #valid?8709 is valid for 200, 401, and 403 responses8710 is invalid for other statuses8711 #reason8712 returns a reason if it was included in the response body8713 returns nil when there was no body8714 #successful?8715 is `true` if the status is 2008716 is `false` if the status is 401 or 4038717Ci::BridgePolicy8718 #play_job8719 when user can update the downstream branch8720 allows8721 when user can not update the downstream branch8722 does not allow8723shared/snippets/_snippet.html.haml8724 snippet with statistics8725 renders correct file count and tooltip8726 renders correct file count and tooltip when file_count is 18727 does not render file count when file count is 08728 snippet without statistics8729 does not render file count if statistics are not present8730Clusters::Integrations::CreateService#execute8731 behaves like a cluster integration8732 when enabled param is true8733 creates a new enabled integration8734 when enabled param is false8735 creates a new disabled integration8736 when integration already exists8737 updates the integration8738 behaves like a cluster integration8739 when enabled param is true8740 creates a new enabled integration8741 when enabled param is false8742 creates a new disabled integration8743 when integration already exists8744 updates the integration8745 when application_type is invalid8746 errors8747 when user is unauthorized8748 returns error and does not create a new integration record8749CycleAnalytics::ProjectLevelStageAdapter8750 calculates median8751 lists events8752 presents the data as json8753Gitlab::DependencyLinker::GodepsJsonLinker8754 .support?8755 supports Godeps.json8756 does not support other files8757 #link8758 links the package name8759 links GitHub repos8760 links GitLab projects8761 links Golang packages8762Mutations::ContainerRepositories::Destroy8763 is expected to require graphql authorizations :destroy_container_image8764 #resolve8765 with valid id8766 user_role: :maintainer, shared_examples_name: "destroying the container repository"8767 behaves like destroying the container repository8768 destroys the container repistory8769 user_role: :developer, shared_examples_name: "destroying the container repository"8770 behaves like destroying the container repository8771 destroys the container repistory8772 user_role: :reporter, shared_examples_name: "denying access to container respository"8773 behaves like denying access to container respository8774 raises an error8775 user_role: :guest, shared_examples_name: "denying access to container respository"8776 behaves like denying access to container respository8777 raises an error8778 user_role: :anonymous, shared_examples_name: "denying access to container respository"8779 behaves like denying access to container respository8780 raises an error8781 with invalid id8782 behaves like denying access to container respository8783 raises an error8784Mutations::DesignManagement::Move8785 #resolve8786 when the feature is not available8787 behaves like resource not available8788 raises an error8789 When current_design cannot be found8790 behaves like resource not available8791 raises an error8792 When previous_design cannot be found8793 behaves like resource not available8794 raises an error8795 When next_design cannot be found8796 behaves like resource not available8797 raises an error8798 the service runs8799 raising an error8800 reports the service-level error8801 successfully8802 reports the service-level error8803Gitlab::ImportExport::Saver8804 saves the repo using object storage8805 logs metrics after saving8806 removes archive path and keeps base path untouched8807 when save throws an exception8808 logs a saver error8809Tooling::Crystalball::CoverageLinesExecutionDetector8810 #detect8811 is expected to eq ["file.rb"]8812 with no changes8813 is expected to eq []8814 with previously uncovered file8815 is expected to eq ["file.rb"]8816 with path outside of root8817 is expected to eq []8818 with path in excluded prefix8819 is expected to eq []8820Users::LastPushEventService8821 #cache_last_push_event8822 caches the event for the event's project and current user8823 caches the event for the origin project when pushing to a fork8824 #last_event_for_user8825 returns the last push event for the current user8826 returns nil when no push event could be found8827 #last_event_for_project8828 returns the last push event for the given project8829 returns nil when no push event could be found8830 #find_cached_event8831 with a non-existing cache key8832 returns nil8833 with an existing cache key8834 returns a PushEvent when no merge requests exist for the event8835 removes the cache key when no event could be found and returns nil8836WikiDirectory8837 validations8838 is expected to validate that :slug cannot be empty/falsy8839 .group_pages8840 returns a nested array of entries8841 #initialize8842 when there are entries8843 sets the slug attribute8844 sets the entries attribute8845 when there are no entries8846 sets the slug attribute8847 sets the entries attribute to an empty array8848 #title8849 returns the basename of the directory, with hyphens replaced by spaces8850 #to_partial_path8851 returns the relative path to the partial to be used8852Types::IncidentManagement::EscalationStatusEnum8853 is expected to eq "IssueEscalationStatus"8854 statuses8855 status_name: "TRIGGERED", status_value: :triggered8856 exposes a status with the correct value8857 status_name: "ACKNOWLEDGED", status_value: :acknowledged8858 exposes a status with the correct value8859 status_name: "RESOLVED", status_value: :resolved8860 exposes a status with the correct value8861 status_name: "IGNORED", status_value: :ignored8862 exposes a status with the correct value8863 status_name: "INVALID", status_value: nil8864 exposes a status with the correct value8865Ci::PipelineArtifacts::CodeCoveragePresenter8866 #for_files8867 when code coverage has data8868 when filenames is empty8869 returns hash without coverage8870 when filenames do not match code coverage data8871 returns hash without coverage8872 when filenames matches code coverage data8873 when asking for one filename8874 returns coverage for the given filename8875 when asking for multiple filenames8876 returns coverage for a the given filenames8877Integrations::EnableSslVerification8878 accessors8879 is expected to respond to #enable_ssl_verification8880 is expected to respond to #enable_ssl_verification?8881 #initialize_properties8882 enables the setting by default8883 does not enable the setting if the record is already persisted8884 does not enable the setting if a custom value was set8885 #fields8886 inserts the checkbox field after the first URL field, or at the end8887DiffFileMetadataEntity8888 as json8889 exposes the expected fields8890 behaves like diff file with conflict_type8891 #conflict_type8892 returns nil by default8893 when there is matching conflict file8894 returns false8895Gitlab::Config::Entry::Boolean8896 validations8897 when entry config value is valid8898 #value8899 returns key value8900 #valid?8901 is valid8902 when entry value is not valid8903 #errors8904 saves errors8905Gitlab::Checks::PushFileCountCheck8906 #validate!8907 initial creation8908 allows creation8909 old: "single-file", new: "edit-file", valid: true, message: nil8910 verifies8911 old: "single-file", new: "multiple-files", valid: false, message: "The repository can contain at most 2 file(s)."8912 verifies8913 old: "single-file", new: "no-files", valid: false, message: "The repository must contain at least 1 file."8914 verifies8915 old: "edit-file", new: "rename-and-edit-file", valid: true, message: nil8916 verifies8917Banzai::Pipeline::PreProcessPipeline8918 pre-processes the source text8919 truncates the text if requested8920Clusters::Agents::CreateActivityEventService8921 #execute8922 creates an activity event record8923 schedules the cleanup worker8924Gitlab::HookData::ProjectBuilder8925 #build8926 data8927 on create8928 is expected to eq "project_create"8929 behaves like includes the required attributes8930 includes the required attributes8931 behaves like does not include `old_path_with_namespace` attribute8932 does not include `old_path_with_namespace` attribute8933 on destroy8934 is expected to eq "project_destroy"8935 behaves like includes the required attributes8936 includes the required attributes8937 behaves like does not include `old_path_with_namespace` attribute8938 does not include `old_path_with_namespace` attribute8939 on rename8940 is expected to eq "project_rename"8941 behaves like includes the required attributes8942 includes the required attributes8943 behaves like includes `old_path_with_namespace` attribute8944 includes `old_path_with_namespace` attribute8945 on transfer8946 is expected to eq "project_transfer"8947 behaves like includes the required attributes8948 includes the required attributes8949 behaves like includes `old_path_with_namespace` attribute8950 includes `old_path_with_namespace` attribute8951Packages::Composer::ComposerJsonService8952 #execute8953 with an existing file8954 with a valid file8955 returns the parsed json8956 with an invalid file8957 raises an error8958 without the composer.json file8959 raises an error8960Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::RecordLoaderStrategy8961 #initializer_columns8962 returns a NULL table row as the result column8963 #columns8964 uses the finder query to load the row in the result column8965Gitlab::Saas8966 .canary_toggle_com_url8967 is expected to eq "https://next.gitlab.com"8968Releases::ManageEvidenceWorker8969 when `released_at` in inside the window8970 when Evidence has not been created8971 creates a new Evidence record8972 when evidence has already been created8973 behaves like does not create a new Evidence record8974 sidekiq_inline8975 when `released_at` is outside the window8976 behaves like does not create a new Evidence record8977 sidekiq_inline8978Notes::RenderService8979 #execute8980 renders a Note8981Types::Packages::Conan::FileMetadatumType8982 includes conan file metadatum fields8983Mutations::Ci::Runner::Update8984 is expected to require graphql authorizations :update_runner8985 #resolve8986 when the user cannot admin the runner8987 generates an error8988 with invalid params8989 raises an error8990 when required arguments are missing8991 raises an error8992 when user can update runner8993 with valid arguments8994 updates runner with correct values8995 with out-of-range maximum_timeout and missing tag_list8996 returns a descriptive error8997Resolvers::TreeResolver8998 is expected to have nullable GraphQL type Tree8999 #resolve9000 resolves to a tree9001 resolve to a recursive tree9002 when repository does not exist9003 returns nil9004Gitlab::PrivateCommitEmail9005 .regex9006 is expected to match "1-foo@users.noreply.localhost"9007 is expected not to match "1-foo@users.noreply.localhost.foo"9008 is expected not to match "1-foo@users.noreply.gitlab.com"9009 is expected not to match "foo-1@users.noreply.gitlab.com"9010 is expected not to match "foobar@gitlab.com"9011 .user_id_for_email9012 parses user id from email9013 returns nil on invalid commit email9014 .user_ids_for_email9015 returns deduplicated user IDs for each valid email9016 returns an empty array with no valid emails9017 .for_user9018 returns email in the format id-username@hostname9019CronValidator9020 validates valid crontab9021 validates invalid crontab9022 cron field is not whitelisted9023 raises an error9024ErrorTracking::SentryClient9025 #issue_latest_event9026 has correct return type9027 behaves like calls sentry api9028 calls sentry api9029 error object created from sentry response9030 parses the stack trace9031 behaves like assigns error tracking event correctly9032 event_object: :issue_id, sentry_response: :groupID9033 is expected to eq "1378364652"9034 event_object: :date_received, sentry_response: :dateReceived9035 is expected to eq "2019-12-08T21:48:08.579417Z"9036 error without stack trace9037 returns an empty array for stack_trace_entries9038 behaves like assigns error tracking event correctly9039 event_object: :issue_id, sentry_response: :groupID9040 is expected to eq "1378364652"9041 event_object: :date_received, sentry_response: :dateReceived9042 is expected to eq "2019-12-08T21:48:08.579417Z"9043Clusters::Aws::VerifyProvisionStatusService9044 #execute9045 stack creation is still in progress9046 schedules a worker to check again later9047 stack creation is taking too long9048 sets the status to :errored with an appropriate error message9049 stack creation is complete9050 finalizes creation9051 stack creation failed9052 sets the status to :errored with an appropriate error message9053 error communicating with CloudFormation API9054 sets the status to :errored with an appropriate error message9055Gitlab::DependencyLinker::GoModLinker9056 .support?9057 supports go.mod9058 does not support other files9059 #link9060 links the module name9061 links dependencies9062Gitlab::Ci::Status::SuccessWarning9063 #test9064 is expected to eq "passed"9065 #label9066 is expected to eq "passed with warnings"9067 #icon9068 is expected to eq "status_warning"9069 #group9070 is expected to eq "success-with-warnings"9071 .matches?9072 when matchable subject is successful9073 when matchable subject has warnings9074 is a correct match9075 when matchable subject does not have warnings9076 does not match9077 when matchable subject is not successful9078 when matchable subject has warnings9079 does not match9080 when matchable subject does not have warnings9081 does not match9082Gitlab::ImportExport::Json::LegacyReader::File9083 behaves like import/export json legacy reader9084 #consume_attributes9085 when valid path is passed9086 no excluded attributes9087 returns the whole tree from parsed JSON9088 some attributes are excluded9089 returns hash without excluded attributes and relations9090 when invalid path is passed9091 raises an exception9092 #consume_relation9093 when valid path is passed9094 key has not been consumed9095 returns an Enumerator9096 value is nil9097 yields nothing to the Enumerator9098 value is an array9099 yields every relation value to the Enumerator9100 value is not array9101 yields the value with index 0 to the Enumerator9102 key has been consumed9103 yields nothing to the Enumerator9104 when invalid path is passed9105 raises an exception9106 #exist?9107 given valid path9108 is expected to equal true9109 given invalid path9110 is expected to equal false9111Resolvers::ProjectResolver9112 does not increase complexity depending on number of load limits9113 #resolve9114 batch-resolves projects by full path9115 resolves an unknown full_path to nil9116 treats project full path as case insensitive9117BlocksUnsafeSerialization9118 behaves like blocks unsafe serialization9119 blocks as_json9120 blocks to_json9121Integrations::Asana9122 Validations9123 active9124 is expected to validate that :api_key cannot be empty/falsy9125 Execute9126 with restrict_to_branch9127 when ref is in scope of restriced branches9128 calls the Asana integration9129 when ref is not in scope of restricted branches9130 does not call the Asana integration9131 when creating a story9132 calls Asana integration to create a story9133 when creating a story and closing a task9134 calls Asana integration to create a story and close a task9135 when closing via url9136 calls Asana integration to close via url9137 with multiple matches per line9138 allows multiple matches per line9139Database::PreventCrossJoins9140 when running in a default scope9141 when only non-CI tables are used9142 does not raise exception9143 when only CI tables are used9144 does not raise exception9145 when CI and non-CI tables are used9146 raises exception9147 when annotation is used9148 does not raise exception9149 when allow_cross_joins_across_databases is used9150 does not raise exception9151 when allow_cross_joins_across_databases is used9152 does not raise exception9153 when there is a parser error9154 does not raise parse PGQuery::ParseError9155notify/push_to_merge_request_email.text.haml9156 behaves like renders plain text email correctly9157 renders the email without HTML links9158Gitlab::WordDiff::Segments::Chunk9159 #removed?9160 is expected to be falsey9161 when line starts with "-"9162 is expected to be truthy9163 #added?9164 is expected to be falsey9165 when line starts with "+"9166 is expected to be truthy9167 #to_s9168 removes lead string modifier9169 when chunk is empty9170 is expected to eq ""9171 #length9172 is expected to eq 59173Gitlab::InsecureKeyFingerprint9174 #fingerprint_sha2569175 generates the key's fingerprint9176Database::MultipleDatabases9177 .with_reestablished_active_record_base9178 when doing establish_connection9179 on ActiveRecord::Base9180 raises exception9181 when using with_reestablished_active_record_base9182 does not raise exception9183 on Ci::ApplicationRecord9184 raises exception9185 when using with_reestablished_active_record_base9186 does not raise exception9187 when trying to access connection9188 when reconnect is true9189 does not raise exception9190 when reconnect is false9191 does raise exception9192 .with_added_ci_connection9193 when only a single database is setup9194 connects Ci::ApplicationRecord to the main database for the duration of the block (PENDING: Skipping because multiple databases are set up)9195 when multiple databases are setup9196 does not mock the original Ci::ApplicationRecord connection9197BulkImports::Common::Graphql::GetMembersQuery9198 has a valid query9199 #data_path9200 returns data path9201 #page_info_path9202 returns pagination information path9203 #to_s9204 when entity is group9205 queries group & group members9206 when entity is project9207 queries project & project members9208DependencyProxy::CleanupDependencyProxyWorker9209 #perform9210 when there are records to be deleted9211 behaves like an idempotent worker9212 is labeled as idempotent9213 performs multiple times sequentially without raising an exception9214 queues the cleanup jobs9215 when there are not records to be deleted9216 behaves like an idempotent worker9217 is labeled as idempotent9218 performs multiple times sequentially without raising an exception9219 does not queue the cleanup jobs9220CarrierWave::Storage::Fog::File9221 AWS9222 #copy_to9223 copies the file9224 Azure9225 #copy_to9226 copies the file9227 #authenticated_url9228 has an authenticated URL9229 with custom expire_at9230 properly sets expires param9231 with content_disposition option9232 passes options9233Mutations::Boards::Update9234 is expected to require graphql authorizations :admin_issue_board9235 #resolve9236 when the user cannot admin the board9237 raises an error9238 with invalid params9239 raises an error9240 when user can update board9241 updates board with correct values9242Gitlab::Auth::Atlassian::User9243 .assign_identity_from_auth_hash!9244 behaves like an atlassian identity9245 sets the proper values9246 #save9247 for an existing user9248 with an existing Atlassian Identity9249 finds the existing user and identity9250 behaves like an atlassian identity9251 sets the proper values9252 for a new user9253 creates the user and identity9254Gitlab::Ci::Build::Status::Reason9255 .fabricate9256 when failure symbol reason is being passed9257 correctly fabricates a status reason object9258 when another status reason object is being passed9259 correctly fabricates a status reason object9260 #failure_reason_enum9261 exposes a failure reason enum9262 #force_allow_failure?9263 when build is not allowed to fail9264 when build is allowed to fail with a given exit code9265 returns true9266 when build is not allowed to fail regardless of an exit code9267 returns false9268 when an exit code is not specified9269 returns false9270Resolvers::Admin::Analytics::UsageTrends::MeasurementsResolver9271 #resolve9272 when requesting project count measurements9273 as an admin user9274 returns the records, latest first9275 as a non-admin user9276 generates a ResourceNotAvailable error9277 as an unauthenticated user9278 generates a ResourceNotAvailable error9279 when filtering by recorded_after and recorded_before9280 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 1, count: 1000, recorded_at: "2022-04-26 09:39:48.549566964 +0000", identifier: "projects">9281 when "incorrect" values are passed9282 is expected to be empty9283 when requesting pipeline counts by pipeline status9284 filter for pipelines_succeeded9285 is expected to eq [#<Analytics::UsageTrends::Measurement id: 3, count: 1000, recorded_at: "2022-04-26 09:39:48.699584331 +0000", identifier: "pipelines_succeeded">]9286 filter for pipelines_skipped9287 is expected to eq [#<Analytics::UsageTrends::Measurement id: 4, count: 1000, recorded_at: "2022-04-26 09:39:48.704026880 +0000", identifier: "pipelines_skipped">]9288 filter for pipelines_failed9289 is expected to be empty9290 filter for pipelines_canceled9291 is expected to be empty9292Gitlab::Git::PreReceiveError9293 uses the fallback message9294 uses the fallback message9295 error messages prefixed with GitLab:9296 accepts only errors lines with the prefix9297 makes its message HTML-friendly9298 prefers the original message over the fallback9299 error messages prefixed with GL-HOOK-ERR:9300 accepts only errors lines with the prefix9301 makes its message HTML-friendly9302 prefers the original message over the fallback9303Gitlab::Git::BaseError9304 message: "GRPC::DeadlineExceeded: 4:DeadlineExceeded. debug_error_string:{\"hello\":1}", result: "GRPC::DeadlineExceeded: 4:DeadlineExceeded."9305 is expected to eq "GRPC::DeadlineExceeded: 4:DeadlineExceeded."9306 message: "GRPC::DeadlineExceeded: 4:DeadlineExceeded.", result: "GRPC::DeadlineExceeded: 4:DeadlineExceeded."9307 is expected to eq "GRPC::DeadlineExceeded: 4:DeadlineExceeded."9308 message: "GRPC::DeadlineExceeded: 4:DeadlineExceeded. debug_error_string:{\"created\":\"@1598978902.544524530\",\"description\":\"Error received from peer ipv4: debug_error_string:test\"}", result: "GRPC::DeadlineExceeded: 4:DeadlineExceeded."9309 is expected to eq "GRPC::DeadlineExceeded: 4:DeadlineExceeded."9310 message: "9:Multiple lines\nTest line. debug_error_string:{\"created\":\"@1599074877.106467000\"}", result: "9:Multiple lines\nTest line."9311 is expected to eq "9:Multiple lines\nTest line."9312 message: "other message", result: "other message"9313 is expected to eq "other message"9314 message: nil, result: "Gitlab::Git::BaseError"9315 is expected to eq "Gitlab::Git::BaseError"9316Ci::BuildUnscheduleService9317 #execute9318 when user is authorized to unschedule the build9319 when build is scheduled9320 transits build to manual9321 when build is not scheduled9322 responds with unprocessable entity9323 when user is not authorized to unschedule the build9324 responds with forbidden9325SafeZip::Extract9326 #extract9327 when using valid-simple.zip archive9328 behaves like extracts archive9329 does extract archive9330 when using valid-symlinks-first.zip archive9331 behaves like extracts archive9332 does extract archive9333 when using valid-non-writeable.zip archive9334 behaves like extracts archive9335 does extract archive9336 when using invalid-symlink-does-not-exist.zip archive9337 behaves like fails to extract archive9338 does not extract archive9339 when using invalid-symlinks-outside.zip archive9340 behaves like fails to extract archive9341 does not extract archive9342 when no matching directories are found9343 behaves like fails to extract archive9344 does not extract archive9345BuildQueueWorker9346 #perform9347 when build exists9348 ticks runner queue value9349 when build does not exist9350 does not raise exception9351 behaves like worker with data consistency9352 .get_data_consistency_feature_flag_enabled?9353 returns true9354 .get_data_consistency9355 returns correct data consistency9356UserStatusCleanup::BatchWorker9357 is labeled as idempotent9358 performs multiple times sequentially without raising an exception9359 #perform9360 cleans up the records9361 when no records are scheduled for cleanup9362 does nothing9363FeatureFlagEntity9364 has feature flag attributes9365Gitlab::UsageDataCounters::TrackUniqueEvents9366 tracking an event9367 when tracking successfully9368 when the application setting is enabled9369 when the target and the action is valid9370 tracks and counts the events as expected9371 when tracking unsuccessfully9372 target: Project(id: integer, name: string, path: string, description: text, created_at: datetime, updated_at: datetime, creator_id: integer, namespace_id: integer, last_activity_at: datetime, import_url: string, visibility_level: integer, archived: boolean, avatar: string, merge_requests_template: text, star_count: integer, merge_requests_rebase_enabled: boolean, import_type: string, import_source: string, approvals_before_merge: integer, reset_approvals_on_push: boolean, merge_requests_ff_only_enabled: boolean, issues_template: text, mirror: boolean, mirror_user_id: integer, shared_runners_enabled: boolean, runners_token: string, build_allow_git_fetch: boolean, build_timeout: integer, mirror_trigger_builds: boolean, pending_delete: boolean, public_builds: boolean, last_repository_check_failed: boolean, last_repository_check_at: datetime, only_allow_merge_if_pipeline_succeeds: boolean, has_external_issue_tracker: boolean, repository_storage: string, repository_read_only: boolean, request_access_enabled: boolean, has_external_wiki: boolean, ci_config_path: string, lfs_enabled: boolean, description_html: text, only_allow_merge_if_all_discussions_are_resolved: boolean, repository_size_limit: integer, printing_merge_request_link_enabled: boolean, auto_cancel_pending_pipelines: integer, service_desk_enabled: boolean, cached_markdown_version: integer, delete_error: text, last_repository_updated_at: datetime, disable_overriding_approvers_per_merge_request: boolean, storage_version: integer, resolve_outdated_diff_discussions: boolean, remote_mirror_available_overridden: boolean, only_mirror_protected_branches: boolean, pull_mirror_available_overridden: boolean, jobs_cache_index: integer, external_authorization_classification_label: string, mirror_overwrites_diverged_branches: boolean, pages_https_only: boolean, external_webhook_token: string, packages_enabled: boolean, merge_requests_author_approval: boolean, pool_repository_id: integer, runners_token_encrypted: string, bfg_object_map: string, detected_repository_languages: boolean, merge_requests_disable_committers_approval: boolean, require_password_to_approve: boolean, emails_disabled: boolean, max_pages_size: integer, max_artifacts_size: integer, remove_source_branch_after_merge: boolean, marked_for_deletion_at: date, marked_for_deletion_by_user_id: integer, autoclose_referenced_issues: boolean, suggestion_commit_message: string, project_namespace_id: integer, hidden: boolean), action: :invalid_action9373 returns the expected values9374 target: :invalid_target, action: :pushed9375 returns the expected values9376 target: Project(id: integer, name: string, path: string, description: text, created_at: datetime, updated_at: datetime, creator_id: integer, namespace_id: integer, last_activity_at: datetime, import_url: string, visibility_level: integer, archived: boolean, avatar: string, merge_requests_template: text, star_count: integer, merge_requests_rebase_enabled: boolean, import_type: string, import_source: string, approvals_before_merge: integer, reset_approvals_on_push: boolean, merge_requests_ff_only_enabled: boolean, issues_template: text, mirror: boolean, mirror_user_id: integer, shared_runners_enabled: boolean, runners_token: string, build_allow_git_fetch: boolean, build_timeout: integer, mirror_trigger_builds: boolean, pending_delete: boolean, public_builds: boolean, last_repository_check_failed: boolean, last_repository_check_at: datetime, only_allow_merge_if_pipeline_succeeds: boolean, has_external_issue_tracker: boolean, repository_storage: string, repository_read_only: boolean, request_access_enabled: boolean, has_external_wiki: boolean, ci_config_path: string, lfs_enabled: boolean, description_html: text, only_allow_merge_if_all_discussions_are_resolved: boolean, repository_size_limit: integer, printing_merge_request_link_enabled: boolean, auto_cancel_pending_pipelines: integer, service_desk_enabled: boolean, cached_markdown_version: integer, delete_error: text, last_repository_updated_at: datetime, disable_overriding_approvers_per_merge_request: boolean, storage_version: integer, resolve_outdated_diff_discussions: boolean, remote_mirror_available_overridden: boolean, only_mirror_protected_branches: boolean, pull_mirror_available_overridden: boolean, jobs_cache_index: integer, external_authorization_classification_label: string, mirror_overwrites_diverged_branches: boolean, pages_https_only: boolean, external_webhook_token: string, packages_enabled: boolean, merge_requests_author_approval: boolean, pool_repository_id: integer, runners_token_encrypted: string, bfg_object_map: string, detected_repository_languages: boolean, merge_requests_disable_committers_approval: boolean, require_password_to_approve: boolean, emails_disabled: boolean, max_pages_size: integer, max_artifacts_size: integer, remove_source_branch_after_merge: boolean, marked_for_deletion_at: date, marked_for_deletion_by_user_id: integer, autoclose_referenced_issues: boolean, suggestion_commit_message: string, project_namespace_id: integer, hidden: boolean), action: :created9377 returns the expected values9378Gitlab::Ci::Reports::Security::Locations::SecretDetection9379 behaves like vulnerability location9380 #initialize9381 when all params are given9382 initializes an instance9383 param: :file_path9384 when param file_path is missing9385 raises an error9386 param: :start_line9387 when param start_line is missing9388 raises an error9389 #fingerprint9390 generates expected fingerprint9391 #fingerprint_path9392 generates expected fingerprint9393 #==9394 returns true when fingerprints are equal9395 returns false when fingerprints are different9396RuboCop::Cop::CodeReuse::Worker9397 flags the use of a worker in a controller9398 flags the use of a worker in an API9399 flags the use of a worker in a Finder9400 flags the use of a worker in a Presenter9401 flags the use of a worker in a Serializer9402 flags the use of a worker in a model class method9403Gitlab::SidekiqMiddleware::SizeLimiter::Client9404 #call9405 when the validator rejects the job9406 raises an exception when scheduling job with #perform_at9407 raises an exception when scheduling job with #perform_async9408 raises an exception when scheduling job with #perform_in9409 when the validator validates the job suscessfully9410 raises an exception when scheduling job with #perform_at9411 raises an exception when scheduling job with #perform_async9412 raises an exception when scheduling job with #perform_in9413DevOpsReport::MetricPresenter9414 #cards9415 includes instance score, leader score and percentage score9416 #idea_to_production_steps9417 returns percentage score when it depends on a single feature9418 returns percentage score when it depends on two features9419 #average_percentage_score9420 calculates an average value across all the features9421DisallowTwoFactorForGroupWorker9422 updates group9423 updates group members9424Packages::Debian::FindOrCreateIncomingService9425 #execute9426 run once9427 creates a new package9428 behaves like assigns the package creator9429 assigns the package creator9430 run twice9431 returns the same object9432Gitlab::Metrics::Dashboard::Stages::PanelIdsInserter9433 #transform!9434 when dashboard panels are present9435 assigns unique ids to each panel using PerformanceMonitoring::PrometheusPanel9436 when dashboard panels has duplicated ids9437 no panel has assigned id9438 when there are no panels in the dashboard9439 raises a processing error9440 when there are no panel_groups in the dashboard9441 raises a processing error9442 when dashboard panels has unknown schema attributes9443 no panel has assigned id9444 logs the failure9445Gitlab::Ci::Build::Cache9446 .initialize9447 when the cache is an array9448 instantiates an array of cache seeds9449 when the cache is a hash9450 instantiates a cache seed9451 #cache_attributes9452 when there are no caches9453 returns an empty hash9454 when there are caches9455 returns the structured attributes for the caches9456Gitlab::Analytics::CycleAnalytics::Sorting9457 when invalid sorting params are given9458 falls back to end_event DESC sorting9459 sorting end_event9460 direction desc9461 is expected to eq [#<Arel::Nodes::Descending:0x00007f3d4e5ca368 @expr=#<struct Arel::Attributes::Attribute relation=#<A...nteger, removed_lines: integer, target_project_id: integer)>, @table_alias=nil>, name="merged_at">>]9462 direction asc9463 is expected to eq [#<Arel::Nodes::Ascending:0x00007f3d5674bc70 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar...nteger, removed_lines: integer, target_project_id: integer)>, @table_alias=nil>, name="merged_at">>]9464 sorting duration9465 direction desc9466 is expected to eq [#<Arel::Nodes::Descending:0x00007f3d112c6c80 @expr=#<Arel::Nodes::Subtraction:0x00007f3d112c6ca8 @le...ger, merge_ref_sha: binary, draft: boolean)>, @table_alias=nil>, name="created_at">, @operator=:->>]9467 direction asc9468 is expected to eq [#<Arel::Nodes::Ascending:0x00007f3d10fe9918 @expr=#<Arel::Nodes::Subtraction:0x00007f3d10fe9940 @lef...ger, merge_ref_sha: binary, draft: boolean)>, @table_alias=nil>, name="created_at">, @operator=:->>]9469Uniquify9470 #string9471 returns the given string if it does not exist9472 returns the given string with a counter attached if the string exists9473 increments the counter for each candidate string that also exists9474 allows to pass an initial value for the counter9475 allows passing in a base function that defines the location of the counter9476groups/group_members/index9477 when user can invite members for the group9478 renders as expected9479 when user can not invite members for the group9480 renders as expected9481Gitlab::Utils::LogLimitedArray9482 .log_limited_array9483 when the argument is not an array9484 returns an empty array9485 when the argument is an array9486 when the array is under the limit9487 returns the array unchanged9488 when the array exceeds the limit9489 when no sentinel value is passed9490 replaces arguments after the limit with an ellipsis string9491 when a sentinel value is passed9492 replaces arguments after the limit with the sentinel9493 when the array contains arrays and hashes9494 calculates the size based on the JSON representation9495Sidebars::Projects::Menus::RepositoryMenu9496 #render?9497 when project repository is empty9498 returns false9499 when project repository is not empty9500 when user can download code9501 returns true9502 when user cannot download code9503 returns false9504Gitlab::SidekiqMiddleware::WorkerContext::Server9505 #call9506 applies a class context9507 doesn't fail for unknown workers9508 feature category9509 takes the feature category from the worker9510 when the worker is not owned9511 takes the feature category from the surrounding context9512Banzai::Filter::FootnoteFilter9513 when footnotes exist9514 properly adds the necessary ids and classes9515 when detecting footnotes9516 valid: true, markdown: "1. one[^1]\n[^1]: AbC"9517 detects valid footnotes9518 valid: true, markdown: "1. one[^abc]\n[^abc]: AbC"9519 detects valid footnotes9520 valid: false, markdown: "1. [one](#fnref-abc)"9521 detects valid footnotes9522 valid: false, markdown: "1. one[^1]\n[^abc]: AbC"9523 detects valid footnotes9524Banzai::Filter::ImageLazyLoadFilter9525 adds a class attribute9526 appends to the current class attribute9527 adds a async decoding attribute9528 transforms the image src to a data-src9529 works with external images9530ProjectImportEntity9531 #as_json9532 includes required fields9533Captcha::CaptchaVerificationService9534 #execute9535 when there is no captcha_response9536 returns false9537 when there is a captcha_response9538 returns false9539 has a request method which returns an object with the ip address #remote_ip9540RepositoryCheck::ClearWorker9541 clears repository check columns9542Gitlab::ImportFormatter9543 #comment9544 creates the correct string9545 #author_line9546 returns the correct string with provided author name9547 returns the correct string with Anonymous name if author not provided9548 #assignee_line9549 returns the correct string with provided author name9550 returns the correct string with Anonymous name if author not provided9551BulkImports::Pipeline::ExtractedData9552 #has_next_page?9553 when next page is present9554 returns true9555 when next page is not present9556 returns false9557 #next_page9558 returns next page cursor information9559 #each9560 when block is present9561 yields each data item9562 when block is not present9563 returns enumerator9564Snippets::ScheduleBulkRepositoryShardMovesWorker9565 behaves like schedules bulk repository shard moves9566 #perform9567 is labeled as idempotent9568 performs multiple times sequentially without raising an exception9569 schedules container repository storage moves9570Projects::PipelineHelper9571 #js_pipeline_tabs_data9572 returns pipeline tabs data9573RuboCop::Cop::Gitlab::HTTParty9574 when source is a regular module9575 behaves like registering include offense9576 registers an offense when the class includes HTTParty9577 when source is a regular class9578 behaves like registering include offense9579 registers an offense when the class includes HTTParty9580 when HTTParty is called9581 behaves like registering call offense9582 registers an offense when the class calls HTTParty9583RuboCop::Cop::QA::AmbiguousPageObjectName9584 in a QA file9585 registers an offense for pages named `page`9586 doesnt offend if the page object is named otherwise9587 outside of a QA file9588 does not register an offense9589AnalyticsBuildSerializer9590 when there is a single object provided9591 contains important elements of analyticsBuild9592Gitlab::GithubImport::Stage::FinishImportWorker9593 #perform9594 marks the import as finished and reports import statistics9595RuboCop::Cop::ProjectPathHelper9596 when using namespace_project with the project's namespace9597 registers an offense and corrects9598 when using namespace_project with a different namespace9599 registers no offense9600Database::PartitionManagementWorker9601 #perform9602 syncs partitions9603 reports partition metrics9604RuboCop::Cop::CodeReuse::Finder9605 flags the use of a Finder inside another Finder9606 flags the use of a Finder inside a model class method9607 does not flag the use of a Finder in a non Finder file9608 does not flag the use of a Finder in a regular class method9609RuboCop::QAHelpers9610 #in_qa_file?9611 returns true for a node in the qa/ directory9612 returns false for a node outside the qa/ directory9613Types::IssuableSeverityEnum9614 is expected to eq "IssuableSeverity"9615 exposes all the existing issuable severity values9616FileHookWorker9617 #perform9618 executes Gitlab::FileHook with expected values9619 logs message in case of file_hook execution failure9620Ci::ChangeVariablesService9621 #execute9622 delegates to ActiveRecord update9623Types::JiraImportType9624 is expected to eq "JiraImport"9625 has the expected fields9626Types::Packages::Helm::FileMetadatumType9627 is expected to eq "HelmFileMetadata"9628 includes helm file metadatum fields9629Gitlab::Ci::Config::Yaml::Tags::Resolver9630 #to_hash9631 when referencing deeply nested arrays9632 when templates are defined before the job9633 behaves like expands references9634 expands the references9635 when templates are defined after the job9636 behaves like expands references9637 expands the references9638Gitlab::Patch::DatabaseConfig9639 module is included9640 config/database.yml9641 returns a hash containing only main:9642Namespaces::OnboardingUserAddedWorker#perform9643 behaves like records an onboarding progress action9644 is expected to receive execute({:action=>:user_added}) 1 time9645Types::AvailabilityEnum9646 is expected to eq "AvailabilityEnum"9647 exposes all the existing access levels9648Types::Snippets::BlobActionEnum9649 is expected to eq "SnippetBlobActionEnum"9650 exposes all file input action types9651Docs::DeprecationHandling9652 sorts entries and milestones9653Gitlab::Kubernetes::Kubeconfig::Entry::Context9654 #to_h9655 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}9656 with a namespace9657 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}9658Types::BlobViewerType9659 has the correct fields9660Gitlab::Ci::Parsers::Coverage::Cobertura9661 uses Sax parser9662Projects::Security::ConfigurationController routing9663 routes to #show9664Gitlab::Patch::ActionCableRedisListener9665 catches Redis connection errors and restarts Action Cable9666 re-raises other exceptions9667Gitlab::Diff::InlineDiffMarkdownMarker9668 #mark9669 does not escape html etities and marks the range9670Gitlab::Email::Hook::DisableEmailInterceptor9671 does not send emails9672Types::PermissionTypes::Issue9673 is expected to have graphql field :create_note9674ForkNamespaceSerializer9675 represents ForkNamespaceEntity entities9676Tooling::Crystalball::CoverageLinesStrategy9677 #after_register9678 starts coverage9679ActiveJob execute callback9680 is removed in test environment9681Types::DependencyProxy::GroupSettingType9682 includes dependency proxy blob fields9683Knapsack report was generated. Preview:9684{9685 "spec/models/merge_request_spec.rb": 218.0843861909998,9686 "spec/models/environment_spec.rb": 118.30458993999946,9687 "spec/lib/gitlab/auth_spec.rb": 100.89193526600047,9688 "spec/services/ci/unlock_artifacts_service_spec.rb": 82.27328581500024,9689 "spec/services/users/migrate_to_ghost_user_service_spec.rb": 66.99766798899964,9690 "spec/services/projects/fork_service_spec.rb": 67.37055316399983,9691 "spec/models/design_management/design_spec.rb": 18.03820730500047,9692 "spec/models/integrations/slack_spec.rb": 42.37706822600012,9693 "spec/policies/project_statistics_policy_spec.rb": 45.849044567999954,9694 "spec/tooling/danger/project_helper_spec.rb": 10.121715344999757,9695 "spec/helpers/integrations_helper_spec.rb": 8.96452114800013,9696 "spec/services/boards/lists/move_service_spec.rb": 36.99612484099998,9697 "spec/lib/gitlab/bare_repository_import/importer_spec.rb": 30.637317892999818,9698 "spec/workers/emails_on_push_worker_spec.rb": 39.869343985999876,9699 "spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb": 11.981420400999923,9700 "spec/services/design_management/copy_design_collection/copy_service_spec.rb": 20.968463377000262,9701 "spec/models/ci/bridge_spec.rb": 13.521670805000213,9702 "spec/lib/banzai/reference_parser/base_parser_spec.rb": 15.326350665999598,9703 "spec/services/ci/update_build_queue_service_spec.rb": 20.002015792000748,9704 "spec/models/deploy_token_spec.rb": 9.35227382300036,9705 "spec/lib/gitlab/pagination/offset_pagination_spec.rb": 20.417256226000063,9706 "spec/finders/ci/runner_jobs_finder_spec.rb": 16.404584951999823,9707 "spec/services/git/process_ref_changes_service_spec.rb": 17.418047385000136,9708 "spec/models/push_event_spec.rb": 15.050171494000097,9709 "spec/serializers/merge_request_poll_cached_widget_entity_spec.rb": 10.621745864000331,9710 "spec/models/label_spec.rb": 10.718478675999904,9711 "spec/lib/gitlab/ci/status/stage/factory_spec.rb": 13.2539786920006,9712 "spec/models/concerns/routable_spec.rb": 5.319999031000407,9713 "spec/lib/banzai/filter/references/project_reference_filter_spec.rb": 12.615230218000761,9714 "spec/lib/gitlab/json_cache_spec.rb": 3.251617714000531,9715 "spec/lib/gitlab/ci/templates/npm_spec.rb": 12.423075064999466,9716 "spec/models/active_session_spec.rb": 4.985686429999987,9717 "spec/services/metrics/dashboard/custom_dashboard_service_spec.rb": 9.017852355000286,9718 "spec/lib/gitlab/auth/ldap/person_spec.rb": 1.9393056389999401,9719 "spec/finders/serverless_domain_finder_spec.rb": 12.384242228999938,9720 "spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 1.6869627309997668,9721 "spec/models/onboarding_progress_spec.rb": 4.228141606999998,9722 "spec/lib/gitlab/database/load_balancing/host_spec.rb": 3.339774235000732,9723 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 7.431494505000046,9724 "spec/lib/gitlab/metrics/dashboard/processor_spec.rb": 6.303772955000568,9725 "spec/models/ssh_host_key_spec.rb": 2.749106258000211,9726 "spec/services/ci/stuck_builds/drop_scheduled_service_spec.rb": 6.535632093999993,9727 "spec/finders/environments/environments_by_deployments_finder_spec.rb": 9.060277270999904,9728 "spec/helpers/nav/top_nav_helper_spec.rb": 1.7266614079999272,9729 "spec/lib/gitlab/gitaly_client/operation_service_spec.rb": 1.806012109999756,9730 "spec/models/merge_request_assignee_spec.rb": 7.549484901000142,9731 "spec/services/packages/create_event_service_spec.rb": 5.960278104000281,9732 "spec/models/clusters/kubernetes_namespace_spec.rb": 5.296355700999811,9733 "spec/graphql/mutations/issues/create_spec.rb": 5.292178573000456,9734 "spec/graphql/mutations/releases/create_spec.rb": 6.714637668999785,9735 "spec/services/ci/runners/register_runner_service_spec.rb": 4.484989704999862,9736 "spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb": 4.047535084000629,9737 "spec/lib/extracts_path_spec.rb": 2.262818831000004,9738 "spec/serializers/ci/lint/result_serializer_spec.rb": 2.7211385299997346,9739 "spec/services/pages/zip_directory_service_spec.rb": 1.2256504819997645,9740 "spec/workers/merge_worker_spec.rb": 5.473662227999739,9741 "spec/finders/fork_targets_finder_spec.rb": 5.198519802000192,9742 "spec/lib/gitlab/performance_bar_spec.rb": 4.942191134000495,9743 "spec/lib/gitlab/exclusive_lease_spec.rb": 3.085905998000271,9744 "spec/policies/board_policy_spec.rb": 5.332198799999787,9745 "spec/services/metrics/dashboard/clone_dashboard_service_spec.rb": 3.5326186390002476,9746 "spec/lib/gitlab/suggestions/commit_message_spec.rb": 3.6933141939998677,9747 "spec/rubocop/cop/graphql/descriptions_spec.rb": 0.5730854200000977,9748 "spec/models/projects/topic_spec.rb": 1.7128617990001658,9749 "spec/views/projects/artifacts/_artifact.html.haml_spec.rb": 5.0599472140002035,9750 "spec/lib/error_tracking/sentry_client/issue_link_spec.rb": 1.5463583929995366,9751 "spec/services/ci/update_instance_variables_service_spec.rb": 1.0801049840001724,9752 "spec/workers/container_expiration_policy_worker_spec.rb": 2.9720848379993186,9753 "spec/services/files/create_service_spec.rb": 4.800983396999982,9754 "spec/lib/gitlab/ci/status/stage/play_manual_spec.rb": 3.662024608000138,9755 "spec/models/packages/go/module_version_spec.rb": 1.4755563990001974,9756 "spec/rubocop/todo_dir_spec.rb": 0.6080437860000529,9757 "spec/models/pages/lookup_path_spec.rb": 3.09151110699986,9758 "spec/graphql/resolvers/board_resolver_spec.rb": 2.074904606999553,9759 "spec/services/notification_recipients/builder/default_spec.rb": 3.6088780119998773,9760 "spec/services/projects/hashed_storage/migration_service_spec.rb": 2.90815828399991,9761 "spec/graphql/resolvers/group_issues_resolver_spec.rb": 3.4902095719999124,9762 "spec/models/ci/deleted_object_spec.rb": 1.6844222519994219,9763 "spec/views/admin/dashboard/index.html.haml_spec.rb": 3.381010682000124,9764 "spec/lib/gitlab/ci/pipeline/chain/limit/rate_limit_spec.rb": 1.0759059149995664,9765 "spec/models/experiment_subject_spec.rb": 0.5408026420000169,9766 "spec/services/integrations/propagate_service_spec.rb": 2.5073293400000694,9767 "spec/lib/gitlab/ci/status/external/common_spec.rb": 4.507784391999849,9768 "spec/models/integrations/slack_slash_commands_spec.rb": 2.5763599730007627,9769 "spec/services/system_notes/incident_service_spec.rb": 1.1958255750005264,9770 "spec/finders/prometheus_metrics_finder_spec.rb": 0.560160970000652,9771 "spec/helpers/issuables_description_templates_helper_spec.rb": 2.3547073919999093,9772 "spec/lib/gitlab/phabricator_import/conduit/response_spec.rb": 0.5701041490001444,9773 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb": 2.7362427779999052,9774 "spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb": 0.39562612600002467,9775 "spec/lib/gitlab/spamcheck/client_spec.rb": 1.1324720299999171,9776 "spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb": 0.6925578390000737,9777 "spec/lib/learn_gitlab/project_spec.rb": 1.495367387999977,9778 "spec/workers/concerns/limited_capacity/worker_spec.rb": 0.5252408529995591,9779 "spec/services/projects/lfs_pointers/lfs_import_service_spec.rb": 1.1882656749994567,9780 "spec/workers/repository_update_remote_mirror_worker_spec.rb": 1.0433474279998336,9781 "spec/lib/gitlab/email/smime/signer_spec.rb": 1.6957769010004995,9782 "spec/finders/design_management/versions_finder_spec.rb": 2.3619229619998805,9783 "spec/presenters/packages/helm/index_presenter_spec.rb": 0.6370979540006374,9784 "spec/services/web_hooks/destroy_service_spec.rb": 1.6856359319999683,9785 "spec/lib/banzai/filter/spaced_link_filter_spec.rb": 0.4140603639998517,9786 "spec/lib/gitlab/issuable_metadata_spec.rb": 2.525356537999869,9787 "spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb": 1.2234765120001612,9788 "spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb": 0.646316403000128,9789 "spec/services/groups/deploy_tokens/create_service_spec.rb": 1.964292038000167,9790 "spec/lib/gitlab/slash_commands/issue_new_spec.rb": 3.3607234130004144,9791 "spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb": 0.2938050739994651,9792 "spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb": 2.1332560230002855,9793 "spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb": 1.084335354000359,9794 "spec/lib/gitlab/lets_encrypt/challenge_spec.rb": 0.2152046609999161,9795 "spec/workers/namespaces/process_sync_events_worker_spec.rb": 3.024316883999745,9796 "spec/tooling/danger/feature_flag_spec.rb": 0.5579820909997579,9797 "spec/services/gpg_keys/destroy_service_spec.rb": 1.9856345250000231,9798 "spec/views/projects/commit/show.html.haml_spec.rb": 2.3024186669999835,9799 "spec/lib/gitlab/checks/diff_check_spec.rb": 3.0190115940004034,9800 "spec/policies/deploy_token_policy_spec.rb": 2.840091748999839,9801 "spec/lib/gitlab/ci/config/entry/rules_spec.rb": 0.5501159610003015,9802 "spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb": 0.4924089059995822,9803 "spec/finders/autocomplete/project_finder_spec.rb": 2.2188533049993566,9804 "spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb": 2.5475480459999744,9805 "spec/lib/banzai/renderer_spec.rb": 0.8199021070004164,9806 "spec/lib/gitlab/import_export/shared_spec.rb": 1.9708815760004654,9807 "spec/tasks/gitlab/uploads/check_rake_spec.rb": 3.7765408969999044,9808 "spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb": 0.9464002659997277,9809 "spec/lib/gitlab/blame_spec.rb": 0.8106028280008104,9810 "spec/lib/gitlab/verify/lfs_objects_spec.rb": 0.5299494029995913,9811 "spec/graphql/resolvers/last_commit_resolver_spec.rb": 1.791123621999759,9812 "spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb": 2.2063698459996886,9813 "spec/models/concerns/batch_destroy_dependent_associations_spec.rb": 1.230205640999884,9814 "spec/lib/gitlab/pagination/keyset/pager_spec.rb": 1.7652745039995352,9815 "spec/finders/uploader_finder_spec.rb": 1.0622955059998276,9816 "spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb": 1.6902223110000705,9817 "spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb": 0.2573336079994988,9818 "spec/workers/delete_container_repository_worker_spec.rb": 1.2438673099995867,9819 "spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb": 0.8900529419997838,9820 "spec/lib/system_check/orphans/repository_check_spec.rb": 1.098870892999912,9821 "spec/models/project_repository_spec.rb": 1.2422668699991846,9822 "spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb": 0.34430334999979095,9823 "spec/models/integrations/flowdock_spec.rb": 0.9147535189995324,9824 "spec/lib/gitlab/external_authorization/response_spec.rb": 0.3163192620004338,9825 "spec/policies/ci/bridge_policy_spec.rb": 1.288957716999903,9826 "spec/views/shared/snippets/_snippet.html.haml_spec.rb": 0.7298505660000956,9827 "spec/services/clusters/integrations/create_service_spec.rb": 1.4044037060002665,9828 "spec/models/cycle_analytics/project_level_stage_adapter_spec.rb": 0.8568936040001063,9829 "spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb": 0.3089614030004668,9830 "spec/graphql/mutations/container_repositories/destroy_spec.rb": 1.041604967999774,9831 "spec/graphql/mutations/design_management/move_spec.rb": 1.4773025900003631,9832 "spec/lib/gitlab/import_export/saver_spec.rb": 1.8894645930004117,9833 "spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb": 0.2915228140000181,9834 "spec/services/users/last_push_event_service_spec.rb": 0.7333172250000644,9835 "spec/models/wiki_directory_spec.rb": 0.3975943550003649,9836 "spec/graphql/types/incident_management/escalation_status_enum_spec.rb": 0.21084526100003131,9837 "spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb": 1.5867567599998438,9838 "spec/models/concerns/integrations/enable_ssl_verification_spec.rb": 0.34756876900064526,9839 "spec/serializers/diff_file_metadata_entity_spec.rb": 2.102690824000092,9840 "spec/lib/gitlab/config/entry/boolean_spec.rb": 0.1312786190001134,9841 "spec/lib/gitlab/checks/push_file_count_check_spec.rb": 1.2611617289994683,9842 "spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb": 0.20522811099999672,9843 "spec/services/clusters/agents/create_activity_event_service_spec.rb": 0.8562473339998178,9844 "spec/lib/gitlab/hook_data/project_builder_spec.rb": 0.9442717370002356,9845 "spec/services/packages/composer/composer_json_service_spec.rb": 1.4525062519996936,9846 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb": 0.09190527200007637,9847 "spec/lib/gitlab/saas_spec.rb": 0.06867436399988947,9848 "spec/workers/releases/manage_evidence_worker_spec.rb": 1.6887654210004257,9849 "spec/services/notes/render_service_spec.rb": 0.10984904999986611,9850 "spec/graphql/types/packages/conan/file_metadatum_type_spec.rb": 0.11055403000045771,9851 "spec/graphql/mutations/ci/runner/update_spec.rb": 0.9403816369995184,9852 "spec/graphql/resolvers/tree_resolver_spec.rb": 1.416763266000089,9853 "spec/lib/gitlab/private_commit_email_spec.rb": 0.5720720600002096,9854 "spec/validators/cron_validator_spec.rb": 0.22219625000070664,9855 "spec/lib/error_tracking/sentry_client/event_spec.rb": 0.9400186170005327,9856 "spec/services/clusters/aws/verify_provision_status_service_spec.rb": 0.8513146650002454,9857 "spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb": 0.28063173499958793,9858 "spec/lib/gitlab/ci/status/success_warning_spec.rb": 0.5180204139996931,9859 "spec/lib/gitlab/import_export/json/legacy_reader/file_spec.rb": 0.5826493189997564,9860 "spec/graphql/resolvers/project_resolver_spec.rb": 0.937132826999914,9861 "spec/models/concerns/blocks_unsafe_serialization_spec.rb": 0.08513195300020016,9862 "spec/models/integrations/asana_spec.rb": 0.5210800240001845,9863 "spec/support_specs/database/prevent_cross_joins_spec.rb": 0.22359883999979502,9864 "spec/views/notify/push_to_merge_request_email.text.haml_spec.rb": 0.866483903999324,9865 "spec/lib/gitlab/word_diff/segments/chunk_spec.rb": 0.3877634769996803,9866 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.21020207200035657,9867 "spec/support_specs/database/multiple_databases_spec.rb": 0.4348228819999349,9868 "spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb": 0.7937463510006637,9869 "spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb": 0.5651633500001481,9870 "spec/initializers/carrierwave_patch_spec.rb": 0.4116478639998604,9871 "spec/graphql/mutations/boards/update_spec.rb": 0.8935317209998175,9872 "spec/lib/gitlab/auth/atlassian/user_spec.rb": 0.7409386240005915,9873 "spec/lib/gitlab/ci/build/status/reason_spec.rb": 0.29065622499911115,9874 "spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb": 0.5271499730006326,9875 "spec/lib/gitlab/git/pre_receive_error_spec.rb": 0.37749621700004354,9876 "spec/lib/gitlab/git/base_error_spec.rb": 0.1466371070000605,9877 "spec/services/ci/build_unschedule_service_spec.rb": 0.8409922060000099,9878 "spec/lib/safe_zip/extract_spec.rb": 0.4145989730004658,9879 "spec/workers/build_queue_worker_spec.rb": 0.619538055000703,9880 "spec/workers/user_status_cleanup/batch_worker_spec.rb": 0.3583645279995835,9881 "spec/serializers/feature_flag_entity_spec.rb": 0.4776463779999176,9882 "spec/lib/gitlab/usage_data_counters/track_unique_events_spec.rb": 0.15215280699976574,9883 "spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb": 0.20910006099984457,9884 "spec/rubocop/cop/code_reuse/worker_spec.rb": 0.15636454699961178,9885 "spec/lib/gitlab/sidekiq_middleware/size_limiter/client_spec.rb": 0.173657755000022,9886 "spec/presenters/dev_ops_report/metric_presenter_spec.rb": 0.1455308270005844,9887 "spec/workers/disallow_two_factor_for_group_worker_spec.rb": 0.4183723630003442,9888 "spec/services/packages/debian/find_or_create_incoming_service_spec.rb": 0.37304491800023243,9889 "spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb": 0.2920376150004813,9890 "spec/lib/gitlab/ci/build/cache_spec.rb": 0.16029025499938143,9891 "spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb": 0.30915806200027873,9892 "spec/models/concerns/uniquify_spec.rb": 0.14729103700028645,9893 "spec/views/groups/group_members/index.html.haml_spec.rb": 0.4970029070000237,9894 "spec/lib/gitlab/utils/log_limited_array_spec.rb": 0.16795237599944812,9895 "spec/lib/sidebars/projects/menus/repository_menu_spec.rb": 0.35113770899988594,9896 "spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb": 0.1719575539991638,9897 "spec/lib/banzai/filter/footnote_filter_spec.rb": 0.16216696499941463,9898 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.1739722249994884,9899 "spec/serializers/project_import_entity_spec.rb": 0.25974984700042114,9900 "spec/services/captcha/captcha_verification_service_spec.rb": 0.09887320100006036,9901 "spec/workers/repository_check/clear_worker_spec.rb": 0.43464463199961756,9902 "spec/lib/gitlab/import_formatter_spec.rb": 0.24250281800050288,9903 "spec/lib/bulk_imports/pipeline/extracted_data_spec.rb": 0.3583627680000063,9904 "spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb": 0.44620166000004247,9905 "spec/helpers/projects/pipeline_helper_spec.rb": 0.37570339600006264,9906 "spec/rubocop/cop/gitlab/httparty_spec.rb": 0.15435037599945645,9907 "spec/rubocop/cop/qa/ambiguous_page_object_name_spec.rb": 0.1251826589996199,9908 "spec/serializers/analytics_build_serializer_spec.rb": 0.5680010199994285,9909 "spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb": 0.5304614730002868,9910 "spec/rubocop/cop/project_path_helper_spec.rb": 0.11970401899998251,9911 "spec/workers/database/partition_management_worker_spec.rb": 0.1325657589995899,9912 "spec/rubocop/cop/code_reuse/finder_spec.rb": 0.34585944899936294,9913 "spec/rubocop/qa_helpers_spec.rb": 0.19006743299996742,9914 "spec/graphql/types/issuable_severity_enum_spec.rb": 0.15649818600013532,9915 "spec/workers/file_hook_worker_spec.rb": 0.18326931499996135,9916 "spec/services/ci/change_variables_service_spec.rb": 0.2162000309999712,9917 "spec/graphql/types/jira_import_type_spec.rb": 0.13985425800001394,9918 "spec/graphql/types/packages/helm/file_metadatum_type_spec.rb": 0.219024551000075,9919 "spec/lib/gitlab/ci/config/yaml/tags/resolver_spec.rb": 0.11264471999948,9920 "spec/lib/gitlab/patch/database_config_spec.rb": 0.21634253000047465,9921 "spec/workers/namespaces/onboarding_user_added_worker_spec.rb": 0.12938543899963406,9922 "spec/graphql/types/availability_enum_spec.rb": 0.17007918499984953,9923 "spec/graphql/types/snippets/blob_action_enum_spec.rb": 0.12291689899939229,9924 "spec/tooling/docs/deprecation_handling_spec.rb": 0.15809445600007166,9925 "spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb": 0.10510490100023162,9926 "spec/graphql/types/blob_viewer_type_spec.rb": 0.05109930600065127,9927 "spec/lib/gitlab/ci/parsers/coverage/cobertura_spec.rb": 0.067707874000007,9928 "spec/routing/projects/security/configuration_controller_routing_spec.rb": 0.07681468400005542,9929 "spec/lib/gitlab/patch/action_cable_redis_listener_spec.rb": 0.11219838999932108,9930 "spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb": 0.06702933399992617,9931 "spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb": 0.22244389000024967,9932 "spec/graphql/types/permission_types/issue_spec.rb": 0.10760307100008504,9933 "spec/serializers/fork_namespace_serializer_spec.rb": 0.06448419399930572,9934 "spec/tooling/lib/tooling/crystalball/coverage_lines_strategy_spec.rb": 0.053096655000445026,9935 "spec/initializers/remove_active_job_execute_callback_spec.rb": 0.04986698599986994,9936 "spec/graphql/types/dependency_proxy/group_setting_type_spec.rb": 0.092115882000143769937}9938Knapsack global time execution for tests: 24m 09s9939Pending: (Failures listed here are expected and do not affect your suite's status)9940 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 blank9941 # No reason given9942 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:499943 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 blank9944 # No reason given9945 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:579946 3) Ci::UnlockArtifactsService tag: false, ci_update_unlocked_job_artifacts: false #execute when running on a ref before a pipeline unlocks job artifact records9947 # No reason given9948 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(2)9949 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 2, but did not change9950 # ./spec/services/ci/unlock_artifacts_service_spec.rb:73:in `block (5 levels) in <top (required)>'9951 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'9952 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9953 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'9954 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'9955 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'9956 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'9957 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'9958 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9959 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9960 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9961 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9962 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9963 4) Ci::UnlockArtifactsService tag: false, ci_update_unlocked_job_artifacts: false #execute when running on just the ref unlocks job artifact records9964 # No reason given9965 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(8)9966 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 8, but did not change9967 # ./spec/services/ci/unlock_artifacts_service_spec.rb:107:in `block (5 levels) in <top (required)>'9968 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'9969 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9970 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'9971 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'9972 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'9973 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'9974 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'9975 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9976 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9977 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9978 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9979 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9980 5) Ci::UnlockArtifactsService tag: true, ci_update_unlocked_job_artifacts: false #execute when running on a ref before a pipeline unlocks job artifact records9981 # No reason given9982 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(2)9983 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 2, but did not change9984 # ./spec/services/ci/unlock_artifacts_service_spec.rb:73:in `block (5 levels) in <top (required)>'9985 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'9986 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9987 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'9988 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'9989 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'9990 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'9991 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'9992 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9993 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9994 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9995 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9996 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9997 6) Ci::UnlockArtifactsService tag: true, ci_update_unlocked_job_artifacts: false #execute when running on just the ref unlocks job artifact records9998 # No reason given9999 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(8)10000 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 8, but did not change10001 # ./spec/services/ci/unlock_artifacts_service_spec.rb:107:in `block (5 levels) in <top (required)>'10002 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'10003 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'10004 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'10005 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'10006 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'10007 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'10008 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'10009 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10010 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'10011 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10012 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10013 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10014 7) DesignManagement::Design 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 blank10015 # No reason given10016 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910017 8) DesignManagement::Design 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 blank10018 # No reason given10019 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710020 9) Database::MultipleDatabases .with_added_ci_connection when only a single database is setup connects Ci::ApplicationRecord to the main database for the duration of the block10021 # Skipping because multiple databases are set up10022 # ./spec/support_specs/database/multiple_databases_spec.rb:6610023Finished in 24 minutes 12 seconds (files took 1 minute 7.56 seconds to load)100244470 examples, 0 failures, 9 pending10025RSpec exited with 0.10026No examples to retry, congrats!10028Not uploading cache ruby-gems-bullseye-9-protected due to policy10029Not uploading cache gitaly-ruby-gems-bullseye-9-protected due to policy10031Uploading artifacts...10032coverage/: found 5 matching files and directories 10033crystalball/: found 2 matching files and directories 10034WARNING: deprecations/: no matching files 10035knapsack/: found 3 matching files and directories 10036rspec/: found 8 matching files and directories 10037WARNING: tmp/capybara/: no matching files 10038log/*.log: found 18 matching files and directories 10039WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2388875735/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10040WARNING: Retrying... context=artifacts-uploader error=request redirected10041Uploading artifacts as "archive" to coordinator... 201 Created id=2388875735 responseStatus=201 Created token=HvA8HX_J10042Uploading artifacts...10043rspec/junit_rspec.xml: found 1 matching files and directories 10044WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2388875735/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10045WARNING: Retrying... context=artifacts-uploader error=request redirected10046Uploading artifacts as "junit" to coordinator... 201 Created id=2388875735 responseStatus=201 Created token=HvA8HX_J10048Job succeeded