rspec unit pg12 16/22
Passed Started
by
@mkozono
Michael Kozono
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-1651156458-1a820fe5...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: 100897, done. 25remote: Counting objects: 100% (100897/100897), done. 26remote: Compressing objects: 100% (72244/72244), done. 27remote: Total 100897 (delta 37991), reused 66741 (delta 24985), pack-reused 0 28Receiving objects: 100% (100897/100897), 103.82 MiB | 29.85 MiB/s, done.29Resolving deltas: 100% (37991/37991), done.31 * [new ref] refs/pipelines/527209691 -> refs/pipelines/52720969132Checking out 5267a595 as refs/merge-requests/86026/merge...33Skipping Git submodules setup35Checking cache for ruby-gems-bullseye-9-non_protected...36WARNING: file does not exist 37Failed to extract cache38Checking cache for gitaly-ruby-gems-bullseye-9-non_protected...39WARNING: file does not exist 40Failed to extract cache42Downloading artifacts for compile-test-assets (2391235084)...43Downloading artifacts from coordinator... ok id=2391235084 responseStatus=200 OK token=L9MhdVsA44Downloading artifacts for detect-tests (2391235095)...45Downloading artifacts from coordinator... ok id=2391235095 responseStatus=200 OK token=JNCgGSBc46Downloading artifacts for retrieve-tests-metadata (2391235100)...47Downloading artifacts from coordinator... ok id=2391235100 responseStatus=200 OK token=hZHaJ1t648Downloading artifacts for setup-test-env (2391235090)...49Downloading artifacts from coordinator... ok id=2391235090 responseStatus=200 OK token=99nHhGhQ51Using 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 ...52$ echo $FOSS_ONLY53$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb54$ export GOPATH=$CI_PROJECT_DIR/.go55$ mkdir -p $GOPATH56$ source scripts/utils.sh57$ source scripts/prepare_build.sh58Successfully installed bundler-2.3.6591 gem installed60Bundler version 2.3.661production:development62Settings are listed in order of priority. The top value will be used.63clean64Set for the current user (/root/.bundle/config): true65install_flags66Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"67path68Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor"69without70Set via BUNDLE_WITHOUT: [:production, :development]71$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check72Don't run Bundler as root. Bundler can ask for sudo if it is needed, and73installing your bundle as root will break this application for all non-root74users on this machine.75The Gemfile's dependencies are satisfied76==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 501 seconds.77$ bundle pristine pg78Installing pg 1.2.3 with native extensions79==> 'bundle pristine pg' succeeded in 13 seconds.80Using decomposed database config (config/database.yml.decomposed-postgresql)81$ setup_db_user_only82CREATE ROLE83GRANT84==> 'setup_db_user_only' succeeded in 1 seconds.85$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee86DEPRECATION 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)87DEPRECATION 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)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 <class:Kubernetes> at app/models/clusters/platforms/kubernetes.rb:29)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:34)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 block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)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 exists? at lib/gitlab/database/reflection.rb:94)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 block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)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 exists? at lib/gitlab/database/reflection.rb:94)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 block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)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 <class:Integration> at app/models/integration.rb:52)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:Helm> at app/models/clusters/applications/helm.rb:12)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:Prometheus> at app/models/clusters/applications/prometheus.rb:23)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 exists? at lib/gitlab/database/reflection.rb:94)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 connected? at ee/lib/gitlab/geo.rb:79)106Dropped database 'gitlabhq_test'107Dropped database 'gitlabhq_test_ci'108Dropped database 'gitlabhq_geo_test'109Created database 'gitlabhq_test'110Created database 'gitlabhq_test_ci'111Created database 'gitlabhq_geo_test'112DEPRECATION 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)113Dropped database 'gitlabhq_geo_test'114Created database 'gitlabhq_geo_test'115==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 38 seconds.116$ run_timed_command "gem install knapsack --no-document"117$ gem install knapsack --no-document118Successfully installed knapsack-4.0.01191 gem installed120==> 'gem install knapsack --no-document' succeeded in 1 seconds.121$ run_timed_command "scripts/gitaly-test-spawn"122$ scripts/gitaly-test-spawn123find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory124find: ‘/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 directory126Don't run Bundler as root. Bundler can ask for sudo if it is needed, and127installing your bundle as root will break this application for all non-root128users on this machine.129Fetching gem metadata from https://rubygems.org/...........130Fetching abstract_type 0.0.7131Fetching minitest 5.15.0132Fetching concurrent-ruby 1.1.10133Installing abstract_type 0.0.7134Installing minitest 5.15.0135Installing concurrent-ruby 1.1.10136Fetching zeitwerk 2.5.4137Fetching builder 3.2.4138Installing zeitwerk 2.5.4139Installing builder 3.2.4140Fetching erubi 1.10.0141Fetching mini_portile2 2.8.0142Installing erubi 1.10.0143Fetching racc 1.6.0144Installing mini_portile2 2.8.0145Installing racc 1.6.0 with native extensions146Fetching crass 1.0.6147Fetching rack 2.2.3148Installing crass 1.0.6149Fetching ice_nine 0.11.2150Installing rack 2.2.3151Installing ice_nine 0.11.2152Fetching thread_safe 0.3.6153Fetching public_suffix 4.0.6154Installing thread_safe 0.3.6155Installing public_suffix 4.0.6156Fetching ast 2.4.2157Fetching binding_ninja 0.2.3158Installing binding_ninja 0.2.3 with native extensions159Installing ast 2.4.2160Using bundler 2.1.4161Fetching charlock_holmes 0.7.7162Installing charlock_holmes 0.7.7 with native extensions163Fetching coderay 1.1.2164Installing coderay 1.1.2165Fetching equalizer 0.0.11166Installing equalizer 0.0.11167Fetching diff-lcs 1.3168Installing diff-lcs 1.3169Fetching dotenv 2.7.6170Installing dotenv 2.7.6171Fetching escape_utils 1.2.1172Installing escape_utils 1.2.1 with native extensions173Fetching multipart-post 2.1.1174Installing multipart-post 2.1.1175Fetching ffi 1.15.3176Installing ffi 1.15.3 with native extensions177Fetching json 2.6.1178Installing json 2.6.1 with native extensions179Fetching mini_mime 1.0.2180Installing mini_mime 1.0.2181Fetching rugged 1.2.0182Installing rugged 1.2.0 with native extensions183Fetching github-markup 1.7.0184Installing github-markup 1.7.0185Fetching mime-types-data 3.2020.1104186Installing mime-types-data 3.2020.1104187Fetching rouge 3.27.0188Installing rouge 3.27.0189Fetching stringex 2.8.5190Installing stringex 2.8.5191Fetching google-protobuf 3.19.1 (x86_64-linux)192Installing google-protobuf 3.19.1 (x86_64-linux)193Fetching opentracing 0.5.0194Installing opentracing 0.5.0195Fetching thrift 0.15.0196Installing thrift 0.15.0 with native extensions197Fetching redis 4.4.0198Installing redis 4.4.0199Fetching rubyzip 2.3.2200Installing rubyzip 2.3.2201Fetching thor 1.1.0202Installing thor 1.1.0203Fetching tomlrb 2.0.1204Installing tomlrb 2.0.1205Fetching with_env 1.1.0206Installing with_env 1.1.0207Fetching rexml 3.2.5208Installing rexml 3.2.5209Fetching gitlab-markup 1.7.1210Installing gitlab-markup 1.7.1211Fetching grpc-tools 1.42.0212Installing grpc-tools 1.42.0213Fetching method_source 0.9.2214Installing method_source 0.9.2215Fetching msgpack 1.3.3216Installing msgpack 1.3.3 with native extensions217Fetching optimist 3.0.1218Installing optimist 3.0.1219Fetching parallel 1.19.2220Installing parallel 1.19.2221Fetching procto 0.0.3222Installing procto 0.0.3223Fetching rainbow 3.0.0224Installing rainbow 3.0.0225Fetching rdoc 6.3.2226Installing rdoc 6.3.2227Fetching regexp_parser 1.8.1228Installing regexp_parser 1.8.1229Fetching rspec-support 3.8.0230Installing rspec-support 3.8.0231Fetching ruby-progressbar 1.10.1232Installing ruby-progressbar 1.10.1233Fetching unicode-display_width 1.7.0234Installing unicode-display_width 1.7.0235Fetching timecop 0.9.1236Installing timecop 0.9.1237Fetching i18n 1.10.0238Installing i18n 1.10.0239Fetching tzinfo 2.0.4240Installing tzinfo 2.0.4241Fetching rack-test 1.1.0242Installing rack-test 1.1.0243Fetching addressable 2.7.0244Installing addressable 2.7.0245Fetching memoizable 0.4.2246Installing memoizable 0.4.2247Fetching parser 3.0.3.2248Installing parser 3.0.3.2249Fetching nokogiri 1.13.3 (x86_64-linux)250Installing nokogiri 1.13.3 (x86_64-linux)251Fetching faraday 1.0.1252Installing faraday 1.0.1253Fetching mime-types 3.3.1254Installing mime-types 3.3.1255Fetching googleapis-common-protos-types 1.3.0256Installing googleapis-common-protos-types 1.3.0257Fetching pg_query 2.1.1258Installing pg_query 2.1.1 with native extensions259Fetching github-linguist 7.12.1260Fetching xml-simple 1.1.9261Installing xml-simple 1.1.9262Fetching pry 0.12.2263Installing github-linguist 7.12.1 with native extensions264Installing pry 0.12.2265Fetching jaeger-client 1.1.0266Installing jaeger-client 1.1.0267Fetching rspec-core 3.8.0268Installing rspec-core 3.8.0269Fetching rspec-expectations 3.8.3270Installing rspec-expectations 3.8.3271Fetching rspec-mocks 3.8.0272Installing rspec-mocks 3.8.0273Fetching activesupport 6.1.4.7274Installing activesupport 6.1.4.7275Fetching adamantium 0.2.0276Installing adamantium 0.2.0277Fetching rubocop-ast 0.2.0278Installing rubocop-ast 0.2.0279Fetching loofah 2.16.0280Installing loofah 2.16.0281Fetching sanitize 6.0.0282Installing sanitize 6.0.0283Fetching reverse_markdown 1.4.0284Installing reverse_markdown 1.4.0285Fetching sawyer 0.8.2286Installing sawyer 0.8.2287Fetching sentry-raven 3.0.4288Installing sentry-raven 3.0.4289Fetching gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1290Installing gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1291Fetching grpc 1.42.0 (x86_64-linux)292Installing grpc 1.42.0 (x86_64-linux)293Fetching rbtrace 0.4.14294Installing rbtrace 0.4.14 with native extensions295Fetching gemojione 3.3.0296Installing gemojione 3.3.0297Fetching gitlab-license_finder 6.14.2.1298Installing gitlab-license_finder 6.14.2.1299Fetching rspec 3.8.0300Installing rspec 3.8.0301Fetching rails-dom-testing 2.0.3302Installing rails-dom-testing 2.0.3303Fetching factory_bot 5.0.2304Installing factory_bot 5.0.2305Fetching concord 0.1.5306Installing concord 0.1.5307Fetching rubocop 0.86.0308Installing rubocop 0.86.0309Fetching rails-html-sanitizer 1.4.2310Installing rails-html-sanitizer 1.4.2311Fetching octokit 4.20.0312Installing octokit 4.20.0313Fetching unparser 0.4.7314Installing unparser 0.4.7315Fetching actionview 6.1.4.7316Installing actionview 6.1.4.7317Fetching licensee 9.14.1318Fetching proc_to_ast 0.1.0319Installing licensee 9.14.1320Installing proc_to_ast 0.1.0321Fetching actionpack 6.1.4.7322Installing actionpack 6.1.4.7323Fetching gitlab-gollum-lib 4.2.7.10.gitlab.2324Installing gitlab-gollum-lib 4.2.7.10.gitlab.2325Fetching rspec-parameterized 0.4.2326Fetching gitlab-labkit 0.21.2327Installing rspec-parameterized 0.4.2328Installing gitlab-labkit 0.21.2329Bundle complete! 22 Gemfile dependencies, 100 gems now installed.330Gems in the groups production and development were not installed.331Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`332Post-install message from rubyzip:333RubyZip 3.0 is coming!334**********************335The public API of some Rubyzip classes has been modernized to use named336parameters for optional arguments. Please check your usage of the337following classes:338 * `Zip::File`339 * `Zip::Entry`340 * `Zip::InputStream`341 * `Zip::OutputStream`342Please ensure that your Gemfiles and .gemspecs are suitably restrictive343to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).344See https://github.com/rubyzip/rubyzip for details. The Changelog also345lists other enhancements and bugfixes that have been implemented since346version 2.3.0.347Checking gitaly-ruby Gemfile...348Checking gitaly-ruby bundle...349The Gemfile's dependencies are satisfied350Trying to connect to gitaly: ................................................ OK351Trying to connect to gitaly2: ..................................................................... OK352Trying to connect to praefect: ......... OK353==> 'scripts/gitaly-test-spawn' succeeded in 154 seconds.354$ source ./scripts/rspec_helpers.sh355$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"356SKIP_FLAKY_TESTS_AUTOMATICALLY: true357RETRY_FAILED_TESTS_IN_NEW_PROCESS: true358KNAPSACK_GENERATE_REPORT: true359FLAKY_RSPEC_GENERATE_REPORT: true360KNAPSACK_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.rb361KNAPSACK_LOG_LEVEL: debug362KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_16_22_report.json363FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json364FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_16_22_report.json365NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_16_22_report.json366SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_16_22_report.txt367RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_16_22_report.txt368CRYSTALBALL: 369Knapsack node specs:370spec/services/merge_requests/update_service_spec.rb371spec/services/auth/container_registry_authentication_service_spec.rb372spec/services/todos/destroy/entity_leave_service_spec.rb373spec/services/ci/unlock_artifacts_service_spec.rb374spec/models/concerns/noteable_spec.rb375spec/models/ci/build_trace_chunk_spec.rb376spec/services/system_notes/issuables_service_spec.rb377spec/presenters/projects/security/configuration_presenter_spec.rb378spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb379spec/helpers/visibility_level_helper_spec.rb380spec/services/projects/update_service_spec.rb381spec/lib/gitlab/ci/templates/templates_spec.rb382spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb383spec/models/concerns/milestoneish_spec.rb384spec/models/ci/ref_spec.rb385spec/lib/gitlab/ci/status/pipeline/factory_spec.rb386spec/models/ci/pipeline_schedule_spec.rb387spec/models/deploy_token_spec.rb388spec/lib/gitlab/ci/status/build/failed_spec.rb389spec/services/projects/move_forks_service_spec.rb390spec/models/integrations/jenkins_spec.rb391spec/models/blob_spec.rb392spec/helpers/blob_helper_spec.rb393spec/services/projects/detect_repository_languages_service_spec.rb394spec/helpers/application_helper_spec.rb395spec/lib/container_registry/gitlab_api_client_spec.rb396spec/lib/gitlab/data_builder/build_spec.rb397spec/lib/gitlab/ci/config/entry/reports_spec.rb398spec/workers/container_registry/migration/enqueuer_worker_spec.rb399spec/finders/clusters/knative_services_finder_spec.rb400spec/models/concerns/reactive_caching_spec.rb401spec/services/clusters/applications/check_uninstall_progress_service_spec.rb402spec/lib/gitlab/diff/rendered/notebook/diff_file_spec.rb403spec/services/namespaces/in_product_marketing_emails_service_spec.rb404spec/graphql/mutations/issues/set_assignees_spec.rb405spec/lib/container_registry/path_spec.rb406spec/services/issues/export_csv_service_spec.rb407spec/graphql/features/authorization_spec.rb408spec/lib/gitlab/ci/trace/checksum_spec.rb409spec/models/concerns/prometheus_adapter_spec.rb410spec/services/merge_requests/assign_issues_service_spec.rb411spec/lib/gitlab/ci/config/entry/release_spec.rb412spec/lib/gitlab/redis/shared_state_spec.rb413spec/workers/remove_expired_members_worker_spec.rb414spec/workers/container_registry/migration/guard_worker_spec.rb415spec/presenters/clusterable_presenter_spec.rb416spec/lib/gitlab/exclusive_lease_spec.rb417spec/lib/gitlab/redis/trace_chunks_spec.rb418spec/lib/gitlab/slash_commands/deploy_spec.rb419spec/lib/gitlab/ci/ansi2json_spec.rb420spec/lib/gitlab/ci/charts_spec.rb421spec/workers/project_export_worker_spec.rb422spec/models/project_auto_devops_spec.rb423spec/models/hooks/project_hook_spec.rb424spec/tasks/gettext_rake_spec.rb425spec/services/merge_requests/get_urls_service_spec.rb426spec/lib/gitlab/quick_actions/extractor_spec.rb427spec/graphql/mutations/releases/delete_spec.rb428spec/views/projects/artifacts/_artifact.html.haml_spec.rb429spec/lib/kramdown/parser/atlassian_document_format_spec.rb430spec/lib/gitlab/suggestions/commit_message_spec.rb431spec/models/protectable_dropdown_spec.rb432spec/graphql/mutations/issues/set_confidential_spec.rb433spec/models/integrations/redmine_spec.rb434spec/config/inject_enterprise_edition_module_spec.rb435spec/workers/prune_old_events_worker_spec.rb436spec/workers/issuable_export_csv_worker_spec.rb437spec/lib/gitlab/ci/ansi2json/line_spec.rb438spec/services/users/create_service_spec.rb439spec/finders/packages/maven/package_finder_spec.rb440spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb441spec/lib/banzai/filter/gollum_tags_filter_spec.rb442spec/models/integrations/ewm_spec.rb443spec/helpers/invite_members_helper_spec.rb444spec/lib/gitlab/github_import/importer/issue_importer_spec.rb445spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb446spec/services/wiki_pages/destroy_service_spec.rb447spec/models/concerns/limitable_spec.rb448spec/views/shared/deploy_tokens/_form.html.haml_spec.rb449spec/uploaders/file_mover_spec.rb450spec/services/ci/create_pipeline_service/tags_spec.rb451spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb452spec/lib/gitlab/gitaly_client/wiki_service_spec.rb453spec/lib/gitlab/consul/internal_spec.rb454spec/workers/integrations/create_external_cross_reference_worker_spec.rb455spec/services/container_expiration_policies/cleanup_service_spec.rb456spec/lib/gitlab/legacy_github_import/client_spec.rb457spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb458spec/graphql/resolvers/alert_management/alert_resolver_spec.rb459spec/services/ci/expire_pipeline_cache_service_spec.rb460spec/tasks/gitlab/task_helpers_spec.rb461spec/lib/gitlab/slash_commands/issue_new_spec.rb462spec/views/projects/settings/operations/show.html.haml_spec.rb463spec/models/project_setting_spec.rb464spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb465spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb466spec/services/projects/move_lfs_objects_projects_service_spec.rb467spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb468spec/models/integrations/custom_issue_tracker_spec.rb469spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb470spec/lib/gitlab/cache/helpers_spec.rb471spec/services/integrations/propagate_service_spec.rb472spec/services/deployments/archive_in_project_service_spec.rb473spec/views/notify/pipeline_failed_email.text.erb_spec.rb474spec/services/projects/count_service_spec.rb475spec/lib/api/helpers/authentication_spec.rb476spec/lib/gitlab/ci/config/external/file/base_spec.rb477spec/services/groups/auto_devops_service_spec.rb478spec/models/milestone_release_spec.rb479spec/lib/gitlab/manifest_import/project_creator_spec.rb480spec/lib/gitlab/crypto_helper_spec.rb481spec/lib/gitlab/sample_data_template_spec.rb482spec/models/ci/job_variable_spec.rb483spec/lib/gitlab/sql/intersect_spec.rb484spec/lib/banzai/reference_parser/external_issue_parser_spec.rb485spec/models/legacy_diff_note_spec.rb486spec/lib/gitlab/ci/status/running_spec.rb487spec/lib/banzai/filter/front_matter_filter_spec.rb488spec/lib/gitlab/pipeline_scope_counts_spec.rb489spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb490spec/services/groups/group_links/update_service_spec.rb491spec/lib/gitlab/metrics/subscribers/external_http_spec.rb492spec/tooling/danger/datateam_spec.rb493spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb494spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb495spec/services/users/unban_service_spec.rb496spec/models/concerns/has_user_type_spec.rb497spec/graphql/mutations/groups/update_spec.rb498spec/workers/deployments/link_merge_request_worker_spec.rb499spec/services/ci/create_pipeline_service/parallel_spec.rb500spec/models/programming_language_spec.rb501spec/serializers/trigger_variable_entity_spec.rb502spec/graphql/mutations/alert_management/update_alert_status_spec.rb503spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb504spec/models/concerns/integrations/reset_secret_fields_spec.rb505spec/views/shared/issuable/_sidebar.html.haml_spec.rb506spec/workers/pages_domain_verification_cron_worker_spec.rb507spec/helpers/breadcrumbs_helper_spec.rb508spec/services/feature_flags/destroy_service_spec.rb509spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb510spec/serializers/job_artifact_report_entity_spec.rb511spec/rubocop/cop/active_record_association_reload_spec.rb512spec/finders/milestones_finder_spec.rb513spec/graphql/mutations/saved_replies/create_spec.rb514spec/lib/gitlab/diff/pair_selector_spec.rb515spec/services/projects/branches_by_mode_service_spec.rb516spec/workers/stuck_export_jobs_worker_spec.rb517spec/presenters/dev_ops_report/metric_presenter_spec.rb518spec/lib/gitlab/ci/badge/pipeline/template_spec.rb519spec/services/alert_management/metric_images/upload_service_spec.rb520spec/graphql/mutations/labels/create_spec.rb521spec/graphql/resolvers/tree_resolver_spec.rb522spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb523spec/workers/propagate_integration_project_worker_spec.rb524spec/lib/gitlab/bullet/exclusions_spec.rb525spec/views/projects/commits/_commit.html.haml_spec.rb526spec/services/branches/validate_new_service_spec.rb527spec/workers/purge_dependency_proxy_cache_worker_spec.rb528spec/lib/gitlab/config/entry/boolean_spec.rb529spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb530spec/lib/gitlab/internal_post_receive/response_spec.rb531spec/lib/gitlab/ci/status/skipped_spec.rb532spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb533spec/db/production/create_base_work_item_types_spec.rb534spec/lib/banzai/filter/image_link_filter_spec.rb535spec/helpers/graph_helper_spec.rb536spec/serializers/test_report_entity_spec.rb537spec/workers/database/drop_detached_partitions_worker_spec.rb538spec/models/issue/email_spec.rb539spec/policies/protected_branch_policy_spec.rb540spec/serializers/test_case_entity_spec.rb541spec/services/ci/create_pipeline_service/environment_spec.rb542spec/services/ide/base_config_service_spec.rb543spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb544spec/policies/alert_management/http_integration_policy_spec.rb545spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb546spec/services/pod_logs/base_service_spec.rb547spec/graphql/resolvers/users/groups_resolver_spec.rb548spec/services/packages/rubygems/metadata_extraction_service_spec.rb549spec/graphql/types/tree/type_enum_spec.rb550spec/routing/environments_spec.rb551spec/services/packages/generic/find_or_create_package_service_spec.rb552spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb553spec/views/groups/_home_panel.html.haml_spec.rb554spec/lib/gitlab/etag_caching/router_spec.rb555spec/support_specs/graphql/arguments_spec.rb556spec/services/projects/fetch_statistics_increment_service_spec.rb557spec/lib/gitlab/container_repository/tags/cache_spec.rb558spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb559spec/services/ci/compare_codequality_reports_service_spec.rb560spec/views/help/index.html.haml_spec.rb561spec/workers/bulk_imports/pipeline_worker_spec.rb562spec/lib/gitlab/config/entry/composable_array_spec.rb563spec/lib/gitlab/avatar_cache_spec.rb564spec/services/boards/destroy_service_spec.rb565spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb566spec/models/data_list_spec.rb567spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb568spec/serializers/merge_request_for_pipeline_entity_spec.rb569spec/initializers/settings_spec.rb570spec/lib/bitbucket_server/page_spec.rb571spec/services/jira_connect/sync_service_spec.rb572spec/lib/gitlab/fogbugz_import/project_creator_spec.rb573spec/models/bulk_imports/configuration_spec.rb574spec/serializers/merge_request_sidebar_extras_entity_spec.rb575spec/lib/gitlab/ci/config/entry/release/assets_spec.rb576spec/models/term_agreement_spec.rb577spec/lib/gitlab/database/type/json_pg_safe_spec.rb578spec/views/shared/milestones/_top.html.haml_spec.rb579spec/serializers/merge_request_sidebar_basic_entity_spec.rb580spec/lib/api/entities/deploy_keys_project_spec.rb581spec/experiments/force_company_trial_experiment_spec.rb582spec/models/project_tracing_setting_spec.rb583spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb584spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb585spec/finders/applications_finder_spec.rb586spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb587spec/services/product_analytics/build_activity_graph_service_spec.rb588spec/models/instance_metadata/kas_spec.rb589spec/finders/bulk_imports/imports_finder_spec.rb590spec/lib/gitlab/external_authorization/cache_spec.rb591spec/lib/gitlab/ci/artifacts/metrics_spec.rb592spec/lib/gitlab/middleware/compressed_json_spec.rb593spec/lib/api/entities/basic_project_details_spec.rb594spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb595spec/lib/api/validations/validators/untrusted_regexp_spec.rb596spec/lib/api/entities/ci/job_artifact_file_spec.rb597spec/workers/file_hook_worker_spec.rb598spec/lib/gitlab/phabricator_import/conduit/maniphest_spec.rb599spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb600spec/serializers/project_mirror_serializer_spec.rb601spec/graphql/types/user_status_type_spec.rb602spec/lib/gitlab/kubernetes/kubeconfig/entry/user_spec.rb603spec/lib/gitlab/fogbugz_import/client_spec.rb604spec/lib/gitlab/ci/reports/security/link_spec.rb605spec/serializers/accessibility_reports_comparer_entity_spec.rb606spec/workers/project_service_worker_spec.rb607spec/lib/gitlab/git/bundle_file_spec.rb608spec/initializers/6_validations_spec.rb609spec/graphql/types/permission_types/merge_request_spec.rb610spec/workers/clusters/integrations/check_prometheus_health_worker_spec.rb611spec/graphql/types/ci_configuration/sast/analyzers_entity_type_spec.rb612spec/lib/api/entities/nuget/dependency_spec.rb613spec/serializers/evidences/project_entity_spec.rb614spec/lib/gitlab/graphql_logger_spec.rb615spec/services/notes/render_service_spec.rb616spec/models/synthetic_note_spec.rb617spec/lib/gitlab/asciidoc/html5_converter_spec.rb618spec/lib/gitlab/graphql/copy_field_description_spec.rb619spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb620spec/lib/gitlab/diff/file_collection_sorter_spec.rb621spec/lib/gitlab/nav/top_nav_menu_item_spec.rb622spec/lib/forever_spec.rb623Filter specs:624Running specs:625Running all node tests without filter626spec/services/merge_requests/update_service_spec.rb627spec/services/auth/container_registry_authentication_service_spec.rb628spec/services/todos/destroy/entity_leave_service_spec.rb629spec/services/ci/unlock_artifacts_service_spec.rb630spec/models/concerns/noteable_spec.rb631spec/models/ci/build_trace_chunk_spec.rb632spec/services/system_notes/issuables_service_spec.rb633spec/presenters/projects/security/configuration_presenter_spec.rb634spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb635spec/helpers/visibility_level_helper_spec.rb636spec/services/projects/update_service_spec.rb637spec/lib/gitlab/ci/templates/templates_spec.rb638spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb639spec/models/concerns/milestoneish_spec.rb640spec/models/ci/ref_spec.rb641spec/lib/gitlab/ci/status/pipeline/factory_spec.rb642spec/models/ci/pipeline_schedule_spec.rb643spec/models/deploy_token_spec.rb644spec/lib/gitlab/ci/status/build/failed_spec.rb645spec/services/projects/move_forks_service_spec.rb646spec/models/integrations/jenkins_spec.rb647spec/models/blob_spec.rb648spec/helpers/blob_helper_spec.rb649spec/services/projects/detect_repository_languages_service_spec.rb650spec/helpers/application_helper_spec.rb651spec/lib/container_registry/gitlab_api_client_spec.rb652spec/lib/gitlab/data_builder/build_spec.rb653spec/lib/gitlab/ci/config/entry/reports_spec.rb654spec/workers/container_registry/migration/enqueuer_worker_spec.rb655spec/finders/clusters/knative_services_finder_spec.rb656spec/models/concerns/reactive_caching_spec.rb657spec/services/clusters/applications/check_uninstall_progress_service_spec.rb658spec/lib/gitlab/diff/rendered/notebook/diff_file_spec.rb659spec/services/namespaces/in_product_marketing_emails_service_spec.rb660spec/graphql/mutations/issues/set_assignees_spec.rb661spec/lib/container_registry/path_spec.rb662spec/services/issues/export_csv_service_spec.rb663spec/graphql/features/authorization_spec.rb664spec/lib/gitlab/ci/trace/checksum_spec.rb665spec/models/concerns/prometheus_adapter_spec.rb666spec/services/merge_requests/assign_issues_service_spec.rb667spec/lib/gitlab/ci/config/entry/release_spec.rb668spec/lib/gitlab/redis/shared_state_spec.rb669spec/workers/remove_expired_members_worker_spec.rb670spec/workers/container_registry/migration/guard_worker_spec.rb671spec/presenters/clusterable_presenter_spec.rb672spec/lib/gitlab/exclusive_lease_spec.rb673spec/lib/gitlab/redis/trace_chunks_spec.rb674spec/lib/gitlab/slash_commands/deploy_spec.rb675spec/lib/gitlab/ci/ansi2json_spec.rb676spec/lib/gitlab/ci/charts_spec.rb677spec/workers/project_export_worker_spec.rb678spec/models/project_auto_devops_spec.rb679spec/models/hooks/project_hook_spec.rb680spec/tasks/gettext_rake_spec.rb681spec/services/merge_requests/get_urls_service_spec.rb682spec/lib/gitlab/quick_actions/extractor_spec.rb683spec/graphql/mutations/releases/delete_spec.rb684spec/views/projects/artifacts/_artifact.html.haml_spec.rb685spec/lib/kramdown/parser/atlassian_document_format_spec.rb686spec/lib/gitlab/suggestions/commit_message_spec.rb687spec/models/protectable_dropdown_spec.rb688spec/graphql/mutations/issues/set_confidential_spec.rb689spec/models/integrations/redmine_spec.rb690spec/config/inject_enterprise_edition_module_spec.rb691spec/workers/prune_old_events_worker_spec.rb692spec/workers/issuable_export_csv_worker_spec.rb693spec/lib/gitlab/ci/ansi2json/line_spec.rb694spec/services/users/create_service_spec.rb695spec/finders/packages/maven/package_finder_spec.rb696spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb697spec/lib/banzai/filter/gollum_tags_filter_spec.rb698spec/models/integrations/ewm_spec.rb699spec/helpers/invite_members_helper_spec.rb700spec/lib/gitlab/github_import/importer/issue_importer_spec.rb701spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb702spec/services/wiki_pages/destroy_service_spec.rb703spec/models/concerns/limitable_spec.rb704spec/views/shared/deploy_tokens/_form.html.haml_spec.rb705spec/uploaders/file_mover_spec.rb706spec/services/ci/create_pipeline_service/tags_spec.rb707spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb708spec/lib/gitlab/gitaly_client/wiki_service_spec.rb709spec/lib/gitlab/consul/internal_spec.rb710spec/workers/integrations/create_external_cross_reference_worker_spec.rb711spec/services/container_expiration_policies/cleanup_service_spec.rb712spec/lib/gitlab/legacy_github_import/client_spec.rb713spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb714spec/graphql/resolvers/alert_management/alert_resolver_spec.rb715spec/services/ci/expire_pipeline_cache_service_spec.rb716spec/tasks/gitlab/task_helpers_spec.rb717spec/lib/gitlab/slash_commands/issue_new_spec.rb718spec/views/projects/settings/operations/show.html.haml_spec.rb719spec/models/project_setting_spec.rb720spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb721spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb722spec/services/projects/move_lfs_objects_projects_service_spec.rb723spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb724spec/models/integrations/custom_issue_tracker_spec.rb725spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb726spec/lib/gitlab/cache/helpers_spec.rb727spec/services/integrations/propagate_service_spec.rb728spec/services/deployments/archive_in_project_service_spec.rb729spec/views/notify/pipeline_failed_email.text.erb_spec.rb730spec/services/projects/count_service_spec.rb731spec/lib/api/helpers/authentication_spec.rb732spec/lib/gitlab/ci/config/external/file/base_spec.rb733spec/services/groups/auto_devops_service_spec.rb734spec/models/milestone_release_spec.rb735spec/lib/gitlab/manifest_import/project_creator_spec.rb736spec/lib/gitlab/crypto_helper_spec.rb737spec/lib/gitlab/sample_data_template_spec.rb738spec/models/ci/job_variable_spec.rb739spec/lib/gitlab/sql/intersect_spec.rb740spec/lib/banzai/reference_parser/external_issue_parser_spec.rb741spec/models/legacy_diff_note_spec.rb742spec/lib/gitlab/ci/status/running_spec.rb743spec/lib/banzai/filter/front_matter_filter_spec.rb744spec/lib/gitlab/pipeline_scope_counts_spec.rb745spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb746spec/services/groups/group_links/update_service_spec.rb747spec/lib/gitlab/metrics/subscribers/external_http_spec.rb748spec/tooling/danger/datateam_spec.rb749spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb750spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb751spec/services/users/unban_service_spec.rb752spec/models/concerns/has_user_type_spec.rb753spec/graphql/mutations/groups/update_spec.rb754spec/workers/deployments/link_merge_request_worker_spec.rb755spec/services/ci/create_pipeline_service/parallel_spec.rb756spec/models/programming_language_spec.rb757spec/serializers/trigger_variable_entity_spec.rb758spec/graphql/mutations/alert_management/update_alert_status_spec.rb759spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb760spec/models/concerns/integrations/reset_secret_fields_spec.rb761spec/views/shared/issuable/_sidebar.html.haml_spec.rb762spec/workers/pages_domain_verification_cron_worker_spec.rb763spec/helpers/breadcrumbs_helper_spec.rb764spec/services/feature_flags/destroy_service_spec.rb765spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb766spec/serializers/job_artifact_report_entity_spec.rb767spec/rubocop/cop/active_record_association_reload_spec.rb768spec/finders/milestones_finder_spec.rb769spec/graphql/mutations/saved_replies/create_spec.rb770spec/lib/gitlab/diff/pair_selector_spec.rb771spec/services/projects/branches_by_mode_service_spec.rb772spec/workers/stuck_export_jobs_worker_spec.rb773spec/presenters/dev_ops_report/metric_presenter_spec.rb774spec/lib/gitlab/ci/badge/pipeline/template_spec.rb775spec/services/alert_management/metric_images/upload_service_spec.rb776spec/graphql/mutations/labels/create_spec.rb777spec/graphql/resolvers/tree_resolver_spec.rb778spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb779spec/workers/propagate_integration_project_worker_spec.rb780spec/lib/gitlab/bullet/exclusions_spec.rb781spec/views/projects/commits/_commit.html.haml_spec.rb782spec/services/branches/validate_new_service_spec.rb783spec/workers/purge_dependency_proxy_cache_worker_spec.rb784spec/lib/gitlab/config/entry/boolean_spec.rb785spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb786spec/lib/gitlab/internal_post_receive/response_spec.rb787spec/lib/gitlab/ci/status/skipped_spec.rb788spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb789spec/db/production/create_base_work_item_types_spec.rb790spec/lib/banzai/filter/image_link_filter_spec.rb791spec/helpers/graph_helper_spec.rb792spec/serializers/test_report_entity_spec.rb793spec/workers/database/drop_detached_partitions_worker_spec.rb794spec/models/issue/email_spec.rb795spec/policies/protected_branch_policy_spec.rb796spec/serializers/test_case_entity_spec.rb797spec/services/ci/create_pipeline_service/environment_spec.rb798spec/services/ide/base_config_service_spec.rb799spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb800spec/policies/alert_management/http_integration_policy_spec.rb801spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb802spec/services/pod_logs/base_service_spec.rb803spec/graphql/resolvers/users/groups_resolver_spec.rb804spec/services/packages/rubygems/metadata_extraction_service_spec.rb805spec/graphql/types/tree/type_enum_spec.rb806spec/routing/environments_spec.rb807spec/services/packages/generic/find_or_create_package_service_spec.rb808spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb809spec/views/groups/_home_panel.html.haml_spec.rb810spec/lib/gitlab/etag_caching/router_spec.rb811spec/support_specs/graphql/arguments_spec.rb812spec/services/projects/fetch_statistics_increment_service_spec.rb813spec/lib/gitlab/container_repository/tags/cache_spec.rb814spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb815spec/services/ci/compare_codequality_reports_service_spec.rb816spec/views/help/index.html.haml_spec.rb817spec/workers/bulk_imports/pipeline_worker_spec.rb818spec/lib/gitlab/config/entry/composable_array_spec.rb819spec/lib/gitlab/avatar_cache_spec.rb820spec/services/boards/destroy_service_spec.rb821spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb822spec/models/data_list_spec.rb823spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb824spec/serializers/merge_request_for_pipeline_entity_spec.rb825spec/initializers/settings_spec.rb826spec/lib/bitbucket_server/page_spec.rb827spec/services/jira_connect/sync_service_spec.rb828spec/lib/gitlab/fogbugz_import/project_creator_spec.rb829spec/models/bulk_imports/configuration_spec.rb830spec/serializers/merge_request_sidebar_extras_entity_spec.rb831spec/lib/gitlab/ci/config/entry/release/assets_spec.rb832spec/models/term_agreement_spec.rb833spec/lib/gitlab/database/type/json_pg_safe_spec.rb834spec/views/shared/milestones/_top.html.haml_spec.rb835spec/serializers/merge_request_sidebar_basic_entity_spec.rb836spec/lib/api/entities/deploy_keys_project_spec.rb837spec/experiments/force_company_trial_experiment_spec.rb838spec/models/project_tracing_setting_spec.rb839spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb840spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb841spec/finders/applications_finder_spec.rb842spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb843spec/services/product_analytics/build_activity_graph_service_spec.rb844spec/models/instance_metadata/kas_spec.rb845spec/finders/bulk_imports/imports_finder_spec.rb846spec/lib/gitlab/external_authorization/cache_spec.rb847spec/lib/gitlab/ci/artifacts/metrics_spec.rb848spec/lib/gitlab/middleware/compressed_json_spec.rb849spec/lib/api/entities/basic_project_details_spec.rb850spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb851spec/lib/api/validations/validators/untrusted_regexp_spec.rbKnapsack report generator started!852DEPRECATION 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)853DEPRECATION 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)854DEPRECATION 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)855Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}856==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.044591948 seconds...857Test environment set up in 0.586670266 seconds858MergeRequests::UpdateService859 execute860 valid params861 matches base expectations862 executes hooks with update action863 creates a resource label event864 creates system note about title change865 creates system note about description change866 creates system note about branch change867 creates system note about discussion lock868 usage counters869 update as expected870 tracks Draft marking871 tracks Draft un-marking872 tracks time estimate and spend time changes873 tracks milestone change874 track labels change875 when MR is locked876 when locked again877 does not track discussion locking878 when unlocked879 tracks dicussion unlocking880 when MR is unlocked881 when unlocked again882 does not track discussion unlocking883 when locked884 tracks dicussion locking885 reviewers886 when reviewers changed887 tracks reviewers changed event888 updates attention requested by of reviewer889 when reviewers did not change890 does not track reviewers changed event891 updating milestone892 when milestone_id param893 behaves like updates milestone894 sets milestone895 when milestone param896 behaves like updates milestone897 sets milestone898 milestone counters cache reset899 deletes milestone counters900 deletes milestone counters when the milestone is removed901 deletes milestone counters when the milestone was not set902 with reviewers903 creates system note about merge_request review request904 updates the tracking905 when current user cannot admin issues in the project906 filters out params that cannot be set without the :admin_merge_request permission907 updating milestone908 when milestone_id param909 behaves like does not update milestone910 sets milestone911 when milestone param912 behaves like does not update milestone913 sets milestone914 when not including source branch removal options915 maintains the original options916 behaves like reviewer_ids filter917 filter_reviewer918 without reviewer_ids919 contains no reviewer_ids920 with reviewer_ids921 when the current user can admin the merge_request922 when merge_request_reviewer feature is enabled923 with a reviewer who can read the merge_request924 contains reviewers who can read the merge_request925 when merge_request_reviewer feature is disabled926 contains no reviewers927 when the current_user cannot admin the merge_request928 contains no reviewers929 with an existing reviewer930 when merge_request_reviewer feature is enabled931 removes reviewers932 after_save callback to store_mentions933 when mentionable attributes change934 saves mentions935 when mentionable attributes do not change936 does not call store_mentions937 when save fails938 does not call store_mentions939 merge940 behaves like correct merge behavior941 without pipeline942 merges the MR943 with finished pipeline944 merges the MR945 with active pipeline946 is expected to receive execute(#<MergeRequest id:45 group42/project47!1>) 1 time947 with a non-authorised user948 does not merge the MR949 MR can not be merged when note sha != MR sha950 is expected to eq "opened"951 todos952 when the title change953 calls MergeRequest::ResolveTodosService#async_execute954 does not create any new todos955 when the description change956 calls MergeRequest::ResolveTodosService#async_execute957 creates only 1 new todo958 when is reassigned959 calls MergeRequest::ResolveTodosService#async_execute960 when reviewers gets changed961 calls MergeRequest::ResolveTodosService#async_execute962 creates a pending todo for new review request963 sends email reviewer change notifications to old and new reviewers964 updates open merge request counter for reviewers965 when the milestone is removed966 sends notifications for subscribers of changed milestone967 when the milestone is changed968 calls MergeRequests::ResolveTodosService#async_execute969 sends notifications for subscribers of changed milestone970 when the labels change971 calls MergeRequests::ResolveTodosService#async_execute972 updates updated_at973 when the assignee changes974 updates open merge request counter for assignees when merge request is reassigned975 when the target branch change976 calls MergeRequests::ResolveTodosService#async_execute977 does not try to mark as unchecked if it's already unchecked978 when auto merge is enabled and target branch changed979 calls MergeRequests::ResolveTodosService#async_execute980 when the draft status is changed981 removing draft status982 sends notifications for subscribers983 adding draft status984 does not send notifications985 when the merge request is relabeled986 sends notifications for subscribers of newly added labels987 when issue has the `label` label988 does not send notifications for existing labels989 does not send notifications for removed labels990 updating mentions991 when mentioning a different user992 in title993 emails only the newly-mentioned user994 in description995 emails only the newly-mentioned user996 when mentioning a user and a group with access to997 when group is public998 behaves like updating attribute with allowed mentions999 emails group members1000 behaves like updating attribute with allowed mentions1001 emails group members1002 behaves like updating attribute with existing group mention1003 creates todos for only newly mentioned users1004 behaves like updating attribute with existing group mention1005 creates todos for only newly mentioned users1006 when the group is private1007 behaves like updating attribute with allowed mentions1008 emails group members1009 behaves like updating attribute with allowed mentions1010 emails group members1011 behaves like updating attribute with existing group mention1012 creates todos for only newly mentioned users1013 behaves like updating attribute with existing group mention1014 creates todos for only newly mentioned users1015 when mentioning a user and a group without access to1016 when the group is private1017 behaves like updating attribute with not allowed mentions1018 emails mentioned user1019 behaves like updating attribute with not allowed mentions1020 emails mentioned user1021 when MergeRequest has tasks1022 is expected to eq true1023 behaves like updating a single task1024 usage counters1025 update as expected1026 when a task is marked as completed1027 creates system note about task status change1028 when a task is marked as incomplete1029 creates system note about task status change1030 when the task position has been modified1031 raises an exception1032 when the content changes but not task line number1033 creates system note about task status change1034 when tasks are marked as completed1035 creates system note about task status change1036 when tasks are marked as incomplete1037 creates system note about task status change1038 while saving references to issues that the updated merge request closes1039 creates a `MergeRequestsClosingIssues` record for each issue1040 removes `MergeRequestsClosingIssues` records when issues are not closed anymore1041 updating asssignee_ids1042 does not update assignee when assignee_id is invalid1043 unassigns assignee when user id is 01044 saves assignee when user id is valid1045 does not update assignee_id when user cannot read issue1046 :use_specialized_service1047 when true1048 passes the update action to ::MergeRequests::UpdateAssigneesService1049 when false or nil1050 does not pass the update action to ::MergeRequests::UpdateAssigneesService when false1051 does not pass the update action to ::MergeRequests::UpdateAssigneesService when nil1052 when issuable feature is private1053 does not update with unauthorized assignee when project is Internal1054 does not update with unauthorized assignee when project is Public1055 when adding time spent1056 :use_specialized_service1057 when true1058 passes the update action to ::MergeRequests::AddSpentTimeService1059 when false or nil1060 does not pass the update action to ::MergeRequests::UpdateAssigneesService when false1061 does not pass the update action to ::MergeRequests::UpdateAssigneesService when nil1062 changing state1063 to reopened1064 executes hooks only once1065 to closed1066 executes hooks only once1067 setting `allow_collaboration`1068 does not allow a maintainer of the target project to set `allow_collaboration`1069 is allowed by a user that can push to the source and can update the merge request1070 updating `force_remove_source_branch`1071 cannot be done by members of the target project when they don't have access1072 can be done by members of the target project if they can push to the source project1073 updating `target_branch`1074 updates to master1075 updates to master because of branch deletion1076 behaves like issuable record that supports quick actions1077 with labels in command only1078 attaches labels to issuable1079 with labels in params and command1080 attaches all labels to issuable1081 with assignee and milestone in command only1082 assigns and sets milestone to issuable1083 labels are updated1084 behaves like keeps issuable labels sorted after update1085 when label is changed1086 keeps the labels sorted by title ASC1087 behaves like broadcasting issuable labels updates1088 when label is added1089 triggers the GraphQL subscription1090 when label is removed1091 triggers the GraphQL subscription1092 when label is unchanged1093 does not trigger the GraphQL subscription1094Auth::ContainerRegistryAuthenticationService1095 behaves like a container registry auth service1096 .full_access_token1097 behaves like an accessible1098 has the correct scope1099 behaves like a valid token1100 is expected to include :token1101 is expected to include "access"1102 a expirable1103 for default configuration1104 is expected not to be within 2 of 2022-04-28 17:09:37.751014033 +00001105 for changed configuration1106 is expected to be within 2 of 2022-04-28 17:09:37.821206900 +00001107 behaves like not a container repository factory1108 does not create a new container repository resource1109 .import_access_token1110 has the correct scope1111 behaves like a valid token1112 is expected to include :token1113 is expected to include "access"1114 a expirable1115 for default configuration1116 is expected not to be within 2 of 2022-04-28 17:09:38.142792736 +00001117 for changed configuration1118 is expected to be within 2 of 2022-04-28 17:09:38.211844544 +00001119 behaves like not a container repository factory1120 does not create a new container repository resource1121 .pull_access_token1122 behaves like an accessible1123 has the correct scope1124 behaves like a valid token1125 is expected to include :token1126 is expected to include "access"1127 a expirable1128 for default configuration1129 is expected not to be within 2 of 2022-04-28 17:09:38.863187777 +00001130 for changed configuration1131 is expected to be within 2 of 2022-04-28 17:09:38.944164124 +00001132 behaves like not a container repository factory1133 does not create a new container repository resource1134 .pull_nested_repositories_access_token1135 has the correct scope1136 behaves like a valid token1137 is expected to include :token1138 is expected to include "access"1139 a expirable1140 for default configuration1141 is expected not to be within 2 of 2022-04-28 17:09:39.523403390 +00001142 for changed configuration1143 is expected to be within 2 of 2022-04-28 17:09:39.600413637 +00001144 behaves like not a container repository factory1145 does not create a new container repository resource1146 with path ending with a slash1147 has the correct scope1148 behaves like a valid token1149 is expected to include :token1150 is expected to include "access"1151 a expirable1152 for default configuration1153 is expected not to be within 2 of 2022-04-28 17:09:39.916259704 +00001154 for changed configuration1155 is expected to be within 2 of 2022-04-28 17:09:39.990506621 +00001156 behaves like not a container repository factory1157 does not create a new container repository resource1158 user authorization1159 for registry catalog1160 disallow browsing for users without GitLab admin rights1161 behaves like an inaccessible1162 is expected to include {"access" => []}1163 behaves like a valid token1164 is expected to include :token1165 is expected to include "access"1166 a expirable1167 for default configuration1168 is expected not to be within 2 of 2022-04-28 17:09:40.375807715 +00001169 for changed configuration1170 is expected to be within 2 of 2022-04-28 17:09:40.424042373 +00001171 behaves like not a container repository factory1172 does not create a new container repository resource1173 for private project1174 behaves like private project1175 allow to use scope-less authentication1176 behaves like a valid token1177 is expected to include :token1178 is expected to include "access"1179 a expirable1180 for default configuration1181 is expected not to be within 2 of 2022-04-28 17:09:40.861510315 +00001182 for changed configuration1183 is expected to be within 2 of 2022-04-28 17:09:40.906741463 +00001184 allow developer to push images1185 behaves like a pushable1186 behaves like an accessible1187 has the correct scope1188 behaves like a valid token1189 is expected to include :token1190 is expected to include "access"1191 a expirable1192 for default configuration1193 is expected not to be within 2 of 2022-04-28 17:09:41.404547723 +00001194 for changed configuration1195 is expected to be within 2 of 2022-04-28 17:09:41.496907799 +00001196 behaves like container repository factory1197 creates a new container repository resource1198 disallow developer to delete images1199 behaves like an inaccessible1200 is expected to include {"access" => []}1201 behaves like a valid token1202 is expected to include :token1203 is expected to include "access"1204 a expirable1205 for default configuration1206 is expected not to be within 2 of 2022-04-28 17:09:42.044443457 +00001207 for changed configuration1208 is expected to be within 2 of 2022-04-28 17:09:42.184270651 +00001209 behaves like not a container repository factory1210 does not create a new container repository resource1211 behaves like logs an auth warning1212 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ect_path=>"namespace129/project133", :scope_type=>"repository", :user_id=>758, :username=>"user630"}) 1 time1213 disallow developer to delete images since registry 2.71214 behaves like an inaccessible1215 is expected to include {"access" => []}1216 behaves like a valid token1217 is expected to include :token1218 is expected to include "access"1219 a expirable1220 for default configuration1221 is expected not to be within 2 of 2022-04-28 17:09:42.880727012 +00001222 for changed configuration1223 is expected to be within 2 of 2022-04-28 17:09:42.976814128 +00001224 behaves like not a container repository factory1225 does not create a new container repository resource1226 allow reporter to pull images1227 when pulling from root level repository1228 behaves like a pullable1229 behaves like an accessible1230 has the correct scope1231 behaves like a valid token1232 is expected to include :token1233 is expected to include "access"1234 a expirable1235 for default configuration1236 is expected not to be within 2 of 2022-04-28 17:09:43.610161613 +00001237 for changed configuration1238 is expected to be within 2 of 2022-04-28 17:09:43.726825518 +00001239 behaves like not a container repository factory1240 does not create a new container repository resource1241 disallow reporter to delete images1242 behaves like an inaccessible1243 is expected to include {"access" => []}1244 behaves like a valid token1245 is expected to include :token1246 is expected to include "access"1247 a expirable1248 for default configuration1249 is expected not to be within 2 of 2022-04-28 17:09:44.441292588 +00001250 for changed configuration1251 is expected to be within 2 of 2022-04-28 17:09:44.574668633 +00001252 behaves like not a container repository factory1253 does not create a new container repository resource1254 disallow reporter to delete images since registry 2.71255 behaves like an inaccessible1256 is expected to include {"access" => []}1257 behaves like a valid token1258 is expected to include :token1259 is expected to include "access"1260 a expirable1261 for default configuration1262 is expected not to be within 2 of 2022-04-28 17:09:45.313413913 +00001263 for changed configuration1264 is expected to be within 2 of 2022-04-28 17:09:45.442748747 +00001265 behaves like not a container repository factory1266 does not create a new container repository resource1267 return a least of privileges1268 behaves like a pullable1269 behaves like an accessible1270 has the correct scope1271 behaves like a valid token1272 is expected to include :token1273 is expected to include "access"1274 a expirable1275 for default configuration1276 is expected not to be within 2 of 2022-04-28 17:09:46.210001886 +00001277 for changed configuration1278 is expected to be within 2 of 2022-04-28 17:09:46.345679210 +00001279 behaves like not a container repository factory1280 does not create a new container repository resource1281 disallow guest to pull or push images1282 behaves like an inaccessible1283 is expected to include {"access" => []}1284 behaves like a valid token1285 is expected to include :token1286 is expected to include "access"1287 a expirable1288 for default configuration1289 is expected not to be within 2 of 2022-04-28 17:09:47.253775613 +00001290 for changed configuration1291 is expected to be within 2 of 2022-04-28 17:09:47.407687797 +00001292 behaves like not a container repository factory1293 does not create a new container repository resource1294 disallow guest to delete images1295 behaves like an inaccessible1296 is expected to include {"access" => []}1297 behaves like a valid token1298 is expected to include :token1299 is expected to include "access"1300 a expirable1301 for default configuration1302 is expected not to be within 2 of 2022-04-28 17:09:48.121482268 +00001303 for changed configuration1304 is expected to be within 2 of 2022-04-28 17:09:48.260798002 +00001305 behaves like not a container repository factory1306 does not create a new container repository resource1307 disallow guest to delete images since registry 2.71308 behaves like an inaccessible1309 is expected to include {"access" => []}1310 behaves like a valid token1311 is expected to include :token1312 is expected to include "access"1313 a expirable1314 for default configuration1315 is expected not to be within 2 of 2022-04-28 17:09:49.027582181 +00001316 for changed configuration1317 is expected to be within 2 of 2022-04-28 17:09:49.164890305 +00001318 behaves like not a container repository factory1319 does not create a new container repository resource1320 for public project with private container registry1321 behaves like private project1322 allow to use scope-less authentication1323 behaves like a valid token1324 is expected to include :token1325 is expected to include "access"1326 a expirable1327 for default configuration1328 is expected not to be within 2 of 2022-04-28 17:09:49.757781231 +00001329 for changed configuration1330 is expected to be within 2 of 2022-04-28 17:09:49.804785519 +00001331 allow developer to push images1332 behaves like a pushable1333 behaves like an accessible1334 has the correct scope1335 behaves like a valid token1336 is expected to include :token1337 is expected to include "access"1338 a expirable1339 for default configuration1340 is expected not to be within 2 of 2022-04-28 17:09:50.265050510 +00001341 for changed configuration1342 is expected to be within 2 of 2022-04-28 17:09:50.370842496 +00001343 behaves like container repository factory1344 creates a new container repository resource1345 disallow developer to delete images1346 behaves like an inaccessible1347 is expected to include {"access" => []}1348 behaves like a valid token1349 is expected to include :token1350 is expected to include "access"1351 a expirable1352 for default configuration1353 is expected not to be within 2 of 2022-04-28 17:09:50.921614343 +00001354 for changed configuration1355 is expected to be within 2 of 2022-04-28 17:09:51.017004959 +00001356 behaves like not a container repository factory1357 does not create a new container repository resource1358 behaves like logs an auth warning1359 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ect_path=>"namespace130/project134", :scope_type=>"repository", :user_id=>758, :username=>"user630"}) 1 time1360 disallow developer to delete images since registry 2.71361 behaves like an inaccessible1362 is expected to include {"access" => []}1363 behaves like a valid token1364 is expected to include :token1365 is expected to include "access"1366 a expirable1367 for default configuration1368 is expected not to be within 2 of 2022-04-28 17:09:51.993966299 +00001369 for changed configuration1370 is expected to be within 2 of 2022-04-28 17:09:52.140411463 +00001371 behaves like not a container repository factory1372 does not create a new container repository resource1373 allow reporter to pull images1374 when pulling from root level repository1375 behaves like a pullable1376 behaves like an accessible1377 has the correct scope1378 behaves like a valid token1379 is expected to include :token1380 is expected to include "access"1381 a expirable1382 for default configuration1383 is expected not to be within 2 of 2022-04-28 17:09:52.835249085 +00001384 for changed configuration1385 is expected to be within 2 of 2022-04-28 17:09:52.959003340 +00001386 behaves like not a container repository factory1387 does not create a new container repository resource1388 disallow reporter to delete images1389 behaves like an inaccessible1390 is expected to include {"access" => []}1391 behaves like a valid token1392 is expected to include :token1393 is expected to include "access"1394 a expirable1395 for default configuration1396 is expected not to be within 2 of 2022-04-28 17:09:53.708690749 +00001397 for changed configuration1398 is expected to be within 2 of 2022-04-28 17:09:53.845064374 +00001399 behaves like not a container repository factory1400 does not create a new container repository resource1401 disallow reporter to delete images since registry 2.71402 behaves like an inaccessible1403 is expected to include {"access" => []}1404 behaves like a valid token1405 is expected to include :token1406 is expected to include "access"1407 a expirable1408 for default configuration1409 is expected not to be within 2 of 2022-04-28 17:09:54.583969233 +00001410 for changed configuration1411 is expected to be within 2 of 2022-04-28 17:09:54.672719760 +00001412 behaves like not a container repository factory1413 does not create a new container repository resource1414 return a least of privileges1415 behaves like a pullable1416 behaves like an accessible1417 has the correct scope1418 behaves like a valid token1419 is expected to include :token1420 is expected to include "access"1421 a expirable1422 for default configuration1423 is expected not to be within 2 of 2022-04-28 17:09:55.221976737 +00001424 for changed configuration1425 is expected to be within 2 of 2022-04-28 17:09:55.323983633 +00001426 behaves like not a container repository factory1427 does not create a new container repository resource1428 disallow guest to pull or push images1429 behaves like an inaccessible1430 is expected to include {"access" => []}1431 behaves like a valid token1432 is expected to include :token1433 is expected to include "access"1434 a expirable1435 for default configuration1436 is expected not to be within 2 of 2022-04-28 17:09:55.861892241 +00001437 for changed configuration1438 is expected to be within 2 of 2022-04-28 17:09:55.953594917 +00001439 behaves like not a container repository factory1440 does not create a new container repository resource1441 disallow guest to delete images1442 behaves like an inaccessible1443 is expected to include {"access" => []}1444 behaves like a valid token1445 is expected to include :token1446 is expected to include "access"1447 a expirable1448 for default configuration1449 is expected not to be within 2 of 2022-04-28 17:09:56.612322110 +00001450 for changed configuration1451 is expected to be within 2 of 2022-04-28 17:09:56.816683812 +00001452 behaves like not a container repository factory1453 does not create a new container repository resource1454 disallow guest to delete images since registry 2.71455 behaves like an inaccessible1456 is expected to include {"access" => []}1457 behaves like a valid token1458 is expected to include :token1459 is expected to include "access"1460 a expirable1461 for default configuration1462 is expected not to be within 2 of 2022-04-28 17:09:57.484601474 +00001463 for changed configuration1464 is expected to be within 2 of 2022-04-28 17:09:57.604301390 +00001465 behaves like not a container repository factory1466 does not create a new container repository resource1467 for public project with container_registry `enabled`1468 allow anyone to pull images1469 behaves like a pullable1470 behaves like an accessible1471 has the correct scope1472 behaves like a valid token1473 is expected to include :token1474 is expected to include "access"1475 a expirable1476 for default configuration1477 is expected not to be within 2 of 2022-04-28 17:09:58.426911726 +00001478 for changed configuration1479 is expected to be within 2 of 2022-04-28 17:09:58.533268312 +00001480 behaves like not a container repository factory1481 does not create a new container repository resource1482 disallow anyone to push images1483 behaves like an inaccessible1484 is expected to include {"access" => []}1485 behaves like a valid token1486 is expected to include :token1487 is expected to include "access"1488 a expirable1489 for default configuration1490 is expected not to be within 2 of 2022-04-28 17:09:59.065643820 +00001491 for changed configuration1492 is expected to be within 2 of 2022-04-28 17:09:59.182143405 +00001493 behaves like not a container repository factory1494 does not create a new container repository resource1495 disallow anyone to delete images1496 behaves like an inaccessible1497 is expected to include {"access" => []}1498 behaves like a valid token1499 is expected to include :token1500 is expected to include "access"1501 a expirable1502 for default configuration1503 is expected not to be within 2 of 2022-04-28 17:09:59.727892643 +00001504 for changed configuration1505 is expected to be within 2 of 2022-04-28 17:09:59.845254098 +00001506 behaves like not a container repository factory1507 does not create a new container repository resource1508 disallow anyone to delete images since registry 2.71509 behaves like an inaccessible1510 is expected to include {"access" => []}1511 behaves like a valid token1512 is expected to include :token1513 is expected to include "access"1514 a expirable1515 for default configuration1516 is expected not to be within 2 of 2022-04-28 17:10:00.412030695 +00001517 for changed configuration1518 is expected to be within 2 of 2022-04-28 17:10:00.523874940 +00001519 behaves like not a container repository factory1520 does not create a new container repository resource1521 when repository name is invalid1522 behaves like an inaccessible1523 is expected to include {"access" => []}1524 behaves like a valid token1525 is expected to include :token1526 is expected to include "access"1527 a expirable1528 for default configuration1529 is expected not to be within 2 of 2022-04-28 17:10:00.872936296 +00001530 for changed configuration1531 is expected to be within 2 of 2022-04-28 17:10:00.942913703 +00001532 behaves like not a container repository factory1533 does not create a new container repository resource1534 for internal project with container_registry `enabled`1535 for internal user1536 allow anyone to pull images1537 behaves like a pullable1538 behaves like an accessible1539 has the correct scope1540 behaves like a valid token1541 is expected to include :token1542 is expected to include "access"1543 a expirable1544 for default configuration1545 is expected not to be within 2 of 2022-04-28 17:10:01.599088996 +00001546 for changed configuration1547 is expected to be within 2 of 2022-04-28 17:10:01.675103073 +00001548 behaves like not a container repository factory1549 does not create a new container repository resource1550 disallow anyone to push images1551 behaves like an inaccessible1552 is expected to include {"access" => []}1553 behaves like a valid token1554 is expected to include :token1555 is expected to include "access"1556 a expirable1557 for default configuration1558 is expected not to be within 2 of 2022-04-28 17:10:02.205727721 +00001559 for changed configuration1560 is expected to be within 2 of 2022-04-28 17:10:02.328168096 +00001561 behaves like not a container repository factory1562 does not create a new container repository resource1563 disallow anyone to delete images1564 behaves like an inaccessible1565 is expected to include {"access" => []}1566 behaves like a valid token1567 is expected to include :token1568 is expected to include "access"1569 a expirable1570 for default configuration1571 is expected not to be within 2 of 2022-04-28 17:10:02.916851902 +00001572 for changed configuration1573 is expected to be within 2 of 2022-04-28 17:10:03.040260867 +00001574 behaves like not a container repository factory1575 does not create a new container repository resource1576 disallow anyone to delete images since registry 2.71577 behaves like an inaccessible1578 is expected to include {"access" => []}1579 behaves like a valid token1580 is expected to include :token1581 is expected to include "access"1582 a expirable1583 for default configuration1584 is expected not to be within 2 of 2022-04-28 17:10:03.609042234 +00001585 for changed configuration1586 is expected to be within 2 of 2022-04-28 17:10:03.725796549 +00001587 behaves like not a container repository factory1588 does not create a new container repository resource1589 for external user1590 disallow anyone to pull or push images1591 behaves like an inaccessible1592 is expected to include {"access" => []}1593 behaves like a valid token1594 is expected to include :token1595 is expected to include "access"1596 a expirable1597 for default configuration1598 is expected not to be within 2 of 2022-04-28 17:10:04.423413410 +00001599 for changed configuration1600 is expected to be within 2 of 2022-04-28 17:10:04.551599435 +00001601 behaves like not a container repository factory1602 does not create a new container repository resource1603 disallow anyone to delete images1604 behaves like an inaccessible1605 is expected to include {"access" => []}1606 behaves like a valid token1607 is expected to include :token1608 is expected to include "access"1609 a expirable1610 for default configuration1611 is expected not to be within 2 of 2022-04-28 17:10:05.123408602 +00001612 for changed configuration1613 is expected to be within 2 of 2022-04-28 17:10:05.201235779 +00001614 behaves like not a container repository factory1615 does not create a new container repository resource1616 disallow anyone to delete images since registry 2.71617 behaves like an inaccessible1618 is expected to include {"access" => []}1619 behaves like a valid token1620 is expected to include :token1621 is expected to include "access"1622 a expirable1623 for default configuration1624 is expected not to be within 2 of 2022-04-28 17:10:05.791956345 +00001625 for changed configuration1626 is expected to be within 2 of 2022-04-28 17:10:05.907827550 +00001627 behaves like not a container repository factory1628 does not create a new container repository resource1629 for internal project with private container registry1630 behaves like private project1631 allow to use scope-less authentication1632 behaves like a valid token1633 is expected to include :token1634 is expected to include "access"1635 a expirable1636 for default configuration1637 is expected not to be within 2 of 2022-04-28 17:10:06.363690651 +00001638 for changed configuration1639 is expected to be within 2 of 2022-04-28 17:10:06.410764159 +00001640 allow developer to push images1641 behaves like a pushable1642 behaves like an accessible1643 has the correct scope1644 behaves like a valid token1645 is expected to include :token1646 is expected to include "access"1647 a expirable1648 for default configuration1649 is expected not to be within 2 of 2022-04-28 17:10:06.911722449 +00001650 for changed configuration1651 is expected to be within 2 of 2022-04-28 17:10:07.090633261 +00001652 behaves like container repository factory1653 creates a new container repository resource1654 disallow developer to delete images1655 behaves like an inaccessible1656 is expected to include {"access" => []}1657 behaves like a valid token1658 is expected to include :token1659 is expected to include "access"1660 a expirable1661 for default configuration1662 is expected not to be within 2 of 2022-04-28 17:10:07.613504480 +00001663 for changed configuration1664 is expected to be within 2 of 2022-04-28 17:10:07.721448046 +00001665 behaves like not a container repository factory1666 does not create a new container repository resource1667 behaves like logs an auth warning1668 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ect_path=>"namespace133/project137", :scope_type=>"repository", :user_id=>758, :username=>"user630"}) 1 time1669 disallow developer to delete images since registry 2.71670 behaves like an inaccessible1671 is expected to include {"access" => []}1672 behaves like a valid token1673 is expected to include :token1674 is expected to include "access"1675 a expirable1676 for default configuration1677 is expected not to be within 2 of 2022-04-28 17:10:08.356624820 +00001678 for changed configuration1679 is expected to be within 2 of 2022-04-28 17:10:08.455157796 +00001680 behaves like not a container repository factory1681 does not create a new container repository resource1682 allow reporter to pull images1683 when pulling from root level repository1684 behaves like a pullable1685 behaves like an accessible1686 has the correct scope1687 behaves like a valid token1688 is expected to include :token1689 is expected to include "access"1690 a expirable1691 for default configuration1692 is expected not to be within 2 of 2022-04-28 17:10:08.939167746 +00001693 for changed configuration1694 is expected to be within 2 of 2022-04-28 17:10:09.029950172 +00001695 behaves like not a container repository factory1696 does not create a new container repository resource1697 disallow reporter to delete images1698 behaves like an inaccessible1699 is expected to include {"access" => []}1700 behaves like a valid token1701 is expected to include :token1702 is expected to include "access"1703 a expirable1704 for default configuration1705 is expected not to be within 2 of 2022-04-28 17:10:09.562638120 +00001706 for changed configuration1707 is expected to be within 2 of 2022-04-28 17:10:09.657654966 +00001708 behaves like not a container repository factory1709 does not create a new container repository resource1710 disallow reporter to delete images since registry 2.71711 behaves like an inaccessible1712 is expected to include {"access" => []}1713 behaves like a valid token1714 is expected to include :token1715 is expected to include "access"1716 a expirable1717 for default configuration1718 is expected not to be within 2 of 2022-04-28 17:10:10.166676475 +00001719 for changed configuration1720 is expected to be within 2 of 2022-04-28 17:10:10.273435831 +00001721 behaves like not a container repository factory1722 does not create a new container repository resource1723 return a least of privileges1724 behaves like a pullable1725 behaves like an accessible1726 has the correct scope1727 behaves like a valid token1728 is expected to include :token1729 is expected to include "access"1730 a expirable1731 for default configuration1732 is expected not to be within 2 of 2022-04-28 17:10:11.090303957 +00001733 for changed configuration1734 is expected to be within 2 of 2022-04-28 17:10:11.252822921 +00001735 behaves like not a container repository factory1736 does not create a new container repository resource1737 disallow guest to pull or push images1738 behaves like an inaccessible1739 is expected to include {"access" => []}1740 behaves like a valid token1741 is expected to include :token1742 is expected to include "access"1743 a expirable1744 for default configuration1745 is expected not to be within 2 of 2022-04-28 17:10:12.129361245 +00001746 for changed configuration1747 is expected to be within 2 of 2022-04-28 17:10:12.228249341 +00001748 behaves like not a container repository factory1749 does not create a new container repository resource1750 disallow guest to delete images1751 behaves like an inaccessible1752 is expected to include {"access" => []}1753 behaves like a valid token1754 is expected to include :token1755 is expected to include "access"1756 a expirable1757 for default configuration1758 is expected not to be within 2 of 2022-04-28 17:10:12.742672960 +00001759 for changed configuration1760 is expected to be within 2 of 2022-04-28 17:10:12.830524637 +00001761 behaves like not a container repository factory1762 does not create a new container repository resource1763 disallow guest to delete images since registry 2.71764 behaves like an inaccessible1765 is expected to include {"access" => []}1766 behaves like a valid token1767 is expected to include :token1768 is expected to include "access"1769 a expirable1770 for default configuration1771 is expected not to be within 2 of 2022-04-28 17:10:13.317315176 +00001772 for changed configuration1773 is expected to be within 2 of 2022-04-28 17:10:13.398136023 +00001774 behaves like not a container repository factory1775 does not create a new container repository resource1776 delete authorized as maintainer1777 behaves like allowed to delete container repository images1778 behaves like a valid token1779 is expected to include :token1780 is expected to include "access"1781 a expirable1782 for default configuration1783 is expected not to be within 2 of 2022-04-28 17:10:14.026977787 +00001784 for changed configuration1785 is expected to be within 2 of 2022-04-28 17:10:14.094638155 +00001786 allow to delete images1787 behaves like a deletable1788 behaves like an accessible1789 has the correct scope1790 behaves like a valid token1791 is expected to include :token1792 is expected to include "access"1793 a expirable1794 for default configuration1795 is expected not to be within 2 of 2022-04-28 17:10:14.558393295 +00001796 for changed configuration1797 is expected to be within 2 of 2022-04-28 17:10:14.675536471 +00001798 allow to delete images since registry 2.71799 behaves like a deletable since registry 2.71800 behaves like an accessible1801 has the correct scope1802 behaves like a valid token1803 is expected to include :token1804 is expected to include "access"1805 a expirable1806 for default configuration1807 is expected not to be within 2 of 2022-04-28 17:10:15.138586852 +00001808 for changed configuration1809 is expected to be within 2 of 2022-04-28 17:10:15.256102147 +00001810 build authorized as user1811 allow to use offline_token1812 behaves like an authenticated1813 is expected to include :token1814 is expected to include "access"1815 behaves like a valid token1816 is expected to include :token1817 is expected to include "access"1818 a expirable1819 for default configuration1820 is expected not to be within 2 of 2022-04-28 17:10:15.904529680 +00001821 for changed configuration1822 is expected to be within 2 of 2022-04-28 17:10:15.956061709 +00001823 allow to pull and push images1824 behaves like a pullable and pushable1825 behaves like an accessible1826 has the correct scope1827 behaves like a valid token1828 is expected to include :token1829 is expected to include "access"1830 a expirable1831 for default configuration1832 is expected not to be within 2 of 2022-04-28 17:10:16.331023683 +00001833 for changed configuration1834 is expected to be within 2 of 2022-04-28 17:10:16.403870470 +00001835 behaves like container repository factory1836 creates a new container repository resource1837 allow to delete images since registry 2.71838 behaves like a deletable since registry 2.71839 behaves like an accessible1840 has the correct scope1841 behaves like a valid token1842 is expected to include :token1843 is expected to include "access"1844 a expirable1845 for default configuration1846 is expected not to be within 2 of 2022-04-28 17:10:16.720505177 +00001847 for changed configuration1848 is expected to be within 2 of 2022-04-28 17:10:16.781043675 +00001849 disallow to delete images1850 behaves like an inaccessible1851 is expected to include {"access" => []}1852 behaves like a valid token1853 is expected to include :token1854 is expected to include "access"1855 a expirable1856 for default configuration1857 is expected not to be within 2 of 2022-04-28 17:10:17.040009254 +00001858 for changed configuration1859 is expected to be within 2 of 2022-04-28 17:10:17.106019811 +00001860 for other projects1861 when pulling1862 allow for public1863 behaves like a pullable1864 behaves like an accessible1865 has the correct scope1866 behaves like a valid token1867 is expected to include :token1868 is expected to include "access"1869 a expirable1870 for default configuration1871 is expected not to be within 2 of 2022-04-28 17:10:17.601558411 +00001872 for changed configuration1873 is expected to be within 2 of 2022-04-28 17:10:17.676066248 +00001874 behaves like not a container repository factory1875 does not create a new container repository resource1876 for private1877 behaves like pullable for being team member1878 when you are not member1879 behaves like an inaccessible1880 is expected to include {"access" => []}1881 behaves like a valid token1882 is expected to include :token1883 is expected to include "access"1884 a expirable1885 for default configuration1886 is expected not to be within 2 of 2022-04-28 17:10:18.264582684 +00001887 for changed configuration1888 is expected to be within 2 of 2022-04-28 17:10:18.334886781 +00001889 behaves like not a container repository factory1890 does not create a new container repository resource1891 when you are member1892 behaves like a pullable1893 behaves like an accessible1894 has the correct scope1895 behaves like a valid token1896 is expected to include :token1897 is expected to include "access"1898 a expirable1899 for default configuration1900 is expected not to be within 2 of 2022-04-28 17:10:18.773738563 +00001901 for changed configuration1902 is expected to be within 2 of 2022-04-28 17:10:18.859455739 +00001903 behaves like not a container repository factory1904 does not create a new container repository resource1905 when you are owner1906 behaves like a pullable1907 behaves like an accessible1908 has the correct scope1909 behaves like a valid token1910 is expected to include :token1911 is expected to include "access"1912 a expirable1913 for default configuration1914 is expected not to be within 2 of 2022-04-28 17:10:19.654331887 +00001915 for changed configuration1916 is expected to be within 2 of 2022-04-28 17:10:19.770638842 +00001917 behaves like not a container repository factory1918 does not create a new container repository resource1919 when you are admin1920 when you are not member1921 behaves like an inaccessible1922 is expected to include {"access" => []}1923 behaves like a valid token1924 is expected to include :token1925 is expected to include "access"1926 a expirable1927 for default configuration1928 is expected not to be within 2 of 2022-04-28 17:10:20.408471846 +00001929 for changed configuration1930 is expected to be within 2 of 2022-04-28 17:10:20.519213422 +00001931 behaves like not a container repository factory1932 does not create a new container repository resource1933 when you are member1934 behaves like a pullable1935 behaves like an accessible1936 has the correct scope1937 behaves like a valid token1938 is expected to include :token1939 is expected to include "access"1940 a expirable1941 for default configuration1942 is expected not to be within 2 of 2022-04-28 17:10:21.271756471 +00001943 for changed configuration1944 is expected to be within 2 of 2022-04-28 17:10:21.398823935 +00001945 behaves like not a container repository factory1946 does not create a new container repository resource1947 when you are owner1948 behaves like a pullable1949 behaves like an accessible1950 has the correct scope1951 behaves like a valid token1952 is expected to include :token1953 is expected to include "access"1954 a expirable1955 for default configuration1956 is expected not to be within 2 of 2022-04-28 17:10:22.242567131 +00001957 for changed configuration1958 is expected to be within 2 of 2022-04-28 17:10:22.373509276 +00001959 behaves like not a container repository factory1960 does not create a new container repository resource1961 for public project with private container registry1962 behaves like pullable for being team member1963 when you are not member1964 behaves like an inaccessible1965 is expected to include {"access" => []}1966 behaves like a valid token1967 is expected to include :token1968 is expected to include "access"1969 a expirable1970 for default configuration1971 is expected not to be within 2 of 2022-04-28 17:10:23.213864001 +00001972 for changed configuration1973 is expected to be within 2 of 2022-04-28 17:10:23.345437226 +00001974 behaves like not a container repository factory1975 does not create a new container repository resource1976 when you are member1977 behaves like a pullable1978 behaves like an accessible1979 has the correct scope1980 behaves like a valid token1981 is expected to include :token1982 is expected to include "access"1983 a expirable1984 for default configuration1985 is expected not to be within 2 of 2022-04-28 17:10:24.309033096 +00001986 for changed configuration1987 is expected to be within 2 of 2022-04-28 17:10:24.522393748 +00001988 behaves like not a container repository factory1989 does not create a new container repository resource1990 when you are owner1991 behaves like a pullable1992 behaves like an accessible1993 has the correct scope1994 behaves like a valid token1995 is expected to include :token1996 is expected to include "access"1997 a expirable1998 for default configuration1999 is expected not to be within 2 of 2022-04-28 17:10:25.617399803 +00002000 for changed configuration2001 is expected to be within 2 of 2022-04-28 17:10:25.768140847 +00002002 behaves like not a container repository factory2003 does not create a new container repository resource2004 when you are admin2005 behaves like pullable for being team member2006 when you are not member2007 behaves like an inaccessible2008 is expected to include {"access" => []}2009 behaves like a valid token2010 is expected to include :token2011 is expected to include "access"2012 a expirable2013 for default configuration2014 is expected not to be within 2 of 2022-04-28 17:10:26.579503354 +00002015 for changed configuration2016 is expected to be within 2 of 2022-04-28 17:10:26.706133838 +00002017 behaves like not a container repository factory2018 does not create a new container repository resource2019 when you are member2020 behaves like a pullable2021 behaves like an accessible2022 has the correct scope2023 behaves like a valid token2024 is expected to include :token2025 is expected to include "access"2026 a expirable2027 for default configuration2028 is expected not to be within 2 of 2022-04-28 17:10:27.405781210 +00002029 for changed configuration2030 is expected to be within 2 of 2022-04-28 17:10:27.668686369 +00002031 behaves like not a container repository factory2032 does not create a new container repository resource2033 when you are owner2034 behaves like a pullable2035 behaves like an accessible2036 has the correct scope2037 behaves like a valid token2038 is expected to include :token2039 is expected to include "access"2040 a expirable2041 for default configuration2042 is expected not to be within 2 of 2022-04-28 17:10:28.225479666 +00002043 for changed configuration2044 is expected to be within 2 of 2022-04-28 17:10:28.312051603 +00002045 behaves like not a container repository factory2046 does not create a new container repository resource2047 when pushing2048 disallow for all2049 when you are member2050 behaves like an inaccessible2051 is expected to include {"access" => []}2052 behaves like a valid token2053 is expected to include :token2054 is expected to include "access"2055 a expirable2056 for default configuration2057 is expected not to be within 2 of 2022-04-28 17:10:28.962493136 +00002058 for changed configuration2059 is expected to be within 2 of 2022-04-28 17:10:29.035334733 +00002060 behaves like not a container repository factory2061 does not create a new container repository resource2062 when you are owner2063 behaves like an inaccessible2064 is expected to include {"access" => []}2065 behaves like a valid token2066 is expected to include :token2067 is expected to include "access"2068 a expirable2069 for default configuration2070 is expected not to be within 2 of 2022-04-28 17:10:29.537331342 +00002071 for changed configuration2072 is expected to be within 2 of 2022-04-28 17:10:29.610031270 +00002073 behaves like not a container repository factory2074 does not create a new container repository resource2075 for project without container registry2076 disallow when pulling2077 behaves like an inaccessible2078 is expected to include {"access" => []}2079 behaves like a valid token2080 is expected to include :token2081 is expected to include "access"2082 a expirable2083 for default configuration2084 is expected not to be within 2 of 2022-04-28 17:10:30.359313379 +00002085 for changed configuration2086 is expected to be within 2 of 2022-04-28 17:10:30.461987065 +00002087 behaves like not a container repository factory2088 does not create a new container repository resource2089 for project that disables repository2090 disallow when pulling2091 behaves like an inaccessible2092 is expected to include {"access" => []}2093 behaves like a valid token2094 is expected to include :token2095 is expected to include "access"2096 a expirable2097 for default configuration2098 is expected not to be within 2 of 2022-04-28 17:10:31.233116413 +00002099 for changed configuration2100 is expected to be within 2 of 2022-04-28 17:10:31.324447989 +00002101 behaves like not a container repository factory2102 does not create a new container repository resource2103 registry catalog browsing authorized as admin2104 behaves like a browsable2105 has the correct scope2106 behaves like a valid token2107 is expected to include :token2108 is expected to include "access"2109 a expirable2110 for default configuration2111 is expected not to be within 2 of 2022-04-28 17:10:31.912875515 +00002112 for changed configuration2113 is expected to be within 2 of 2022-04-28 17:10:31.962564033 +00002114 behaves like not a container repository factory2115 does not create a new container repository resource2116 support for multiple scopes2117 user has access to all projects2118 behaves like a browsable2119 has the correct scope2120 behaves like a valid token2121 is expected to include :token2122 is expected to include "access"2123 a expirable2124 for default configuration2125 is expected not to be within 2 of 2022-04-28 17:10:33.819569337 +00002126 for changed configuration2127 is expected to be within 2 of 2022-04-28 17:10:34.010341339 +00002128 behaves like not a container repository factory2129 does not create a new container repository resource2130 user only has access to internal and public projects2131 behaves like a browsable2132 has the correct scope2133 behaves like a valid token2134 is expected to include :token2135 is expected to include "access"2136 a expirable2137 for default configuration2138 is expected not to be within 2 of 2022-04-28 17:10:34.908158963 +00002139 for changed configuration2140 is expected to be within 2 of 2022-04-28 17:10:35.067948166 +00002141 behaves like not a container repository factory2142 does not create a new container repository resource2143 anonymous user has access only to public project2144 behaves like a browsable2145 has the correct scope2146 behaves like a valid token2147 is expected to include :token2148 is expected to include "access"2149 a expirable2150 for default configuration2151 is expected not to be within 2 of 2022-04-28 17:10:35.720757719 +00002152 for changed configuration2153 is expected to be within 2 of 2022-04-28 17:10:35.852632154 +00002154 behaves like not a container repository factory2155 does not create a new container repository resource2156 with no public container registry2157 behaves like a forbidden2158 is expected to include {:http_status => 403}2159 is expected not to include :token2160 unauthorized2161 disallow to use scope-less authentication2162 behaves like a forbidden2163 is expected to include {:http_status => 403}2164 is expected not to include :token2165 behaves like not a container repository factory2166 does not create a new container repository resource2167 for invalid scope2168 behaves like a forbidden2169 is expected to include {:http_status => 403}2170 is expected not to include :token2171 behaves like not a container repository factory2172 does not create a new container repository resource2173 for private project2174 behaves like a forbidden2175 is expected to include {:http_status => 403}2176 is expected not to include :token2177 for public project with container registry `enabled`2178 when pulling and pushing2179 behaves like a pullable2180 behaves like an accessible2181 has the correct scope2182 behaves like a valid token2183 is expected to include :token2184 is expected to include "access"2185 a expirable2186 for default configuration2187 is expected not to be within 2 of 2022-04-28 17:10:37.404056591 +00002188 for changed configuration2189 is expected to be within 2 of 2022-04-28 17:10:37.501464527 +00002190 behaves like not a container repository factory2191 does not create a new container repository resource2192 when pushing2193 behaves like a forbidden2194 is expected to include {:http_status => 403}2195 is expected not to include :token2196 behaves like not a container repository factory2197 does not create a new container repository resource2198 for public project with container registry `private`2199 when pulling and pushing2200 behaves like a forbidden2201 is expected to include {:http_status => 403}2202 is expected not to include :token2203 behaves like not a container repository factory2204 does not create a new container repository resource2205 for registry catalog2206 behaves like a forbidden2207 is expected to include {:http_status => 403}2208 is expected not to include :token2209 behaves like not a container repository factory2210 does not create a new container repository resource2211 for deploy tokens2212 when deploy token has read and write registry as scopes2213 for public project2214 when pulling2215 behaves like a pullable2216 behaves like an accessible2217 has the correct scope2218 behaves like a valid token2219 is expected to include :token2220 is expected to include "access"2221 a expirable2222 for default configuration2223 is expected not to be within 2 of 2022-04-28 17:10:39.308721773 +00002224 for changed configuration2225 is expected to be within 2 of 2022-04-28 17:10:39.462343906 +00002226 when pushing2227 behaves like a pushable2228 behaves like an accessible2229 has the correct scope2230 behaves like a valid token2231 is expected to include :token2232 is expected to include "access"2233 a expirable2234 for default configuration2235 is expected not to be within 2 of 2022-04-28 17:10:40.082926951 +00002236 for changed configuration2237 is expected to be within 2 of 2022-04-28 17:10:40.226629015 +00002238 behaves like able to login2239 registry provides read_container_image authentication_abilities2240 behaves like an authenticated2241 is expected to include :token2242 is expected to include "access"2243 for internal project2244 when pulling2245 behaves like a pullable2246 behaves like an accessible2247 has the correct scope2248 behaves like a valid token2249 is expected to include :token2250 is expected to include "access"2251 a expirable2252 for default configuration2253 is expected not to be within 2 of 2022-04-28 17:10:41.103459019 +00002254 for changed configuration2255 is expected to be within 2 of 2022-04-28 17:10:41.201137325 +00002256 when pushing2257 behaves like a pushable2258 behaves like an accessible2259 has the correct scope2260 behaves like a valid token2261 is expected to include :token2262 is expected to include "access"2263 a expirable2264 for default configuration2265 is expected not to be within 2 of 2022-04-28 17:10:41.689220225 +00002266 for changed configuration2267 is expected to be within 2 of 2022-04-28 17:10:41.816606380 +00002268 behaves like able to login2269 registry provides read_container_image authentication_abilities2270 behaves like an authenticated2271 is expected to include :token2272 is expected to include "access"2273 for private project2274 when pulling2275 behaves like a pullable2276 behaves like an accessible2277 has the correct scope2278 behaves like a valid token2279 is expected to include :token2280 is expected to include "access"2281 a expirable2282 for default configuration2283 is expected not to be within 2 of 2022-04-28 17:10:42.600398028 +00002284 for changed configuration2285 is expected to be within 2 of 2022-04-28 17:10:42.698178834 +00002286 when pushing2287 behaves like a pushable2288 behaves like an accessible2289 has the correct scope2290 behaves like a valid token2291 is expected to include :token2292 is expected to include "access"2293 a expirable2294 for default configuration2295 is expected not to be within 2 of 2022-04-28 17:10:43.147859416 +00002296 for changed configuration2297 is expected to be within 2 of 2022-04-28 17:10:43.295086579 +00002298 behaves like able to login2299 registry provides read_container_image authentication_abilities2300 behaves like an authenticated2301 is expected to include :token2302 is expected to include "access"2303 for public project with private container registry2304 when pulling2305 behaves like a pullable2306 behaves like an accessible2307 has the correct scope2308 behaves like a valid token2309 is expected to include :token2310 is expected to include "access"2311 a expirable2312 for default configuration2313 is expected not to be within 2 of 2022-04-28 17:10:44.503624660 +00002314 for changed configuration2315 is expected to be within 2 of 2022-04-28 17:10:44.702754322 +00002316 when pushing2317 behaves like a pushable2318 behaves like an accessible2319 has the correct scope2320 behaves like a valid token2321 is expected to include :token2322 is expected to include "access"2323 a expirable2324 for default configuration2325 is expected not to be within 2 of 2022-04-28 17:10:45.549210727 +00002326 for changed configuration2327 is expected to be within 2 of 2022-04-28 17:10:45.769105568 +00002328 behaves like able to login2329 registry provides read_container_image authentication_abilities2330 behaves like an authenticated2331 is expected to include :token2332 is expected to include "access"2333 when deploy token does not have read_registry scope2334 for public project with container registry `enabled`2335 when pulling2336 behaves like a pullable2337 behaves like an accessible2338 has the correct scope2339 behaves like a valid token2340 is expected to include :token2341 is expected to include "access"2342 a expirable2343 for default configuration2344 is expected not to be within 2 of 2022-04-28 17:10:47.222737519 +00002345 for changed configuration2346 is expected to be within 2 of 2022-04-28 17:10:47.411991691 +00002347 behaves like unable to login2348 registry provides no container authentication_abilities2349 behaves like a forbidden2350 is expected to include {:http_status => 403}2351 is expected not to include :token2352 registry provides inapplicable container authentication_abilities2353 behaves like a forbidden2354 is expected to include {:http_status => 403}2355 is expected not to include :token2356 for public project with container registry `private`2357 when pulling2358 behaves like an inaccessible2359 is expected to include {"access" => []}2360 behaves like a valid token2361 is expected to include :token2362 is expected to include "access"2363 a expirable2364 for default configuration2365 is expected not to be within 2 of 2022-04-28 17:10:48.656244940 +00002366 for changed configuration2367 is expected to be within 2 of 2022-04-28 17:10:48.788553414 +00002368 behaves like unable to login2369 registry provides no container authentication_abilities2370 behaves like a forbidden2371 is expected to include {:http_status => 403}2372 is expected not to include :token2373 registry provides inapplicable container authentication_abilities2374 behaves like a forbidden2375 is expected to include {:http_status => 403}2376 is expected not to include :token2377 for internal project2378 when pulling2379 behaves like an inaccessible2380 is expected to include {"access" => []}2381 behaves like a valid token2382 is expected to include :token2383 is expected to include "access"2384 a expirable2385 for default configuration2386 is expected not to be within 2 of 2022-04-28 17:10:49.905392569 +00002387 for changed configuration2388 is expected to be within 2 of 2022-04-28 17:10:50.057204253 +00002389 behaves like unable to login2390 registry provides no container authentication_abilities2391 behaves like a forbidden2392 is expected to include {:http_status => 403}2393 is expected not to include :token2394 registry provides inapplicable container authentication_abilities2395 behaves like a forbidden2396 is expected to include {:http_status => 403}2397 is expected not to include :token2398 for private project2399 when pulling2400 behaves like an inaccessible2401 is expected to include {"access" => []}2402 behaves like a valid token2403 is expected to include :token2404 is expected to include "access"2405 a expirable2406 for default configuration2407 is expected not to be within 2 of 2022-04-28 17:10:51.206991235 +00002408 for changed configuration2409 is expected to be within 2 of 2022-04-28 17:10:51.341361080 +00002410 when logging in2411 behaves like a forbidden2412 is expected to include {:http_status => 403}2413 is expected not to include :token2414 behaves like unable to login2415 registry provides no container authentication_abilities2416 behaves like a forbidden2417 is expected to include {:http_status => 403}2418 is expected not to include :token2419 registry provides inapplicable container authentication_abilities2420 behaves like a forbidden2421 is expected to include {:http_status => 403}2422 is expected not to include :token2423 when deploy token is not related to the project2424 for public project with container registry `enabled`2425 when pulling2426 behaves like a pullable2427 behaves like an accessible2428 has the correct scope2429 behaves like a valid token2430 is expected to include :token2431 is expected to include "access"2432 a expirable2433 for default configuration2434 is expected not to be within 2 of 2022-04-28 17:10:52.365026508 +00002435 for changed configuration2436 is expected to be within 2 of 2022-04-28 17:10:52.451988415 +00002437 for public project with container registry `private`2438 when pulling2439 behaves like an inaccessible2440 is expected to include {"access" => []}2441 behaves like a valid token2442 is expected to include :token2443 is expected to include "access"2444 a expirable2445 for default configuration2446 is expected not to be within 2 of 2022-04-28 17:10:53.161135286 +00002447 for changed configuration2448 is expected to be within 2 of 2022-04-28 17:10:53.244098912 +00002449 for internal project2450 when pulling2451 behaves like an inaccessible2452 is expected to include {"access" => []}2453 behaves like a valid token2454 is expected to include :token2455 is expected to include "access"2456 a expirable2457 for default configuration2458 is expected not to be within 2 of 2022-04-28 17:10:53.722442003 +00002459 for changed configuration2460 is expected to be within 2 of 2022-04-28 17:10:53.786232610 +00002461 for private project2462 when pulling2463 behaves like an inaccessible2464 is expected to include {"access" => []}2465 behaves like a valid token2466 is expected to include :token2467 is expected to include "access"2468 a expirable2469 for default configuration2470 is expected not to be within 2 of 2022-04-28 17:10:54.304348008 +00002471 for changed configuration2472 is expected to be within 2 of 2022-04-28 17:10:54.372263826 +00002473 when deploy token has been revoked2474 for public project with container registry `enabled`2475 behaves like a pullable2476 behaves like an accessible2477 has the correct scope2478 behaves like a valid token2479 is expected to include :token2480 is expected to include "access"2481 a expirable2482 for default configuration2483 is expected not to be within 2 of 2022-04-28 17:10:55.304108338 +00002484 for changed configuration2485 is expected to be within 2 of 2022-04-28 17:10:55.459361461 +00002486 for public project with container registry `private`2487 behaves like an inaccessible2488 is expected to include {"access" => []}2489 behaves like a valid token2490 is expected to include :token2491 is expected to include "access"2492 a expirable2493 for default configuration2494 is expected not to be within 2 of 2022-04-28 17:10:56.333353385 +00002495 for changed configuration2496 is expected to be within 2 of 2022-04-28 17:10:56.478757500 +00002497 for internal project2498 behaves like an inaccessible2499 is expected to include {"access" => []}2500 behaves like a valid token2501 is expected to include :token2502 is expected to include "access"2503 a expirable2504 for default configuration2505 is expected not to be within 2 of 2022-04-28 17:10:57.304977306 +00002506 for changed configuration2507 is expected to be within 2 of 2022-04-28 17:10:57.457401959 +00002508 for private project2509 behaves like an inaccessible2510 is expected to include {"access" => []}2511 behaves like a valid token2512 is expected to include :token2513 is expected to include "access"2514 a expirable2515 for default configuration2516 is expected not to be within 2 of 2022-04-28 17:10:58.356715633 +00002517 for changed configuration2518 is expected to be within 2 of 2022-04-28 17:10:58.509092596 +00002519 user authorization2520 with multiple scopes2521 allow developer to push images2522 behaves like a pushable2523 behaves like an accessible2524 has the correct scope2525 behaves like a valid token2526 is expected to include :token2527 is expected to include "access"2528 a expirable2529 for default configuration2530 is expected not to be within 2 of 2022-04-28 17:10:59.329707423 +00002531 for changed configuration2532 is expected to be within 2 of 2022-04-28 17:10:59.431237849 +00002533 behaves like container repository factory2534 creates a new container repository resource2535 when importing2536 push request2537 behaves like a forbidden2538 is expected to include {:http_status => 403}2539 is expected not to include :token2540 behaves like containing the import error2541 includes a helpful error message2542 delete request2543 behaves like a forbidden2544 is expected to include {:http_status => 403}2545 is expected not to include :token2546 behaves like containing the import error2547 includes a helpful error message2548 * request2549 behaves like a forbidden2550 is expected to include {:http_status => 403}2551 is expected not to include :token2552 behaves like containing the import error2553 includes a helpful error message2554 pull request2555 behaves like a pullable2556 behaves like an accessible2557 has the correct scope2558 behaves like a valid token2559 is expected to include :token2560 is expected to include "access"2561 a expirable2562 for default configuration2563 is expected not to be within 2 of 2022-04-28 17:11:02.651171327 +00002564 for changed configuration2565 is expected to be within 2 of 2022-04-28 17:11:02.886762277 +00002566 mixed request2567 behaves like a forbidden2568 is expected to include {:http_status => 403}2569 is expected not to include :token2570 behaves like containing the import error2571 includes a helpful error message2572Todos::Destroy::EntityLeaveService2573 #execute2574 updating a Project2575 when project is private2576 when user is not a member of the project2577 removes project todos for the provided user2578 access permissions2579 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos2580 behaves like using different access permissions2581 is expected not to change `Todo.count`2582 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_merge_request_todos2583 behaves like using different access permissions2584 is expected to contain exactly #<Todo id: 67, user_id: 810, project_id: 191, target_id: 15, target_type: "Issue", author_id: 829, ac...-28 17:01:11.769684513 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 64, user_id: 810, project_id: 187, target_id: 13, target_type: "Issue", author_id: 824, ac...28 17:01:10.305184733 +0000", note_id: nil, commit_id: nil, group_id: 1131, resolved_by_action: nil>2585 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos2586 behaves like using different access permissions2587 is expected not to change `Todo.count`2588 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_merge_request_todos2589 behaves like using different access permissions2590 is expected to contain exactly #<Todo id: 79, user_id: 810, project_id: 201, target_id: 23, target_type: "Issue", author_id: 841, ac...-28 17:01:17.403039295 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 76, user_id: 810, project_id: 197, target_id: 21, target_type: "Issue", author_id: 836, ac...28 17:01:15.588979477 +0000", note_id: nil, commit_id: nil, group_id: 1155, resolved_by_action: nil>2591 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos2592 behaves like using different access permissions2593 is expected not to change `Todo.count`2594 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_merge_request_todos2595 behaves like using different access permissions2596 is expected to contain exactly #<Todo id: 91, user_id: 810, project_id: 211, target_id: 31, target_type: "Issue", author_id: 853, ac...-28 17:01:23.578569027 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 88, user_id: 810, project_id: 207, target_id: 29, target_type: "Issue", author_id: 848, ac...28 17:01:21.877099256 +0000", note_id: nil, commit_id: nil, group_id: 1179, resolved_by_action: nil>2597 when project is private in an internal/public group2598 when user is not a member of the project2599 removes project todos for the provided user2600 access permissions2601 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos2602 behaves like using different access permissions2603 is expected not to change `Todo.count`2604 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_merge_request_todos2605 behaves like using different access permissions2606 is expected to contain exactly #<Todo id: 109, user_id: 810, project_id: 226, target_id: 43, target_type: "Issue", author_id: 871, a...-28 17:01:32.663251801 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 106, user_id: 810, project_id: 222, target_id: 41, target_type: "Issue", author_id: 866, a...28 17:01:30.798132309 +0000", note_id: nil, commit_id: nil, group_id: 1215, resolved_by_action: nil>2607 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos2608 behaves like using different access permissions2609 is expected not to change `Todo.count`2610 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_merge_request_todos2611 behaves like using different access permissions2612 is expected to contain exactly #<Todo id: 121, user_id: 810, project_id: 236, target_id: 51, target_type: "Issue", author_id: 883, a...-28 17:01:38.845311114 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 118, user_id: 810, project_id: 232, target_id: 49, target_type: "Issue", author_id: 878, a...28 17:01:37.097168275 +0000", note_id: nil, commit_id: nil, group_id: 1239, resolved_by_action: nil>2613 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos2614 behaves like using different access permissions2615 is expected not to change `Todo.count`2616 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_merge_request_todos2617 behaves like using different access permissions2618 is expected to contain exactly #<Todo id: 133, user_id: 810, project_id: 246, target_id: 59, target_type: "Issue", author_id: 895, a...-28 17:01:44.460981049 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 130, user_id: 810, project_id: 242, target_id: 57, target_type: "Issue", author_id: 890, a...28 17:01:42.989080174 +0000", note_id: nil, commit_id: nil, group_id: 1263, resolved_by_action: nil>2619 when project is not private2620 enqueues the PrivateFeaturesWorker2621 confidential issues2622 when a user is not an author of confidential issue2623 behaves like removes only confidential issues todos2624 is expected to change `Todo.count` from 6 to 52625 when a user is an author of confidential issue2626 behaves like does not remove any todos2627 is expected not to change `Todo.count`2628 when a user is an assignee of confidential issue2629 behaves like does not remove any todos2630 is expected not to change `Todo.count`2631 access permissions2632 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos2633 behaves like using different access permissions2634 is expected not to change `Todo.count`2635 group_access: nil, project_access: :guest, method_name: :removes_only_confidential_issues_todos2636 behaves like using different access permissions2637 is expected to change `Todo.count` from 6 to 52638 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos2639 behaves like using different access permissions2640 is expected not to change `Todo.count`2641 group_access: :guest, project_access: nil, method_name: :removes_only_confidential_issues_todos2642 behaves like using different access permissions2643 is expected to change `Todo.count` from 6 to 52644 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos2645 behaves like using different access permissions2646 is expected not to change `Todo.count`2647 group_access: :guest, project_access: :guest, method_name: :removes_only_confidential_issues_todos2648 behaves like using different access permissions2649 is expected to change `Todo.count` from 6 to 52650 feature visibility check2651 when issues are visible only to project members2652 removes only users issue todos2653 updating a Group2654 when group is private2655 when a user leaves a group2656 removes group and subproject todos for the user2657 access permissions2658 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos2659 behaves like using different access permissions2660 is expected not to change `Todo.count`2661 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_merge_request_todos2662 behaves like using different access permissions2663 is expected to contain exactly #<Todo id: 217, user_id: 810, project_id: 316, target_id: 115, target_type: "Issue", author_id: 979, ...-28 17:02:22.060028692 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 214, user_id: 810, project_id: 312, target_id: 113, target_type: "Issue", author_id: 974, ...28 17:02:20.236662678 +0000", note_id: nil, commit_id: nil, group_id: 1431, resolved_by_action: nil>2664 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos2665 behaves like using different access permissions2666 is expected not to change `Todo.count`2667 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_merge_request_todos2668 behaves like using different access permissions2669 is expected to contain exactly #<Todo id: 229, user_id: 810, project_id: 326, target_id: 123, target_type: "Issue", author_id: 991, ...-28 17:02:27.731689493 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 226, user_id: 810, project_id: 322, target_id: 121, target_type: "Issue", author_id: 986, ...28 17:02:26.326873055 +0000", note_id: nil, commit_id: nil, group_id: 1455, resolved_by_action: nil>2670 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos2671 behaves like using different access permissions2672 is expected not to change `Todo.count`2673 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_merge_request_todos2674 behaves like using different access permissions2675 is expected to contain exactly #<Todo id: 241, user_id: 810, project_id: 336, target_id: 131, target_type: "Issue", author_id: 1003,...-28 17:02:33.219144626 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 238, user_id: 810, project_id: 332, target_id: 129, target_type: "Issue", author_id: 998, ...28 17:02:31.975434848 +0000", note_id: nil, commit_id: nil, group_id: 1479, resolved_by_action: nil>2676 with nested groups2677 when the user is not a member of any groups/projects2678 removes todos for the user including subprojects todos2679 when the user is member of a parent group2680 behaves like does not remove any todos2681 is expected not to change `Todo.count`2682 when the user is member of a subgroup2683 does not remove group and subproject todos2684 when the user is member of a child project2685 does not remove subproject and group todos2686 when group is not private2687 enqueues the PrivateFeaturesWorker2688 access permissions2689 group_access: nil, project_access: nil, method_name: :removes_only_confidential_issues_todos2690 behaves like using different access permissions2691 is expected to change `Todo.count` from 6 to 52692 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos2693 behaves like using different access permissions2694 is expected not to change `Todo.count`2695 group_access: nil, project_access: :guest, method_name: :removes_only_confidential_issues_todos2696 behaves like using different access permissions2697 is expected to change `Todo.count` from 6 to 52698 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos2699 behaves like using different access permissions2700 is expected not to change `Todo.count`2701 group_access: :guest, project_access: nil, method_name: :removes_only_confidential_issues_todos2702 behaves like using different access permissions2703 is expected to change `Todo.count` from 6 to 52704 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos2705 behaves like using different access permissions2706 is expected not to change `Todo.count`2707 group_access: :guest, project_access: :guest, method_name: :removes_only_confidential_issues_todos2708 behaves like using different access permissions2709 is expected to change `Todo.count` from 6 to 52710 when entity type is not valid2711 raises an exception2712 when entity was not found2713 does not remove any todos2714Ci::UnlockArtifactsService2715 tag: false, ci_update_unlocked_job_artifacts: false2716 #execute2717 when running on a ref before a pipeline2718 unlocks artifacts from older pipelines2719 does not unlock artifacts for tag or branch with same name as ref2720 does not unlock artifacts from newer pipelines2721 does not lock artifacts from old unlocked pipelines2722 does not unlock artifacts from the same pipeline2723 does not unlock artifacts for other refs2724 does not unlock artifacts for child pipeline2725 unlocks job artifact records (PENDING: No reason given)2726 when running on just the ref2727 unlocks artifacts from older pipelines2728 unlocks artifacts from newer pipelines2729 unlocks artifacts from the same pipeline2730 does not unlock artifacts for tag or branch with same name as ref2731 does not lock artifacts from old unlocked pipelines2732 does not unlock artifacts for other refs2733 unlocks job artifact records (PENDING: No reason given)2734 #unlock_pipelines_query2735 when running on a ref before a pipeline2736 produces the expected SQL string2737 when running on just the ref2738 produces the expected SQL string2739 #unlock_job_artifacts_query2740 when running on a ref before a pipeline2741 produces the expected SQL string2742 when running on just the ref2743 produces the expected SQL string2744 tag: false, ci_update_unlocked_job_artifacts: true2745 #execute2746 when running on a ref before a pipeline2747 unlocks artifacts from older pipelines2748 does not unlock artifacts for tag or branch with same name as ref2749 does not unlock artifacts from newer pipelines2750 does not lock artifacts from old unlocked pipelines2751 does not unlock artifacts from the same pipeline2752 does not unlock artifacts for other refs2753 does not unlock artifacts for child pipeline2754 unlocks job artifact records2755 when running on just the ref2756 unlocks artifacts from older pipelines2757 unlocks artifacts from newer pipelines2758 unlocks artifacts from the same pipeline2759 does not unlock artifacts for tag or branch with same name as ref2760 does not lock artifacts from old unlocked pipelines2761 does not unlock artifacts for other refs2762 unlocks job artifact records2763 #unlock_pipelines_query2764 when running on a ref before a pipeline2765 produces the expected SQL string2766 when running on just the ref2767 produces the expected SQL string2768 #unlock_job_artifacts_query2769 when running on a ref before a pipeline2770 produces the expected SQL string2771 when running on just the ref2772 produces the expected SQL string2773 tag: true, ci_update_unlocked_job_artifacts: false2774 #execute2775 when running on a ref before a pipeline2776 unlocks artifacts from older pipelines2777 does not unlock artifacts for tag or branch with same name as ref2778 does not unlock artifacts from newer pipelines2779 does not lock artifacts from old unlocked pipelines2780 does not unlock artifacts from the same pipeline2781 does not unlock artifacts for other refs2782 does not unlock artifacts for child pipeline2783 unlocks job artifact records (PENDING: No reason given)2784 when running on just the ref2785 unlocks artifacts from older pipelines2786 unlocks artifacts from newer pipelines2787 unlocks artifacts from the same pipeline2788 does not unlock artifacts for tag or branch with same name as ref2789 does not lock artifacts from old unlocked pipelines2790 does not unlock artifacts for other refs2791 unlocks job artifact records (PENDING: No reason given)2792 #unlock_pipelines_query2793 when running on a ref before a pipeline2794 produces the expected SQL string2795 when running on just the ref2796 produces the expected SQL string2797 #unlock_job_artifacts_query2798 when running on a ref before a pipeline2799 produces the expected SQL string2800 when running on just the ref2801 produces the expected SQL string2802 tag: true, ci_update_unlocked_job_artifacts: true2803 #execute2804 when running on a ref before a pipeline2805 unlocks artifacts from older pipelines2806 does not unlock artifacts for tag or branch with same name as ref2807 does not unlock artifacts from newer pipelines2808 does not lock artifacts from old unlocked pipelines2809 does not unlock artifacts from the same pipeline2810 does not unlock artifacts for other refs2811 does not unlock artifacts for child pipeline2812 unlocks job artifact records2813 when running on just the ref2814 unlocks artifacts from older pipelines2815 unlocks artifacts from newer pipelines2816 unlocks artifacts from the same pipeline2817 does not unlock artifacts for tag or branch with same name as ref2818 does not lock artifacts from old unlocked pipelines2819 does not unlock artifacts for other refs2820 unlocks job artifact records2821 #unlock_pipelines_query2822 when running on a ref before a pipeline2823 produces the expected SQL string2824 when running on just the ref2825 produces the expected SQL string2826 #unlock_job_artifacts_query2827 when running on a ref before a pipeline2828 produces the expected SQL string2829 when running on just the ref2830 produces the expected SQL string2831Noteable2832 #discussions2833 includes discussions for diff notes, commit diff notes, commit notes, and regular notes2834 #discussion_ids_relation2835 returns ordered discussion_ids2836 #discussion_root_note_ids2837 returns ordered discussion_ids and synthetic note ids2838 filters by comments only2839 filters by system notes only2840 #grouped_diff_discussions2841 includes active discussions2842 does not include outdated discussions2843 groups the discussions by line code2844 discussion status2845 #discussions_resolvable?2846 when all discussions are unresolvable2847 returns false2848 when some discussions are unresolvable and some discussions are resolvable2849 returns true2850 when all discussions are resolvable2851 returns true2852 #discussions_resolved?2853 when discussions are not resolvable2854 returns false2855 when discussions are resolvable2856 when all resolvable discussions are resolved2857 returns true2858 when some resolvable discussions are not resolved2859 returns false2860 #discussions_to_be_resolved2861 includes only discussions that need to be resolved2862 #discussions_can_be_resolved_by?2863 all discussions can be resolved by the user2864 allows a user to resolve the discussions2865 one discussion cannot be resolved by the user2866 allows a user to resolve the discussions2867 .replyable_types2868 exposes the replyable types2869 .resolvable_types2870 exposes the replyable types2871 .email_creatable_types2872 exposes the email creatable types2873 #capped_notes_count2874 notes number < 102875 the number of notes is returned2876 notes number > 102877 10 is returned2878 #has_any_diff_note_positions?2879 returns true when it has diff note positions2880 returns false when it has notes but no diff note positions2881 returns false when it has no notes2882 #creatable_note_email_address2883 incoming email enabled2884 returns the address to create a note2885 returns nil for unsupported types2886 incoming email disabled2887 returns nil2888Ci::BuildTraceChunk2889 behaves like having unique enum values2890 has unique values in "data_store"2891 chunk creation2892 increments trace operation chunked metric2893 FastDestroyAll2894 Forbid #destroy and #destroy_all2895 does not delete database rows and associted external data2896 .fast_destroy_all2897 deletes database rows and associted external data2898 .use_fast_destroy2899 performs cascading delete with fast_destroy_all2900 CHUNK_SIZE2901 chunk size can not be changed without special care2902 .all_stores2903 returns a correctly ordered array2904 #data2905 data_store: :redis2906 is expected to eq "Sample data in redis"2907 data_store: :redis_trace_chunks2908 is expected to eq "Sample data in redis"2909 when data_store is database2910 is expected to eq "Sample data in database"2911 when data_store is fog2912 is expected to eq "Sample data in fog"2913 returns a new Fog store2914 #data_store2915 default value2916 is expected to eq "redis_trace_chunks"2917 #get_store_class2918 raises an error2919 data_store: :redis, expected_store: Ci::BuildTraceChunks::Redis2920 with store2921 returns an instance of the right class2922 data_store: :database, expected_store: Ci::BuildTraceChunks::Database2923 with store2924 returns an instance of the right class2925 data_store: :fog, expected_store: Ci::BuildTraceChunks::Fog2926 with store2927 returns an instance of the right class2928 data_store: :redis_trace_chunks, expected_store: Ci::BuildTraceChunks::RedisTraceChunks2929 with store2930 returns an instance of the right class2931 #append2932 data_store: :redis2933 when there are no data2934 has no data2935 does not read data when appending2936 behaves like Appending correctly2937 when offset is negative2938 is expected to raise Exception with "Offset is out of range"2939 when offset is bigger than data size2940 is expected to raise Exception with "Offset is out of range"2941 when new data overflows chunk size2942 is expected to raise Exception with "Chunk size overflow"2943 when offset is EOF2944 appends2945 when the other process is appending2946 raise an error2947 when new_data is nil2948 raises an error2949 when new_data is empty2950 does not append2951 does not execute UPDATE2952 when offset is middle of datasize2953 appends2954 behaves like Scheduling sidekiq worker to flush data to persist store2955 when new data fulfilled chunk size2956 schedules trace chunk flush worker2957 migrates data to object storage2958 when there are some data2959 has data2960 behaves like Appending correctly2961 when offset is negative2962 is expected to raise Exception with "Offset is out of range"2963 when offset is bigger than data size2964 is expected to raise Exception with "Offset is out of range"2965 when new data overflows chunk size2966 is expected to raise Exception with "Chunk size overflow"2967 when offset is EOF2968 appends2969 when the other process is appending2970 raise an error2971 when new_data is nil2972 raises an error2973 when new_data is empty2974 does not append2975 does not execute UPDATE2976 when offset is middle of datasize2977 appends2978 behaves like Scheduling sidekiq worker to flush data to persist store2979 when new data fulfilled chunk size2980 schedules trace chunk flush worker2981 migrates data to object storage2982 data_store: :redis_trace_chunks2983 when there are no data2984 has no data2985 does not read data when appending2986 behaves like Appending correctly2987 when offset is negative2988 is expected to raise Exception with "Offset is out of range"2989 when offset is bigger than data size2990 is expected to raise Exception with "Offset is out of range"2991 when new data overflows chunk size2992 is expected to raise Exception with "Chunk size overflow"2993 when offset is EOF2994 appends2995 when the other process is appending2996 raise an error2997 when new_data is nil2998 raises an error2999 when new_data is empty3000 does not append3001 does not execute UPDATE3002 when offset is middle of datasize3003 appends3004 behaves like Scheduling sidekiq worker to flush data to persist store3005 when new data fulfilled chunk size3006 schedules trace chunk flush worker3007 migrates data to object storage3008 when there are some data3009 has data3010 behaves like Appending correctly3011 when offset is negative3012 is expected to raise Exception with "Offset is out of range"3013 when offset is bigger than data size3014 is expected to raise Exception with "Offset is out of range"3015 when new data overflows chunk size3016 is expected to raise Exception with "Chunk size overflow"3017 when offset is EOF3018 appends3019 when the other process is appending3020 raise an error3021 when new_data is nil3022 raises an error3023 when new_data is empty3024 does not append3025 does not execute UPDATE3026 when offset is middle of datasize3027 appends3028 behaves like Scheduling sidekiq worker to flush data to persist store3029 when new data fulfilled chunk size3030 schedules trace chunk flush worker3031 migrates data to object storage3032 when data_store is database3033 when there are no data3034 has no data3035 behaves like Appending correctly3036 when offset is negative3037 is expected to raise Exception with "Offset is out of range"3038 when offset is bigger than data size3039 is expected to raise Exception with "Offset is out of range"3040 when new data overflows chunk size3041 is expected to raise Exception with "Chunk size overflow"3042 when offset is EOF3043 appends3044 when the other process is appending3045 raise an error3046 when new_data is nil3047 raises an error3048 when new_data is empty3049 does not append3050 does not execute UPDATE3051 when offset is middle of datasize3052 appends3053 behaves like Scheduling no sidekiq worker3054 when new data fulfilled chunk size3055 does not schedule trace chunk flush worker3056 does not migrate data to object storage3057 when there are some data3058 has data3059 behaves like Appending correctly3060 when offset is negative3061 is expected to raise Exception with "Offset is out of range"3062 when offset is bigger than data size3063 is expected to raise Exception with "Offset is out of range"3064 when new data overflows chunk size3065 is expected to raise Exception with "Chunk size overflow"3066 when offset is EOF3067 appends3068 when the other process is appending3069 raise an error3070 when new_data is nil3071 raises an error3072 when new_data is empty3073 does not append3074 does not execute UPDATE3075 when offset is middle of datasize3076 appends3077 behaves like Scheduling no sidekiq worker3078 when new data fulfilled chunk size3079 does not schedule trace chunk flush worker3080 does not migrate data to object storage3081 when data_store is fog3082 when there are no data3083 has no data3084 behaves like Appending correctly3085 when offset is negative3086 is expected to raise Exception with "Offset is out of range"3087 when offset is bigger than data size3088 is expected to raise Exception with "Offset is out of range"3089 when new data overflows chunk size3090 is expected to raise Exception with "Chunk size overflow"3091 when offset is EOF3092 appends3093 when the other process is appending3094 raise an error3095 when new_data is nil3096 raises an error3097 when new_data is empty3098 does not append3099 does not execute UPDATE3100 when offset is middle of datasize3101 appends3102 behaves like Scheduling no sidekiq worker3103 when new data fulfilled chunk size3104 does not schedule trace chunk flush worker3105 does not migrate data to object storage3106 when there are some data3107 has data3108 behaves like Appending correctly3109 when offset is negative3110 is expected to raise Exception with "Offset is out of range"3111 when offset is bigger than data size3112 is expected to raise Exception with "Offset is out of range"3113 when new data overflows chunk size3114 is expected to raise Exception with "Chunk size overflow"3115 when offset is EOF3116 appends3117 when the other process is appending3118 raise an error3119 when new_data is nil3120 raises an error3121 when new_data is empty3122 does not append3123 does not execute UPDATE3124 when offset is middle of datasize3125 appends3126 behaves like Scheduling no sidekiq worker3127 when new data fulfilled chunk size3128 does not schedule trace chunk flush worker3129 does not migrate data to object storage3130 append metrics3131 increments trace operation appended metric3132 #truncate3133 data_store: :redis3134 behaves like truncates3135 when offset is negative3136 is expected to raise Exception with "Offset is out of range"3137 when offset is bigger than data size3138 is expected to raise Exception with "Offset is out of range"3139 when offset is 103140 truncates3141 data_store: :redis_trace_chunks3142 behaves like truncates3143 when offset is negative3144 is expected to raise Exception with "Offset is out of range"3145 when offset is bigger than data size3146 is expected to raise Exception with "Offset is out of range"3147 when offset is 103148 truncates3149 when data_store is database3150 behaves like truncates3151 when offset is negative3152 is expected to raise Exception with "Offset is out of range"3153 when offset is bigger than data size3154 is expected to raise Exception with "Offset is out of range"3155 when offset is 103156 truncates3157 when data_store is fog3158 behaves like truncates3159 when offset is negative3160 is expected to raise Exception with "Offset is out of range"3161 when offset is bigger than data size3162 is expected to raise Exception with "Offset is out of range"3163 when offset is 103164 truncates3165 #size3166 data_store: :redis3167 when data exists3168 is expected to eq 203169 when data exists3170 is expected to eq 03171 data_store: :redis_trace_chunks3172 when data exists3173 is expected to eq 203174 when data exists3175 is expected to eq 03176 when data_store is database3177 when data exists3178 is expected to eq 233179 when data does not exist3180 is expected to eq 03181 when data_store is fog3182 when data exists3183 is expected to eq 183184 when data does not exist3185 is expected to eq 03186 #persist_data!3187 data_store: :redis, redis_class: Ci::BuildTraceChunks::Redis3188 when data exists3189 when data size reached CHUNK_SIZE3190 persists the data3191 calculates CRC32 checksum3192 when data size has not reached CHUNK_SIZE3193 does not persist the data and the orignal data is intact3194 when chunk is a final one3195 persists the data3196 when the chunk has been modifed by a different worker3197 reloads the chunk before migration3198 verifies the operation using optimistic locking3199 does not allow flushing unpersisted chunk3200 when the chunk is being locked by a different worker3201 increments stalled chunk trace metric3202 when data does not exist3203 does not persist3204 data_store: :redis_trace_chunks, redis_class: Ci::BuildTraceChunks::RedisTraceChunks3205 when data exists3206 when data size reached CHUNK_SIZE3207 persists the data3208 calculates CRC32 checksum3209 when data size has not reached CHUNK_SIZE3210 does not persist the data and the orignal data is intact3211 when chunk is a final one3212 persists the data3213 when the chunk has been modifed by a different worker3214 reloads the chunk before migration3215 verifies the operation using optimistic locking3216 does not allow flushing unpersisted chunk3217 when the chunk is being locked by a different worker3218 increments stalled chunk trace metric3219 when data does not exist3220 does not persist3221 when data_store is database3222 when data exists3223 when data size reached CHUNK_SIZE3224 persists the data3225 when data size has not reached CHUNK_SIZE3226 does not persist the data and the orignal data is intact3227 when chunk is a final one3228 persists the data3229 when data does not exist3230 does not persist3231 when data_store is fog3232 when data exists3233 when data size reached CHUNK_SIZE3234 does not change data store3235 when data size has not reached CHUNK_SIZE3236 does not raise error3237 final?3238 when build pending state exists3239 when chunks is not the last one3240 is not a final chunk3241 when chunks is the last one3242 is a final chunk3243 when build pending state does not exist3244 when chunks is not the last one3245 is not a final chunk3246 when chunks is the last one3247 is not a final chunk3248 deletes data in redis after a parent record destroyed3249 when traces are archived3250 behaves like deletes all build_trace_chunk and data in redis3251 deletes all build_trace_chunk and data in redis3252 when project is destroyed3253 behaves like deletes all build_trace_chunk and data in redis3254 deletes all build_trace_chunk and data in redis3255 comparable build trace chunks3256 #<=>3257 when chunks are associated with different builds3258 returns nil3259 when there are two chunks with different indexes3260 indicates the the first one is greater than then second3261 when there are two chunks with the same index within the same build3262 indicates the these are equal3263 #==3264 when chunks have the same index3265 indicates that the chunks are equal3266 when chunks have different indexes3267 indicates that the chunks are not equal3268 when chunks are associated with different builds3269 indicates that the chunks are not equal3270 #live?3271 data_store: :redis, value: true3272 is expected to eq true3273 data_store: :redis_trace_chunks, value: true3274 is expected to eq true3275 data_store: :database, value: false3276 is expected to eq false3277 data_store: :fog, value: false3278 is expected to eq false3279 #flushed?3280 data_store: :redis, value: false3281 is expected to eq false3282 data_store: :redis_trace_chunks, value: false3283 is expected to eq false3284 data_store: :database, value: true3285 is expected to eq true3286 data_store: :fog, value: true3287 is expected to eq true3288SystemNotes::IssuablesService3289 #relate_issuable3290 behaves like a system note3291 has the correct attributes3292 when issue marks another as related3293 sets the note text3294 #unrelate_issuable3295 behaves like a system note3296 has the correct attributes3297 when issue relation is removed3298 sets the note text3299 #change_assignee3300 behaves like a system note3301 has the correct attributes3302 when assignee added3303 sets the note text3304 behaves like a note with overridable created_at3305 the note has the correct time3306 when assignee removed3307 sets the note text3308 behaves like a note with overridable created_at3309 the note has the correct time3310 #change_issuable_assignees3311 builds a correct phrase when an assignee is added to a non-assigned issue3312 builds a correct phrase when assignee removed3313 builds a correct phrase when assignees changed3314 builds a correct phrase when three assignees removed and one added3315 builds a correct phrase when one assignee changed from a set3316 builds a correct phrase when one assignee removed from a set3317 builds a correct phrase when the locale is different3318 behaves like a system note3319 has the correct attributes3320 behaves like a note with overridable created_at3321 the note has the correct time3322 #change_issuable_reviewers3323 builds a correct phrase when a reviewer is added to a non-assigned merge request3324 builds a correct phrase when reviewer is removed3325 builds a correct phrase when reviewers changed3326 builds a correct phrase when three reviewers removed and one added3327 builds a correct phrase when one reviewer is changed from a set3328 builds a correct phrase when one reviewer removed from a set3329 builds a correct phrase when the locale is different3330 behaves like a system note3331 has the correct attributes3332 #change_issuable_contacts3333 builds a correct phrase when one contact is added3334 builds a correct phrase when one contact is removed3335 builds a correct phrase when one contact is added and one contact is removed3336 builds a correct phrase when three contacts are added and one removed3337 builds a correct phrase when three contacts are removed and one added3338 builds a correct phrase when the locale is different3339 behaves like a system note3340 has the correct attributes3341 #change_status3342 creates a resource state event3343 #request_attention3344 behaves like a system note3345 has the correct attributes3346 when attention requested3347 sets the note text3348 behaves like a note with overridable created_at3349 the note has the correct time3350 #remove_attention_request3351 behaves like a system note3352 has the correct attributes3353 when attention request is removed3354 sets the note text3355 behaves like a note with overridable created_at3356 the note has the correct time3357 #change_title3358 when noteable responds to `title`3359 sets the note text3360 behaves like a system note3361 has the correct attributes3362 behaves like a note with overridable created_at3363 the note has the correct time3364 #change_description3365 when noteable responds to `description`3366 sets the note text3367 associates the related description version3368 behaves like a system note3369 has the correct attributes3370 behaves like a note with overridable created_at3371 the note has the correct time3372 #change_issue_confidentiality3373 issue has been made confidential3374 sets the note text3375 behaves like a system note3376 has the correct attributes3377 issue has been made visible3378 sets the note text3379 behaves like a system note3380 has the correct attributes3381 #cross_reference3382 behaves like a system note3383 has the correct attributes3384 when cross-reference disallowed3385 returns nil3386 does not create a system note metadata record3387 when cross-reference allowed3388 behaves like a system note3389 has the correct attributes3390 behaves like a note with overridable created_at3391 the note has the correct time3392 note_body3393 cross-project3394 from Commit3395 references the mentioning commit3396 from non-Commit3397 references the mentioning object3398 within the same project3399 from Commit3400 references the mentioning commit3401 from non-Commit3402 references the mentioning object3403 with external issue3404 queues a background worker3405 #cross_reference_exists?3406 issue from commit3407 is truthy when already mentioned3408 is falsey when not already mentioned3409 legacy capitalized cross reference3410 is truthy when already mentioned3411 commit from commit3412 is truthy when already mentioned3413 is falsey when not already mentioned3414 legacy capitalized cross reference3415 is truthy when already mentioned3416 commit with cross-reference from fork3417 is true when a fork mentions an external issue3418 legacy capitalized cross reference3419 is true when a fork mentions an external issue3420 #change_task_status3421 posts the 'marked the task as complete' system note3422 behaves like a system note3423 has the correct attributes3424 #noteable_moved3425 moved to3426 notifies about noteable being moved to3427 behaves like cross project mentionable3428 contains cross reference to new noteable3429 mentions referenced noteable3430 mentions referenced project3431 behaves like a system note3432 has the correct attributes3433 moved from3434 notifies about noteable being moved from3435 behaves like cross project mentionable3436 contains cross reference to new noteable3437 mentions referenced noteable3438 mentions referenced project3439 behaves like a system note3440 has the correct attributes3441 invalid direction3442 raises error3443 #noteable_cloned3444 cloned to3445 notifies about noteable being cloned to3446 behaves like cross project mentionable3447 contains cross reference to new noteable3448 mentions referenced noteable3449 mentions referenced project3450 behaves like a system note3451 has the correct attributes3452 cloned from3453 notifies about noteable being cloned from3454 behaves like cross project mentionable3455 contains cross reference to new noteable3456 mentions referenced noteable3457 mentions referenced project3458 behaves like a system note3459 has the correct attributes3460 invalid direction3461 raises error3462 metrics3463 cloned from3464 does not tracks usage3465 cloned to3466 tracks usage3467 #mark_duplicate_issue3468 within the same project3469 is expected to eq "marked this issue as a duplicate of #2"3470 behaves like a system note3471 has the correct attributes3472 across different projects3473 is expected to eq "marked this issue as a duplicate of namespace690/project701#1"3474 behaves like a system note3475 has the correct attributes3476 #mark_canonical_issue_of_duplicate3477 within the same project3478 is expected to eq "marked #2 as a duplicate of this issue"3479 behaves like a system note3480 has the correct attributes3481 across different projects3482 is expected to eq "marked namespace692/project703#1 as a duplicate of this issue"3483 behaves like a system note3484 has the correct attributes3485 #discussion_lock3486 discussion unlocked3487 creates the note text correctly3488 behaves like a system note3489 has the correct attributes3490 discussion locked3491 creates the note text correctly3492 behaves like a system note3493 has the correct attributes3494 #cross_reference_disallowed?3495 when mentioned_in is not a MergeRequest3496 is falsey3497 when mentioned_in is a MergeRequest3498 is truthy when noteable is in commits3499 is falsey when noteable is not in commits3500 when notable is an ExternalIssue3501 is false with issue tracker supporting referencing3502 is true with issue tracker not supporting referencing3503 is true without issue tracker3504 #close_after_error_tracking_resolve3505 creates the expected state event3506 #auto_resolve_prometheus_alert3507 creates the expected state event3508 #change_issue_type3509 is expected to eq "changed issue type to incident"3510 behaves like a system note3511 has the correct attributes3512Projects::Security::ConfigurationPresenter3513 #to_html_data_attribute3514 when latest default branch pipeline`s source is not auto devops3515 includes links to auto devops and secure product docs3516 returns info that Auto DevOps is not enabled3517 includes a link to the latest pipeline3518 has stubs for autofix3519 includes feature information3520 includes a link to the latest pipeline3521 includes the path to gitlab_ci history3522 while retrieving information about user's ability to enable auto_devops3523 is_admin: true, archived: true, feature_available: true, result: false3524 includes can_enable_auto_devops3525 is_admin: false, archived: true, feature_available: true, result: false3526 includes can_enable_auto_devops3527 is_admin: true, archived: false, feature_available: true, result: true3528 includes can_enable_auto_devops3529 is_admin: false, archived: false, feature_available: true, result: false3530 includes can_enable_auto_devops3531 is_admin: true, archived: true, feature_available: false, result: false3532 includes can_enable_auto_devops3533 is_admin: false, archived: true, feature_available: false, result: false3534 includes can_enable_auto_devops3535 is_admin: true, archived: false, feature_available: false, result: false3536 includes can_enable_auto_devops3537 is_admin: false, archived: false, feature_available: false, result: false3538 includes can_enable_auto_devops3539 when checking features configured status3540 type: :dast, configured: true3541 returns proper configuration status3542 type: :dast_profiles, configured: true3543 returns proper configuration status3544 type: :sast, configured: true3545 returns proper configuration status3546 type: :sast_iac, configured: false3547 returns proper configuration status3548 type: :container_scanning, configured: false3549 returns proper configuration status3550 type: :cluster_image_scanning, configured: false3551 returns proper configuration status3552 type: :dependency_scanning, configured: false3553 returns proper configuration status3554 type: :license_scanning, configured: true3555 returns proper configuration status3556 type: :secret_detection, configured: false3557 returns proper configuration status3558 type: :coverage_fuzzing, configured: false3559 returns proper configuration status3560 type: :api_fuzzing, configured: false3561 returns proper configuration status3562 type: :corpus_management, configured: true3563 returns proper configuration status3564 when the job has more than one report3565 type: :dast, configured: false3566 properly detects security jobs3567 type: :dast_profiles, configured: true3568 properly detects security jobs3569 type: :sast, configured: true3570 properly detects security jobs3571 type: :sast_iac, configured: false3572 properly detects security jobs3573 type: :container_scanning, configured: false3574 properly detects security jobs3575 type: :cluster_image_scanning, configured: false3576 properly detects security jobs3577 type: :dependency_scanning, configured: false3578 properly detects security jobs3579 type: :license_scanning, configured: true3580 properly detects security jobs3581 type: :secret_detection, configured: false3582 properly detects security jobs3583 type: :coverage_fuzzing, configured: false3584 properly detects security jobs3585 type: :api_fuzzing, configured: false3586 properly detects security jobs3587 type: :corpus_management, configured: true3588 properly detects security jobs3589 while retrieving information about gitlab ci file3590 when a .gitlab-ci.yml file exists3591 expects gitlab_ci_present to be true3592 when a .gitlab-ci.yml file does not exist3593 expects gitlab_ci_present to be false if the file is not present3594 when the project is empty3595 includes a blank gitlab_ci history path3596 when the project has no default branch set3597 includes the path to gitlab_ci history3598 when the latest default branch pipeline's source is auto devops3599 reports that auto devops is enabled3600 when gathering feature data3601 type: :dast, configured: true3602 reports that all scanners are configured for which latest pipeline has builds3603 type: :dast_profiles, configured: true3604 reports that all scanners are configured for which latest pipeline has builds3605 type: :sast, configured: true3606 reports that all scanners are configured for which latest pipeline has builds3607 type: :sast_iac, configured: false3608 reports that all scanners are configured for which latest pipeline has builds3609 type: :container_scanning, configured: false3610 reports that all scanners are configured for which latest pipeline has builds3611 type: :cluster_image_scanning, configured: false3612 reports that all scanners are configured for which latest pipeline has builds3613 type: :dependency_scanning, configured: false3614 reports that all scanners are configured for which latest pipeline has builds3615 type: :license_scanning, configured: false3616 reports that all scanners are configured for which latest pipeline has builds3617 type: :secret_detection, configured: true3618 reports that all scanners are configured for which latest pipeline has builds3619 type: :coverage_fuzzing, configured: false3620 reports that all scanners are configured for which latest pipeline has builds3621 type: :api_fuzzing, configured: false3622 reports that all scanners are configured for which latest pipeline has builds3623 type: :corpus_management, configured: true3624 reports that all scanners are configured for which latest pipeline has builds3625 when the project has no default branch pipeline3626 reports that auto devops is disabled3627 includes a link to CI pipeline docs3628 when gathering feature data3629 type: :dast, configured: false3630 reports all security jobs as unconfigured with exception of "fake" jobs3631 type: :dast_profiles, configured: true3632 reports all security jobs as unconfigured with exception of "fake" jobs3633 type: :sast, configured: false3634 reports all security jobs as unconfigured with exception of "fake" jobs3635 type: :sast_iac, configured: false3636 reports all security jobs as unconfigured with exception of "fake" jobs3637 type: :container_scanning, configured: false3638 reports all security jobs as unconfigured with exception of "fake" jobs3639 type: :cluster_image_scanning, configured: false3640 reports all security jobs as unconfigured with exception of "fake" jobs3641 type: :dependency_scanning, configured: false3642 reports all security jobs as unconfigured with exception of "fake" jobs3643 type: :license_scanning, configured: false3644 reports all security jobs as unconfigured with exception of "fake" jobs3645 type: :secret_detection, configured: false3646 reports all security jobs as unconfigured with exception of "fake" jobs3647 type: :coverage_fuzzing, configured: false3648 reports all security jobs as unconfigured with exception of "fake" jobs3649 type: :api_fuzzing, configured: false3650 reports all security jobs as unconfigured with exception of "fake" jobs3651 type: :corpus_management, configured: true3652 reports all security jobs as unconfigured with exception of "fake" jobs3653Gitlab::Database::RenameReservedPathsMigration::V1::RenameBase3654 #remove_last_occurrence3655 removes only the last occurrence of a string3656 #remove_cached_html_for_projects3657 removes description_html from projects3658 removes issue descriptions3659 removes merge request descriptions3660 removes note html3661 removes milestone description3662 #rename_path_for_routable3663 for personal namespaces3664 renames namespaces called the-path3665 renames the route to the namespace3666 renames the route for projects of the namespace3667 returns the old & the new path3668 doesn't rename routes that start with a similar name3669 for groups3670 the-path group -> subgroup -> the-path0 project3671 updates the route of the project correctly3672 for projects3673 renames the project called `the-path`3674 renames the route for the project3675 returns the old & new path3676 #perform_rename3677 for personal namespaces3678 renames the path3679 for groups3680 renames all the routes for the group3681 #move_pages3682 moves the pages directory3683 #move_uploads3684 moves subdirectories in the uploads folder3685 doesn't move uploads when they are stored in object storage3686 #move_folders3687 moves a folder with files3688 #track_rename3689 tracks a rename in redis3690 #reverts_for_type3691 yields for each tracked rename3692 keeps the revert in redis if it failed3693VisibilityLevelHelper3694 visibility_icon_description3695 used with a Project3696 delegates projects to #project_visibility_icon_description3697 used with a ProjectPresenter3698 delegates projects to #project_visibility_icon_description3699 used with a Group3700 delegates groups to #group_visibility_icon_description3701 visibility_level_label3702 level_value: 0, level_name: "Private"3703 returns the name of the visibility level3704 level_value: 10, level_name: "Internal"3705 returns the name of the visibility level3706 level_value: 20, level_name: "Public"3707 returns the name of the visibility level3708 visibility_level_description3709 used with a Project3710 returns different project related descriptions depending on visibility level3711 used with a Group3712 returns different group related descriptions depending on visibility level3713 disallowed_visibility_level?3714 forks3715 disallows levels3716 non-forked project3717 disallows levels3718 group3719 disallows levels3720 sub-group3721 disallows levels3722 snippet3723 disallows levels3724 selected_visibility_level3725 requested_level: 20, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 203726 provides correct visibility level for forked project3727 provides correct visibility level for project in group3728 requested_level: 20, max_allowed: 20, global_default_level: 20, restricted_levels: [20], expected: 103729 provides correct visibility level for forked project3730 provides correct visibility level for project in group3731 requested_level: 10, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 103732 provides correct visibility level for forked project3733 provides correct visibility level for project in group3734 requested_level: 10, max_allowed: 0, global_default_level: 0, restricted_levels: [], expected: 03735 provides correct visibility level for forked project3736 provides correct visibility level for project in group3737 requested_level: 0, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 03738 provides correct visibility level for forked project3739 provides correct visibility level for project in group3740 requested_level: 20, max_allowed: 0, global_default_level: 10, restricted_levels: [], expected: 03741 provides correct visibility level for forked project3742 provides correct visibility level for project in group3743 requested_level: 20, max_allowed: 10, global_default_level: 20, restricted_levels: [], expected: 103744 provides correct visibility level for forked project3745 provides correct visibility level for project in group3746 requested_level: 20, max_allowed: 0, global_default_level: 20, restricted_levels: [], expected: 03747 provides correct visibility level for forked project3748 provides correct visibility level for project in group3749 requested_level: 20, max_allowed: 10, global_default_level: 10, restricted_levels: [], expected: 103750 provides correct visibility level for forked project3751 provides correct visibility level for project in group3752 requested_level: 20, max_allowed: 20, global_default_level: 10, restricted_levels: [], expected: 203753 provides correct visibility level for forked project3754 provides correct visibility level for project in group3755 #available_visibility_levels3756 behaves like available visibility level3757 excludes disallowed visibility levels3758 restricted_visibility_levels: [], expected: [0, 10, 20]3759 is expected to eq [0, 10, 20]3760 restricted_visibility_levels: [0], expected: [10, 20]3761 is expected to eq [10, 20]3762 restricted_visibility_levels: [0, 10], expected: [20]3763 is expected to eq [20]3764 restricted_visibility_levels: [0, 20], expected: [10]3765 is expected to eq [10]3766 restricted_visibility_levels: [10], expected: [0, 20]3767 is expected to eq [0, 20]3768 restricted_visibility_levels: [10, 0], expected: [20]3769 is expected to eq [20]3770 restricted_visibility_levels: [10, 20], expected: [0]3771 is expected to eq [0]3772 restricted_visibility_levels: [20], expected: [0, 10]3773 is expected to eq [0, 10]3774 restricted_visibility_levels: [20, 0], expected: [10]3775 is expected to eq [10]3776 restricted_visibility_levels: [20, 10], expected: [0]3777 is expected to eq [0]3778 behaves like available visibility level3779 excludes disallowed visibility levels3780 restricted_visibility_levels: [], expected: [0, 10, 20]3781 is expected to eq [0, 10, 20]3782 restricted_visibility_levels: [0], expected: [10, 20]3783 is expected to eq [10, 20]3784 restricted_visibility_levels: [0, 10], expected: [20]3785 is expected to eq [20]3786 restricted_visibility_levels: [0, 20], expected: [10]3787 is expected to eq [10]3788 restricted_visibility_levels: [10], expected: [0, 20]3789 is expected to eq [0, 20]3790 restricted_visibility_levels: [10, 0], expected: [20]3791 is expected to eq [20]3792 restricted_visibility_levels: [10, 20], expected: [0]3793 is expected to eq [0]3794 restricted_visibility_levels: [20], expected: [0, 10]3795 is expected to eq [0, 10]3796 restricted_visibility_levels: [20, 0], expected: [10]3797 is expected to eq [10]3798 restricted_visibility_levels: [20, 10], expected: [0]3799 is expected to eq [0]3800 behaves like available visibility level3801 excludes disallowed visibility levels3802 restricted_visibility_levels: [], expected: [0, 10, 20]3803 is expected to eq [0, 10, 20]3804 restricted_visibility_levels: [0], expected: [10, 20]3805 is expected to eq [10, 20]3806 restricted_visibility_levels: [0, 10], expected: [20]3807 is expected to eq [20]3808 restricted_visibility_levels: [0, 20], expected: [10]3809 is expected to eq [10]3810 restricted_visibility_levels: [10], expected: [0, 20]3811 is expected to eq [0, 20]3812 restricted_visibility_levels: [10, 0], expected: [20]3813 is expected to eq [20]3814 restricted_visibility_levels: [10, 20], expected: [0]3815 is expected to eq [0]3816 restricted_visibility_levels: [20], expected: [0, 10]3817 is expected to eq [0, 10]3818 restricted_visibility_levels: [20, 0], expected: [10]3819 is expected to eq [10]3820 restricted_visibility_levels: [20, 10], expected: [0]3821 is expected to eq [0]3822 behaves like available visibility level3823 excludes disallowed visibility levels3824 restricted_visibility_levels: [], expected: [0, 10, 20]3825 is expected to eq [0, 10, 20]3826 restricted_visibility_levels: [0], expected: [10, 20]3827 is expected to eq [10, 20]3828 restricted_visibility_levels: [0, 10], expected: [20]3829 is expected to eq [20]3830 restricted_visibility_levels: [0, 20], expected: [10]3831 is expected to eq [10]3832 restricted_visibility_levels: [10], expected: [0, 20]3833 is expected to eq [0, 20]3834 restricted_visibility_levels: [10, 0], expected: [20]3835 is expected to eq [20]3836 restricted_visibility_levels: [10, 20], expected: [0]3837 is expected to eq [0]3838 restricted_visibility_levels: [20], expected: [0, 10]3839 is expected to eq [0, 10]3840 restricted_visibility_levels: [20, 0], expected: [10]3841 is expected to eq [10]3842 restricted_visibility_levels: [20, 10], expected: [0]3843 is expected to eq [0]3844 #snippets_selected_visibility_level3845 returns the selected visibility level3846 fallbacks using the lowest available visibility level when selected level isn't available3847 multiple_visibility_levels_restricted?3848 restricted_visibility_levels: [20], expected: false3849 is expected to eq false3850 restricted_visibility_levels: [20, 10], expected: true3851 is expected to eq true3852 restricted_visibility_levels: [20, 10, 0], expected: true3853 is expected to eq true3854 all_visibility_levels_restricted?3855 restricted_visibility_levels: [20], expected: false3856 is expected to eq false3857 restricted_visibility_levels: [20, 10], expected: false3858 is expected to eq false3859 restricted_visibility_levels: [0, 10, 20], expected: true3860 is expected to eq true3861 #visibility_level_options3862 returns the desired mapping3863Projects::UpdateService3864 #execute3865 when changing visibility level3866 when visibility_level changes to INTERNAL3867 updates the project to internal3868 when visibility_level changes to PUBLIC3869 updates the project to public3870 and project is PRIVATE3871 does not unlink project from fork network3872 when visibility_level changes to PRIVATE3873 updates the project to private3874 when visibility levels are restricted to PUBLIC only3875 when visibility_level is INTERNAL3876 updates the project to internal3877 when visibility_level is PUBLIC3878 does not update the project to public3879 when updated by an admin3880 when admin mode is enabled3881 updates the project to public3882 when admin mode is disabled3883 does not update the project to public3884 when project visibility is higher than parent group3885 does not update project visibility level even if admin3886 when updating shared runners3887 can enable shared runners3888 enables shared runners3889 cannot enable shared runners3890 does not enable shared runners3891 when updating project that has forks3892 and unlink forks feature flag is off3893 updates forks visibility level when parent set to more restrictive3894 does not update forks visibility level when parent set to less restrictive3895 and unlink forks feature flag is on3896 does not change visibility of forks3897 when updating a default branch3898 changes default branch, tracking the previous branch3899 does not change a default branch3900 when we update project but not enabling a wiki3901 does not try to create an empty wiki3902 handles empty project feature attributes3903 when enabling a wiki3904 creates a wiki3905 logs an error and creates a metric when wiki can not be created3906 when changing feature visibility to private3907 updates the visibility correctly3908 when updating a project that contains container images3909 does not allow to rename the project3910 allows to update other settings3911 when renaming a project3912 with legacy storage3913 does not allow renaming when new path matches existing repository on disk3914 when hashed storage is enabled3915 migrates project to a hashed storage instead of renaming the repo to another legacy name3916 with hashed storage3917 does not check if new path matches existing repository on disk3918 when passing invalid parameters3919 returns an error result when record cannot be updated3920 when updating #emails_disabled3921 updates the attribute for the project owner3922 does not update when not project owner3923 when updating runners settings3924 when project has shared runners enabled3925 updates builds queue when shared runners get disabled3926 when project has shared runners disabled3927 updates builds queue when shared runners get enabled3928 when project has group runners enabled3929 updates builds queue when group runners get disabled3930 when project has group runners disabled3931 updates builds queue when group runners get enabled3932 with external authorization enabled3933 does not save the project with an error if the service denies access3934 saves the new label if the service allows access3935 checks the default label when the classification label was cleared3936 does not check the label when it does not change3937 when updating nested attributes for prometheus integration3938 prometheus integration exists3939 updates existing record3940 prometheus integration does not exist3941 valid parameters3942 creates new record3943 invalid parameters3944 does not create new record3945 when changing repository_storage3946 authenticated as admin3947 when admin mode is enabled3948 schedules the transfer of the repository to the new storage and locks the project3949 when admin mode is disabled3950 behaves like the transfer was not scheduled3951 does not schedule the transfer3952 the repository is read-only3953 behaves like the transfer was not scheduled3954 does not schedule the transfer3955 the storage has not changed3956 behaves like the transfer was not scheduled3957 does not schedule the transfer3958 the storage does not exist3959 behaves like the transfer was not scheduled3960 does not schedule the transfer3961 authenticated as user3962 behaves like the transfer was not scheduled3963 does not schedule the transfer3964 when updating topics3965 update using topics3966 update using topic_list3967 update using tag_list (deprecated)3968 #run_auto_devops_pipeline?3969 when master contains a .gitlab-ci.yml file3970 is expected to eq false3971 when auto devops is nil3972 is expected to eq false3973 when auto devops is explicitly enabled3974 is expected to eq true3975 when auto devops is explicitly disabled3976 is expected to eq false3977 when auto devops is set to instance setting3978 when auto devops is enabled system-wide3979 is expected to eq true3980 when auto devops is disabled system-wide3981 is expected to eq false3982CI YML Templates3983 that support autodevops3984 when including available templates in a CI YAML configuration3985 template_name: "5-Minute-Production-App.gitlab-ci.yml"3986 is expected to be valid3987 require default stages to be included3988 template_name: "Android.gitlab-ci.yml"3989 is expected to be valid3990 require default stages to be included3991 template_name: "Android-Fastlane.gitlab-ci.yml"3992 is expected to be valid3993 require default stages to be included3994 template_name: "Auto-DevOps.gitlab-ci.yml"3995 is expected to be valid3996 require default stages to be included3997 template_name: "Bash.gitlab-ci.yml"3998 is expected to be valid3999 require default stages to be included4000 template_name: "C++.gitlab-ci.yml"4001 is expected to be valid4002 require default stages to be included4003 template_name: "Chef.gitlab-ci.yml"4004 is expected to be valid4005 require default stages to be included4006 template_name: "Clojure.gitlab-ci.yml"4007 is expected to be valid4008 require default stages to be included4009 template_name: "Code-Quality.gitlab-ci.yml"4010 is expected to be valid4011 require default stages to be included4012 template_name: "Composer.gitlab-ci.yml"4013 is expected to be valid4014 require default stages to be included4015 template_name: "Crystal.gitlab-ci.yml"4016 is expected to be valid4017 require default stages to be included4018 template_name: "Dart.gitlab-ci.yml"4019 is expected to be valid4020 require default stages to be included4021 template_name: "Deploy-ECS.gitlab-ci.yml"4022 is expected to be valid4023 require default stages to be included4024 template_name: "Django.gitlab-ci.yml"4025 is expected to be valid4026 require default stages to be included4027 template_name: "Docker.gitlab-ci.yml"4028 is expected to be valid4029 require default stages to be included4030 template_name: "Elixir.gitlab-ci.yml"4031 is expected to be valid4032 require default stages to be included4033 template_name: "Flutter.gitlab-ci.yml"4034 is expected to be valid4035 require default stages to be included4036 template_name: "Getting-Started.gitlab-ci.yml"4037 is expected to be valid4038 require default stages to be included4039 template_name: "Go.gitlab-ci.yml"4040 is expected to be valid4041 require default stages to be included4042 template_name: "Gradle.gitlab-ci.yml"4043 is expected to be valid4044 require default stages to be included4045 template_name: "Grails.gitlab-ci.yml"4046 is expected to be valid4047 require default stages to be included4048 template_name: "Indeni.Cloudrail.gitlab-ci.yml"4049 is expected to be valid4050 require default stages to be included4051 template_name: "Julia.gitlab-ci.yml"4052 is expected to be valid4053 require default stages to be included4054 template_name: "Kaniko.gitlab-ci.yml"4055 is expected to be valid4056 require default stages to be included4057 template_name: "LaTeX.gitlab-ci.yml"4058 is expected to be valid4059 require default stages to be included4060 template_name: "Laravel.gitlab-ci.yml"4061 is expected to be valid4062 require default stages to be included4063 template_name: "MATLAB.gitlab-ci.yml"4064 is expected to be valid4065 require default stages to be included4066 template_name: "Managed-Cluster-Applications.gitlab-ci.yml"4067 is expected to be valid4068 require default stages to be included4069 template_name: "Maven.gitlab-ci.yml"4070 is expected to be valid4071 require default stages to be included4072 template_name: "Mono.gitlab-ci.yml"4073 is expected to be valid4074 require default stages to be included4075 template_name: "Nodejs.gitlab-ci.yml"4076 is expected to be valid4077 require default stages to be included4078 template_name: "OpenShift.gitlab-ci.yml"4079 is expected to be valid4080 require default stages to be included4081 template_name: "PHP.gitlab-ci.yml"4082 is expected to be valid4083 require default stages to be included4084 template_name: "Packer.gitlab-ci.yml"4085 is expected to be valid4086 require default stages to be included4087 template_name: "Python.gitlab-ci.yml"4088 is expected to be valid4089 require default stages to be included4090 template_name: "Qualys-IaC-Security.gitlab-ci.yml"4091 is expected to be valid4092 require default stages to be included4093 template_name: "Ruby.gitlab-ci.yml"4094 is expected to be valid4095 require default stages to be included4096 template_name: "Rust.gitlab-ci.yml"4097 is expected to be valid4098 require default stages to be included4099 template_name: "Scala.gitlab-ci.yml"4100 is expected to be valid4101 require default stages to be included4102 template_name: "Serverless.gitlab-ci.yml"4103 is expected to be valid4104 require default stages to be included4105 template_name: "Swift.gitlab-ci.yml"4106 is expected to be valid4107 require default stages to be included4108 template_name: "dotNET.gitlab-ci.yml"4109 is expected to be valid4110 require default stages to be included4111 template_name: "dotNET-Core.gitlab-ci.yml"4112 is expected to be valid4113 require default stages to be included4114 template_name: "iOS-Fastlane.gitlab-ci.yml"4115 is expected to be valid4116 require default stages to be included4117 template_name: "liquibase.gitlab-ci.yml"4118 is expected to be valid4119 require default stages to be included4120 template_name: "npm.gitlab-ci.yml"4121 is expected to be valid4122 require default stages to be included4123 template_name: "Pages/Brunch.gitlab-ci.yml"4124 is expected to be valid4125 require default stages to be included4126 template_name: "Pages/Doxygen.gitlab-ci.yml"4127 is expected to be valid4128 require default stages to be included4129 template_name: "Pages/Gatsby.gitlab-ci.yml"4130 is expected to be valid4131 require default stages to be included4132 template_name: "Pages/HTML.gitlab-ci.yml"4133 is expected to be valid4134 require default stages to be included4135 template_name: "Pages/Harp.gitlab-ci.yml"4136 is expected to be valid4137 require default stages to be included4138 template_name: "Pages/Hexo.gitlab-ci.yml"4139 is expected to be valid4140 require default stages to be included4141 template_name: "Pages/Hugo.gitlab-ci.yml"4142 is expected to be valid4143 require default stages to be included4144 template_name: "Pages/Hyde.gitlab-ci.yml"4145 is expected to be valid4146 require default stages to be included4147 template_name: "Pages/JBake.gitlab-ci.yml"4148 is expected to be valid4149 require default stages to be included4150 template_name: "Pages/Jekyll.gitlab-ci.yml"4151 is expected to be valid4152 require default stages to be included4153 template_name: "Pages/Jigsaw.gitlab-ci.yml"4154 is expected to be valid4155 require default stages to be included4156 template_name: "Pages/Lektor.gitlab-ci.yml"4157 is expected to be valid4158 require default stages to be included4159 template_name: "Pages/Metalsmith.gitlab-ci.yml"4160 is expected to be valid4161 require default stages to be included4162 template_name: "Pages/Middleman.gitlab-ci.yml"4163 is expected to be valid4164 require default stages to be included4165 template_name: "Pages/Nanoc.gitlab-ci.yml"4166 is expected to be valid4167 require default stages to be included4168 template_name: "Pages/Octopress.gitlab-ci.yml"4169 is expected to be valid4170 require default stages to be included4171 template_name: "Pages/Pelican.gitlab-ci.yml"4172 is expected to be valid4173 require default stages to be included4174 template_name: "Pages/SwaggerUI.gitlab-ci.yml"4175 is expected to be valid4176 require default stages to be included4177 template_name: "Verify/Accessibility.gitlab-ci.yml"4178 is expected to be valid4179 require default stages to be included4180 template_name: "Verify/Browser-Performance.gitlab-ci.yml"4181 is expected to be valid4182 require default stages to be included4183 template_name: "Verify/FailFast.gitlab-ci.yml"4184 is expected to be valid4185 require default stages to be included4186 template_name: "Verify/Load-Performance-Testing.gitlab-ci.yml"4187 is expected to be valid4188 require default stages to be included4189 template_name: "Security/Cluster-Image-Scanning.gitlab-ci.yml"4190 is expected to be valid4191 require default stages to be included4192 template_name: "Security/Container-Scanning.gitlab-ci.yml"4193 is expected to be valid4194 require default stages to be included4195 template_name: "Security/Coverage-Fuzzing.gitlab-ci.yml"4196 is expected to be valid4197 require default stages to be included4198 template_name: "Security/DAST-On-Demand-API-Scan.gitlab-ci.yml"4199 is expected to be valid4200 require default stages to be included4201 template_name: "Security/DAST-On-Demand-Scan.gitlab-ci.yml"4202 is expected to be valid4203 require default stages to be included4204 template_name: "Security/DAST-Runner-Validation.gitlab-ci.yml"4205 is expected to be valid4206 require default stages to be included4207 template_name: "Security/Dependency-Scanning.gitlab-ci.yml"4208 is expected to be valid4209 require default stages to be included4210 template_name: "Security/License-Scanning.gitlab-ci.yml"4211 is expected to be valid4212 require default stages to be included4213 template_name: "Security/SAST.gitlab-ci.yml"4214 is expected to be valid4215 require default stages to be included4216 template_name: "Security/Secret-Detection.gitlab-ci.yml"4217 is expected to be valid4218 require default stages to be included4219 template_name: "Security/Secure-Binaries.gitlab-ci.yml"4220 is expected to be valid4221 require default stages to be included4222 when including unavailable templates in a CI YAML configuration4223 template_name: "Terraform.gitlab-ci.yml"4224 is expected not to be valid4225 that do not support autodevops4226 when DAST API template4227 with default stages4228 is expected not to be valid4229 with defined stages4230 is expected to be valid4231 require default stages to be included4232 when API Fuzzing template4233 with default stages4234 is expected not to be valid4235 with defined stages4236 is expected to be valid4237 require default stages to be included4238Milestone Milestoneish4239 #sorted_issues4240 sorts issues by label priority4241 limits issue count and keeps the ordering4242 with attributes visibility4243 #issue_participants_visible_by_user4244 visibility: :public, user_role: nil, result: [:member]4245 returns the proper participants4246 visibility: :public, user_role: :non_member, result: [:member]4247 returns the proper participants4248 visibility: :public, user_role: :guest, result: [:member]4249 returns the proper participants4250 visibility: :public, user_role: :member, result: [:member, :assignee]4251 returns the proper participants4252 visibility: :internal, user_role: nil, result: []4253 returns the proper participants4254 visibility: :internal, user_role: :non_member, result: [:member]4255 returns the proper participants4256 visibility: :internal, user_role: :guest, result: [:member]4257 returns the proper participants4258 visibility: :internal, user_role: :member, result: [:member, :assignee]4259 returns the proper participants4260 visibility: :private, user_role: nil, result: []4261 returns the proper participants4262 visibility: :private, user_role: :non_member, result: []4263 returns the proper participants4264 visibility: :private, user_role: :guest, result: [:member]4265 returns the proper participants4266 visibility: :private, user_role: :member, result: [:member, :assignee]4267 returns the proper participants4268 #issue_labels_visible_by_user4269 visibility: :public, user_role: nil, result: [:label1]4270 returns the proper participants4271 visibility: :public, user_role: :non_member, result: [:label1]4272 returns the proper participants4273 visibility: :public, user_role: :guest, result: [:label1]4274 returns the proper participants4275 visibility: :public, user_role: :member, result: [:label1, :label2]4276 returns the proper participants4277 visibility: :internal, user_role: nil, result: []4278 returns the proper participants4279 visibility: :internal, user_role: :non_member, result: [:label1]4280 returns the proper participants4281 visibility: :internal, user_role: :guest, result: [:label1]4282 returns the proper participants4283 visibility: :internal, user_role: :member, result: [:label1, :label2]4284 returns the proper participants4285 visibility: :private, user_role: nil, result: []4286 returns the proper participants4287 visibility: :private, user_role: :non_member, result: []4288 returns the proper participants4289 visibility: :private, user_role: :guest, result: [:label1]4290 returns the proper participants4291 visibility: :private, user_role: :member, result: [:label1, :label2]4292 returns the proper participants4293 #sorted_merge_requests4294 sorts merge requests by label priority4295 #merge_requests_visible_to_user4296 when project is private4297 does not return any merge request for a non member4298 returns milestone merge requests for a member4299 when project is public4300 when merge requests are available to anyone4301 returns milestone merge requests for a non member4302 when merge requests are available to project members4303 does not return any merge request for a non member4304 returns milestone merge requests for a member4305 when milestone is at parent level group4306 does not return any merge request for a non member4307 returns milestone merge requests for a member4308 #complete?4309 returns false when has items opened4310 returns true when all items are closed4311 #percent_complete4312 with division by zero4313 is expected to eq 04314 #closed_issues_count4315 counts all closed issues including confidential4316 #total_issues_count4317 counts all issues including confidential4318 #total_merge_requests_count4319 counts merge requests4320 #remaining_days4321 shows 0 if no due date4322 shows 0 if expired4323 shows correct remaining days4324 #elapsed_days4325 shows 0 if no start_date set4326 shows 0 if start_date is a future4327 shows correct amount of days4328 #total_time_spent4329 calculates total time spent4330 includes merge request time spent4331 #human_total_time_spent4332 returns nil if no time has been spent4333 #total_time_estimate4334 calculates total estimate4335 includes merge request time estimate4336 #human_total_time_estimate4337 returns nil if no time has been spent4338Ci::Ref4339 is expected to belong to project required: false4340 state machine transitions4341 unlock artifacts transition4342 pipline is locked4343 initial_state: :unknown, action: :succeed!, count: 14344 when transitioning states4345 calls unlock artifacts service4346 initial_state: :unknown, action: :do_fail!, count: 04347 when transitioning states4348 calls unlock artifacts service4349 initial_state: :success, action: :succeed!, count: 14350 when transitioning states4351 calls unlock artifacts service4352 initial_state: :success, action: :do_fail!, count: 04353 when transitioning states4354 calls unlock artifacts service4355 initial_state: :failed, action: :succeed!, count: 14356 when transitioning states4357 calls unlock artifacts service4358 initial_state: :failed, action: :do_fail!, count: 04359 when transitioning states4360 calls unlock artifacts service4361 initial_state: :fixed, action: :succeed!, count: 14362 when transitioning states4363 calls unlock artifacts service4364 initial_state: :fixed, action: :do_fail!, count: 04365 when transitioning states4366 calls unlock artifacts service4367 initial_state: :broken, action: :succeed!, count: 14368 when transitioning states4369 calls unlock artifacts service4370 initial_state: :broken, action: :do_fail!, count: 04371 when transitioning states4372 calls unlock artifacts service4373 initial_state: :still_failing, action: :succeed, count: 14374 when transitioning states4375 calls unlock artifacts service4376 initial_state: :still_failing, action: :do_fail, count: 04377 when transitioning states4378 calls unlock artifacts service4379 pipeline is unlocked4380 does not call unlock artifacts service4381 .ensure_for4382 when pipeline is a branch pipeline4383 behaves like ensures ci_ref4384 when ci_ref already exists4385 returns an existing ci_ref4386 when ci_ref does not exist yet4387 creates a new ci_ref4388 when pipeline is a tag pipeline4389 behaves like ensures ci_ref4390 when ci_ref already exists4391 returns an existing ci_ref4392 when ci_ref does not exist yet4393 creates a new ci_ref4394 when pipeline is a detached merge request pipeline4395 behaves like ensures ci_ref4396 when ci_ref already exists4397 returns an existing ci_ref4398 when ci_ref does not exist yet4399 creates a new ci_ref4400 #last_finished_pipeline_id4401 when there are no finished pipelines4402 returns nil4403 when there are finished pipelines4404 returns the pipeline id4405 when the pipeline a dangling pipeline4406 returns nil4407 #update_status_by!4408 when pipeline status is success or failed4409 pipeline_status: :success, current_ref_status: :unknown, expected_ref_status: :success4410 transitions the status via state machine4411 pipeline_status: :success, current_ref_status: :success, expected_ref_status: :success4412 transitions the status via state machine4413 pipeline_status: :success, current_ref_status: :failed, expected_ref_status: :fixed4414 transitions the status via state machine4415 pipeline_status: :success, current_ref_status: :fixed, expected_ref_status: :success4416 transitions the status via state machine4417 pipeline_status: :success, current_ref_status: :broken, expected_ref_status: :fixed4418 transitions the status via state machine4419 pipeline_status: :success, current_ref_status: :still_failing, expected_ref_status: :fixed4420 transitions the status via state machine4421 pipeline_status: :failed, current_ref_status: :unknown, expected_ref_status: :failed4422 transitions the status via state machine4423 pipeline_status: :failed, current_ref_status: :success, expected_ref_status: :broken4424 transitions the status via state machine4425 pipeline_status: :failed, current_ref_status: :failed, expected_ref_status: :still_failing4426 transitions the status via state machine4427 pipeline_status: :failed, current_ref_status: :fixed, expected_ref_status: :broken4428 transitions the status via state machine4429 pipeline_status: :failed, current_ref_status: :broken, expected_ref_status: :still_failing4430 transitions the status via state machine4431 pipeline_status: :failed, current_ref_status: :still_failing, expected_ref_status: :still_failing4432 transitions the status via state machine4433 when pipeline status is success4434 updates the status4435 when pipeline status is canceled4436 is expected to eq :unknown4437 when pipeline status is skipped4438 behaves like no-op4439 does nothing and returns nil4440 when pipeline status is not complete4441 behaves like no-op4442 does nothing and returns nil4443 when pipeline is not the latest pipeline4444 behaves like no-op4445 does nothing and returns nil4446 when pipeline does not belong to the ci_ref4447 behaves like no-op4448 does nothing and returns nil4449 loose foreign key on ci_refs.project_id4450 behaves like cleanup by a loose foreign key4451 cleans up (delete or nullify) the model4452Gitlab::Ci::Status::Pipeline::Factory4453 when pipeline has a core status4454 when core status is created4455 matches correct core status for created4456 does not match extended statuses4457 fabricates a core status created4458 extends core status with common pipeline methods4459 when core status is waiting_for_resource4460 matches correct core status for waiting_for_resource4461 does not match extended statuses4462 fabricates a core status waiting_for_resource4463 extends core status with common pipeline methods4464 when core status is preparing4465 matches correct core status for preparing4466 does not match extended statuses4467 fabricates a core status preparing4468 extends core status with common pipeline methods4469 when core status is pending4470 matches correct core status for pending4471 does not match extended statuses4472 fabricates a core status pending4473 extends core status with common pipeline methods4474 when core status is running4475 matches correct core status for running4476 does not match extended statuses4477 fabricates a core status running4478 extends core status with common pipeline methods4479 when core status is success4480 matches correct core status for success4481 does not match extended statuses4482 fabricates a core status success4483 extends core status with common pipeline methods4484 when core status is failed4485 matches correct core status for failed4486 does not match extended statuses4487 fabricates a core status failed4488 extends core status with common pipeline methods4489 when core status is canceled4490 matches correct core status for canceled4491 does not match extended statuses4492 fabricates a core status canceled4493 extends core status with common pipeline methods4494 when core status is skipped4495 matches correct core status for skipped4496 does not match extended statuses4497 fabricates a core status skipped4498 extends core status with common pipeline methods4499 when core status is manual4500 matches manual core status4501 matches a correct extended statuses4502 extends core status with common pipeline methods4503 when core status is scheduled4504 matches scheduled core status4505 matches a correct extended statuses4506 extends core status with common pipeline methods4507 when pipeline has warnings4508 matches correct core status4509 matches correct extended statuses4510 fabricates extended "success with warnings" status4511 extends core status with common pipeline method4512Ci::PipelineSchedule4513 is expected to belong to project required: false4514 is expected to belong to owner required: false4515 is expected to have many pipelines4516 is expected to have many variables4517 is expected to respond to #ref4518 is expected to respond to #cron4519 is expected to respond to #cron_timezone4520 is expected to respond to #description4521 is expected to respond to #next_run_at4522 behaves like includes Limitable concern4523 validations4524 is expected to be a kind of Limitable4525 without plan limits configured4526 can create new models4527 with plan limits configured4528 can create new models4529 with an existing model4530 cannot create new models exceeding the plan limits4531 behaves like cleanup by a loose foreign key4532 cleans up (delete or nullify) the model4533 validations4534 does not allow invalid cron patterns4535 does not allow invalid cron patterns4536 when active is false4537 does not allow nullified ref4538 when cron contains trailing whitespaces4539 strips the attribute4540 .runnable_schedules4541 returns the runnable schedule4542 when there are no runnable schedules4543 returns an empty array4544 .preloaded4545 preloads the associations4546 .owned_by4547 returns owned pipeline schedules4548 #set_next_run_at4549 worker_cron: "0 1 2 3 *", schedule_cron: "0 1 * * *", plan_limit: nil, now: Tue, 02 Mar 2021 01:00:00.000000000 UTC +00:00, result: Wed, 02 Mar 2022 01:00:00.000000000 UTC +00:004550 updates next_run_at4551 worker_cron: "0 1 2 3 *", schedule_cron: "0 1 * * *", plan_limit: 24, now: Tue, 02 Mar 2021 01:00:00.000000000 UTC +00:00, result: Wed, 02 Mar 2022 01:00:00.000000000 UTC +00:004552 updates next_run_at4553 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: nil, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 11:05:00.000000000 UTC +00:004554 updates next_run_at4555 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: 24, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 12:00:00.000000000 UTC +00:004556 updates next_run_at4557 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: 144, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 11:10:00.000000000 UTC +00:004558 updates next_run_at4559 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: 200, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 11:10:00.000000000 UTC +00:004560 updates next_run_at4561 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: nil, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 12:05:00.000000000 UTC +00:004562 updates next_run_at4563 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: 144, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 12:00:00.000000000 UTC +00:004564 updates next_run_at4565 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: 24, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 12:00:00.000000000 UTC +00:004566 updates next_run_at4567 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: 12, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, result: Thu, 27 May 2021 12:05:00.000000000 UTC +00:004568 updates next_run_at4569 worker_cron: "*/5 * * * *", schedule_cron: "0 1 * * *", plan_limit: 24, now: Thu, 27 May 2021 01:00:00.000000000 UTC +00:00, result: Fri, 28 May 2021 01:00:00.000000000 UTC +00:004570 updates next_run_at4571 worker_cron: "*/5 * * * *", schedule_cron: "0 1 * * *", plan_limit: 144, now: Thu, 27 May 2021 01:00:00.000000000 UTC +00:00, result: Fri, 28 May 2021 01:00:00.000000000 UTC +00:004572 updates next_run_at4573 worker_cron: "*/5 * * * *", schedule_cron: "0 1 * * *", plan_limit: 180, now: Thu, 27 May 2021 01:00:00.000000000 UTC +00:00, result: Fri, 28 May 2021 01:00:00.000000000 UTC +00:004574 updates next_run_at4575 worker_cron: "*/5 * * * *", schedule_cron: "0 1 1 * *", plan_limit: 24, now: Sat, 01 May 2021 01:00:00.000000000 UTC +00:00, result: Tue, 01 Jun 2021 01:00:00.000000000 UTC +00:004576 updates next_run_at4577 worker_cron: "*/9 * * * *", schedule_cron: "0 1 1 * *", plan_limit: 24, now: Sat, 01 May 2021 01:09:00.000000000 UTC +00:00, result: Tue, 01 Jun 2021 01:00:00.000000000 UTC +00:004578 updates next_run_at4579 worker_cron: "*/5 * * * *", schedule_cron: "59 14 * * *", plan_limit: 24, now: Sat, 01 May 2021 15:00:00.000000000 UTC +00:00, result: Sun, 02 May 2021 15:00:00.000000000 UTC +00:004580 updates next_run_at4581 worker_cron: "*/5 * * * *", schedule_cron: "45 21 1 2 *", plan_limit: 288, now: Mon, 01 Feb 2021 21:45:00.000000000 UTC +00:00, result: Tue, 01 Feb 2022 21:45:00.000000000 UTC +00:004582 updates next_run_at4583 when there are two different pipeline schedules in different time zones4584 sets different next_run_at4585 #schedule_next_run!4586 updates next_run_at4587 when record is invalid4588 nullifies the next run at4589 #job_variables4590 is expected to contain exactly {:file=>false, :key=>"VARIABLE_1", :public=>false, :value=>"VARIABLE_VALUE"} and {:file=>false, :key=>"VARIABLE_2", :public=>false, :value=>"VARIABLE_VALUE"}4591 #daily_limit4592 when there is no limit4593 is expected to be nil4594 when there is a limit4595 is expected to eq 1444596 #for_tag?4597 when the target is a tag4598 is expected to eq true4599 when the target is a branch4600 is expected to eq false4601 when there is no ref4602 is expected to eq false4603 #ref_for_display4604 when the target is a tag4605 is expected to eq "v1.0"4606 when the target is a branch4607 is expected to eq "main"4608 when the ref is ambiguous4609 is expected to eq "release-2.8"4610 when there is no ref4611 is expected to eq nil4612 loose foreign key on ci_pipeline_schedules.project_id4613 behaves like cleanup by a loose foreign key4614 cleans up (delete or nullify) the model4615DeployToken4616 is expected to have many project_deploy_tokens4617 is expected to have many projects through project_deploy_tokens4618 is expected to have many group_deploy_tokens4619 is expected to have many groups through group_deploy_tokens4620 is expected to belong to user required: false4621 behaves like having unique enum values4622 has unique values in "deploy_token_type"4623 validations4624 is expected to validate that the length of :username is at most 2554625 is expected to allow :username to be ‹"GitLab+deploy_token-3.14"›4626 is expected not to allow :username to be ‹"<script>"›, producing a custom validation error on failure4627 is expected not to allow :username to be ‹""›, producing a custom validation error on failure4628 is expected to validate that :deploy_token_type cannot be empty/falsy4629 deploy_token_type validations4630 when a deploy token is associated to a group4631 does not allow setting a project to it4632 when a deploy token is associated to a project4633 does not allow setting a group to it4634 #ensure_token4635 ensures a token4636 #ensure_at_least_one_scope4637 with at least one scope4638 is valid4639 with no scopes4640 is invalid4641 #valid_for_dependency_proxy?4642 is expected to eq true4643 behaves like invalid group deploy token4644 revoked4645 is expected to eq false4646 expired4647 is expected to eq false4648 project type4649 is expected to eq false4650 insufficient scopes4651 is expected to eq false4652 #has_access_to_group?4653 is expected to eq true4654 behaves like invalid group deploy token4655 revoked4656 is expected to eq false4657 expired4658 is expected to eq false4659 project type4660 is expected to eq false4661 for a sub group4662 is expected to eq true4663 for a different group4664 is expected to eq false4665 #scopes4666 with all the scopes4667 returns scopes assigned to DeployToken4668 with only one scope4669 returns scopes assigned to DeployToken4670 #revoke!4671 updates revoke attribute4672 #active?4673 when it has been revoked4674 returns false4675 when it hasn't been revoked and is not expired4676 returns true4677 when it hasn't been revoked and is expired4678 returns true4679 when it hasn't been revoked and has no expiry4680 returns true4681 #deactivated?4682 when it has been revoked4683 returns true4684 when it hasn't been revoked and is not expired4685 returns false4686 when it hasn't been revoked and is expired4687 returns false4688 when it hasn't been revoked and has no expiry4689 returns false4690 #username4691 persisted records4692 returns a default username if none is set4693 returns the username provided if one is set4694 new records4695 returns nil if no username is set4696 returns the username provided if one is set4697 #holder4698 when the token is of project type4699 returns the relevant holder token4700 when the token is of group type4701 returns the relevant holder token4702 #has_access_to?4703 when a project is not passed in4704 is expected to be falsy4705 when a project is passed in4706 when deploy token is active and related to project4707 is expected to be truthy4708 when deploy token is active but not related to project4709 is expected to be falsy4710 when deploy token is revoked and related to project4711 is expected to be falsy4712 when deploy token is revoked and not related to the project4713 is expected to be falsy4714 and when the token is of group type4715 and the passed-in project does not belong to any group4716 is expected to be falsy4717 and the passed-in project belongs to the token group4718 is true4719 and the passed-in project belongs to a subgroup4720 and the token group is an ancestor (grand-parent) of this group4721 is expected to be truthy4722 and the token group is not ancestor of this group4723 is false4724 and the passed-in project does not belong to the token group4725 is expected to be falsy4726 and the project belongs to a group that is parent of the token group4727 is false4728 and the token is of project type4729 and the passed-in project is the same as the token project4730 is expected to be truthy4731 and the passed-in project is not the same as the token project4732 is expected to be falsey4733 #expires_at4734 when using Forever.date4735 returns nil4736 when using a personalized date4737 returns the personalized date4738 #expires_at=4739 when passing nil4740 assigns Forever.date4741 when passing a value4742 respects the value4743 .gitlab_deploy_token4744 with a gitlab deploy token associated4745 returns the gitlab deploy token4746 with no gitlab deploy token associated4747 returns nil4748 #accessible_projects4749 when a deploy token is associated to a project4750 returns only projects directly associated with the token4751 when a deploy token is associated to a group4752 returns all projects from the group4753Gitlab::Ci::Status::Build::Failed4754 #text4755 does not override status text4756 #icon4757 does not override status icon4758 #group4759 does not override status group4760 #favicon4761 does not override status label4762 #label4763 does not override label4764 #badge_tooltip4765 does override badge_tooltip4766 #status_tooltip4767 does override status_tooltip4768 .matches?4769 with a failed build4770 returns true4771 with any other type of build4772 returns false4773 covers all failure reasons4774 unknown_failure4775 is a valid status4776 script_failure4777 is a valid status4778 api_failure4779 is a valid status4780 stuck_or_timeout_failure4781 is a valid status4782 runner_system_failure4783 is a valid status4784 missing_dependency_failure4785 is a valid status4786 runner_unsupported4787 is a valid status4788 stale_schedule4789 is a valid status4790 job_execution_timeout4791 is a valid status4792 archived_failure4793 is a valid status4794 unmet_prerequisites4795 is a valid status4796 scheduler_failure4797 is a valid status4798 data_integrity_failure4799 is a valid status4800 forward_deployment_failure4801 is a valid status4802 user_blocked4803 is a valid status4804 project_deleted4805 is a valid status4806 ci_quota_exceeded4807 is a valid status4808 pipeline_loop_detected4809 is a valid status4810 no_matching_runner4811 is a valid status4812 trace_size_exceeded4813 is a valid status4814 builds_disabled4815 is a valid status4816 environment_creation_failure4817 is a valid status4818 deployment_rejected4819 is a valid status4820 insufficient_bridge_permissions4821 is a valid status4822 downstream_bridge_project_not_found4823 is a valid status4824 invalid_bridge_trigger4825 is a valid status4826 bridge_pipeline_is_child_pipeline4827 is a valid status4828 downstream_pipeline_creation_failed4829 is a valid status4830 secrets_provider_not_found4831 is a valid status4832 reached_max_descendant_pipelines_depth4833 is a valid status4834 protected_environment_failure4835 is a valid status4836 upstream_bridge_project_not_found4837 is a valid status4838 insufficient_upstream_permissions4839 is a valid status4840 invalid failure message4841 is an invalid status4842Projects::MoveForksService4843 #execute4844 rollbacks changes if transaction fails4845 when moving a root forked project4846 moves the descendant forks4847 updates the fork network4848 when moving a intermediate forked project4849 moves the descendant forks4850 moves the ascendant fork4851 does not update fork network4852 when moving a leaf forked project4853 moves the ascendant fork4854 does not update fork network4855Integrations::Jenkins4856 accessors4857 is expected to respond to #enable_ssl_verification4858 is expected to respond to #enable_ssl_verification?4859 #initialize_properties4860 enables the setting by default4861 does not enable the setting if the record is already persisted4862 does not enable the setting if a custom value was set4863 #fields4864 inserts the checkbox field after the first URL field, or at the end4865 behaves like Integrations::HasWebHook4866 callbacks4867 calls #update_web_hook! when enabled4868 does not call #update_web_hook! when disabled4869 does not call #update_web_hook! when validation fails4870 #hook_url4871 returns a string4872 #hook_ssl_verification4873 returns a boolean4874 delegates to #enable_ssl_verification if the concern is included4875 #update_web_hook!4876 creates or updates a service hook4877 raises an error if the service hook could not be saved4878 does not attempt to save the service hook if there are no changes4879 #execute_web_hook!4880 creates the webhook if necessary and executes it4881 raises an error if the service hook could not be saved4882 username validation4883 when the integration is active4884 when password was not touched4885 is expected not to validate that :username cannot be empty/falsy4886 when password was touched4887 is expected to validate that :username cannot be empty/falsy4888 when password is blank4889 does not validate the username4890 when the integration is inactive4891 is expected not to validate that :username cannot be empty/falsy4892 #hook_url4893 when the jenkins_url has no relative path4894 is expected to eq "http://jenkins.example.com/project/my_project"4895 when the jenkins_url has relative path4896 is expected to eq "http://organization.example.com/jenkins/project/my_project"4897 userinfo is missing and username and password are set4898 is expected to eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"4899 userinfo is provided and username and password are set4900 is expected to eq "http://username:password@organization.example.com/jenkins/project/my_project"4901 userinfo is provided username and password are not set4902 is expected to eq "http://u:p@organization.example.com/jenkins/project/my_project"4903 #test4904 returns the right status4905 #execute4906 invokes the Jenkins API4907 adds default web hook headers to the request4908 request url contains properly serialized username and password4909 Stored password invalidation4910 when a password was previously set4911 resets password if url changed4912 resets password if username is blank4913 does not reset password if username changed4914 does not reset password if new url is set together with password, even if it's the same password4915 resets password if url changed, even if setter called multiple times4916 when no password was previously set4917 saves password if new url is set together with password4918Blob4919 .decorate4920 returns NilClass when given nil4921 .lazy4922 with project4923 behaves like .lazy checks4924 does not fetch blobs when none are accessed4925 fetches all blobs for the same repository when one is accessed4926 does not include blobs from previous requests in later requests4927 with personal snippet4928 behaves like .lazy checks4929 does not fetch blobs when none are accessed4930 fetches all blobs for the same repository when one is accessed4931 does not include blobs from previous requests in later requests4932 with project snippet4933 behaves like .lazy checks4934 does not fetch blobs when none are accessed4935 fetches all blobs for the same repository when one is accessed4936 does not include blobs from previous requests in later requests4937 #data4938 with project4939 behaves like #data checks4940 using a binary blob4941 returns the data as-is4942 using a text blob4943 converts the data to UTF-84944 with personal snippet4945 behaves like #data checks4946 using a binary blob4947 returns the data as-is4948 using a text blob4949 converts the data to UTF-84950 with project snippet4951 behaves like #data checks4952 using a binary blob4953 returns the data as-is4954 using a text blob4955 converts the data to UTF-84956 #external_storage_error?4957 if the blob is stored in LFS4958 when LFS is enabled4959 is expected to be falsy4960 when LFS is not enabled4961 is expected to be truthy4962 if the blob is not stored in LFS4963 is expected to be falsy4964 #stored_externally?4965 if the blob is stored in LFS4966 when LFS is enabled4967 is expected to be truthy4968 when LFS is not enabled4969 is expected to be falsy4970 if the blob is not stored in LFS4971 is expected to be falsy4972 #binary?4973 an lfs object4974 filename: "file.pdf", is_binary: true4975 is expected to eq true4976 filename: "file.md", is_binary: false4977 is expected to eq false4978 filename: "file.txt", is_binary: false4979 is expected to eq false4980 filename: "file.ics", is_binary: false4981 is expected to eq false4982 filename: "file.rb", is_binary: false4983 is expected to eq false4984 filename: "file.exe", is_binary: true4985 is expected to eq true4986 filename: "file.ini", is_binary: false4987 is expected to eq false4988 filename: "file.wtf", is_binary: true4989 is expected to eq true4990 a non-lfs object4991 delegates to binary_in_repo?4992 #symlink?4993 is true for symlinks4994 is false for non-symlinks4995 #executable?4996 is true for executables4997 is false for non-executables4998 #extension4999 returns the extension5000 #file_type5001 returns the file type5002 #simple_viewer5003 when the blob is empty5004 returns an empty viewer5005 when the file represented by the blob is binary5006 returns a download viewer5007 when the file represented by the blob is text-based5008 returns a text viewer5009 #rich_viewer5010 when the blob has an external storage error5011 returns nil5012 when the blob is empty5013 returns nil5014 when the blob is stored externally5015 returns a matching viewer5016 when the blob is binary5017 returns a matching binary viewer5018 when the blob is text-based5019 returns a matching text-based viewer5020 when the blob is video5021 returns a video viewer5022 when the blob is audio5023 returns an audio viewer5024 #auxiliary_viewer5025 when the blob has an external storage error5026 returns nil5027 when the blob is empty5028 returns nil5029 when the blob is stored externally5030 returns a matching viewer5031 when the blob is binary5032 returns nil5033 when the blob is text-based5034 returns a matching text-based viewer5035 #rendered_as_text?5036 when ignoring errors5037 when the simple viewer is text-based5038 is expected to be truthy5039 when the simple viewer is binary5040 is expected to be falsy5041 when not ignoring errors5042 when the viewer has render errors5043 is expected to be falsy5044 when the viewer doesn't have render errors5045 is expected to be truthy5046 policy5047 works with policy5048 when project is nil5049 does not err5050BlobHelper5051 #sanitize_svg_data5052 retains essential elements5053 #edit_blob_button5054 does not render edit button when blob is not text5055 uses the passed blob instead retrieve from repository5056 returns a link with the proper route5057 returns a link with the passed link_opts on the expected route5058 #relative_raw_path5059 pointing from '/file.md' to '/-/raw/main/'5060 pointing from '/test/file.md' to '/-/raw/main/test/'5061 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'5062 viewer related5063 #blob_render_error_reason5064 for error :too_large5065 when the blob size is larger than the absolute size limit5066 returns an error message5067 when the blob size is larger than the size limit5068 returns an error message5069 for error :server_side_but_stored_externally5070 returns an error message5071 #blob_render_error_options5072 for error :collapsed5073 includes a "load it anyway" link5074 for error :too_large5075 does not include a "load it anyway" link5076 includes a "download it" link5077 when the viewer is rich5078 the blob is rendered as text5079 includes a "view the source" link5080 the blob is not rendered as text5081 does not include a "view the source" link5082 when the viewer is not rich5083 does not include a "view the source" link5084 for error :server_side_but_stored_externally5085 does not include a "load it anyway" link5086 does not include a "view the source" link5087 includes a "download it" link5088 #show_suggest_pipeline_creation_celebration?5089 when file is a pipeline config file5090 is true5091 file is invalid format5092 is false5093 does not use the default ci config5094 is false5095 does not have the needed cookie5096 is false5097 blob does not have auxiliary view5098 is false5099 when file is not a pipeline config file5100 is false5101 suggest_pipeline_commit_cookie_name5102 uses project id to make up the cookie name5103 #ide_edit_path5104 returns full IDE path5105 returns full IDE path with second -5106 returns IDE path without relative_url_root5107 escapes special characters5108 does not escape "/" character5109 when user is not logged in5110 returns IDE path inside the project5111 when user cannot push to the project5112 returns IDE path with the user's fork5113 #ide_merge_request_path5114 returns IDE path for the given MR if MR is not merged5115 when the MR comes from a fork5116 returns IDE path for MR in the forked repo with target project included as param5117 when the MR is merged5118 returns default IDE url with master branch5119 includes file path passed5120 when target branch exists5121 returns IDE edit url with the target branch5122 #ide_fork_and_edit_path5123 returns path to fork the repo with a redirect param to the full IDE path5124 does not include notice params with_notice: false5125 when user is not logged in5126 returns nil5127 #fork_and_edit_path5128 returns path to fork the repo with a redirect param to the full edit path5129 when user is not logged in5130 returns nil5131 #editing_ci_config?5132 when path is nil5133 is expected to be falsey5134 when path is not a ci file5135 is expected to be falsey5136 when path ends is gitlab-ci.yml5137 is expected to be truthy5138 when path ends with gitlab-ci.yml5139 is expected to be truthy5140 with custom ci paths5141 is expected to be truthy5142 with custom ci config and path5143 is expected to be truthy5144Projects::DetectRepositoryLanguagesService5145 #execute5146 without previous detection5147 inserts new programming languages in the database5148 inserts the repository langauges5149 updates detected_repository_languages flag5150 with a previous detection5151 updates the repository languages5152 doesn't touch detected_repository_languages flag5153 when no repository exists5154 has no languages5155ApplicationHelper5156 current_controller?5157 returns true when controller matches argument5158 returns false when controller does not match argument5159 takes any number of arguments5160 when namespaced5161 returns true when controller matches argument5162 returns true when controller and namespace matches argument in path notation5163 returns false when namespace doesnt match5164 current_action?5165 returns true when action matches5166 returns false when action does not match5167 takes any number of arguments5168 #admin_section?5169 when controller is under the admin namespace5170 returns true5171 when controller is not under the admin namespace5172 returns true5173 simple_sanitize5174 allows the a tag5175 allows the span tag5176 disallows other tags5177 time_ago_with_tooltip5178 returns a time element5179 includes the date string5180 has a datetime attribute5181 has a formatted title attribute5182 includes a default js-timeago class5183 accepts a custom html_class5184 accepts a custom tooltip placement5185 converts to Time5186 add class for the short format5187 #active_when5188 is expected to eq "active"5189 is expected to eq nil5190 #promo_host5191 returns the url5192 #promo_url5193 returns the url5194 changes if promo_host changes5195 #support_url5196 when alternate support url is specified5197 returns the alternate support url5198 when alternate support url is not specified5199 builds the support url from the promo_url5200 #instance_review_permitted?5201 app_setting: true, is_admin: true5202 is expected to equal true5203 app_setting: true, is_admin: false5204 is expected to equal false5205 app_setting: true, is_admin: nil5206 is expected to equal nil5207 app_setting: false, is_admin: true5208 is expected to equal false5209 app_setting: false, is_admin: false5210 is expected to equal false5211 app_setting: false, is_admin: nil5212 is expected to equal false5213 #locale_path5214 returns the locale path with an `_`5215 #client_class_list5216 returns string containing CSS classes representing client browser and platform5217 #client_js_flags5218 returns map containing JS flags representing client browser and platform5219 #page_startup_api_calls5220 returns map containing JS Page Startup Calls5221 #autocomplete_data_sources5222 group5223 returns paths for autocomplete_sources_controller5224 project5225 returns paths for autocomplete_sources_controller5226 #external_storage_url_or_path5227 when external storage is disabled5228 returns the passed path5229 when @snippet is set5230 returns the passed path5231 when external storage is enabled5232 returns the external storage URL prepended to the path5233 preserves the path query parameters5234 when project is public5235 returns does not append a token parameter5236 #body_data5237 when @project is not set5238 does not include project data in the body data elements5239 when @group is set5240 sets group in the body data elements5241 when @project is set5242 includes all possible body data elements and associates the project elements with project5243 when @project is owned by a group5244 includes all possible body data elements and associates the project elements with project5245 when controller is issues5246 when params[:id] is present and the issue exsits and action_name is show5247 sets all project and id elements correctly related to the issue5248 when current_user has download_code permission5249 returns find_file with the default branch5250 #gitlab_ui_form_for5251 adds custom form builder to options and calls `form_for`5252 #page_class5253 when logged_out_marketing_header experiment is enabled5254 when candidate5255 is expected to include "logged-out-marketing-header-candidate"5256 when candidate (:trial_focused variant)5257 is expected to include "logged-out-marketing-header-candidate"5258 when control5259 is expected not to include "logged-out-marketing-header-candidate"5260 when a user is logged in5261 is expected not to include "logged-out-marketing-header-candidate"5262 #dispensable_render5263 when an error occurs in the template to be rendered5264 calls `track_and_raise_for_dev_exception`5265 for development environment5266 raises an error5267 for production environments5268 returns nil5269 when the feature flag is disabled5270 raises an error5271 when no error occurs in the template to be rendered5272 does not track or raise and returns the rendered content5273 #dispensable_render_if_exists5274 when an error occurs in the template to be rendered5275 calls `track_and_raise_for_dev_exception`5276 for development environment5277 raises an error5278 for production environments5279 returns nil5280 when the feature flag is disabled5281 raises an error5282 when no error occurs in the template to be rendered5283 does not track or raise5284ContainerRegistry::GitlabApiClient5285 #supports_gitlab_api?5286 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5287 returns the expected result5288 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true5289 returns the expected result5290 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5291 returns the expected result5292 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5293 returns the expected result5294 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5295 returns the expected result5296 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false5297 returns the expected result5298 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5299 returns the expected result5300 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5301 returns the expected result5302 with 401 response5303 is expected to be truthy5304 #pre_import_repository5305 status_code: 200, expected_result: :already_imported5306 is expected to eq :already_imported5307 status_code: 202, expected_result: :ok5308 is expected to eq :ok5309 status_code: 400, expected_result: :bad_request5310 is expected to eq :bad_request5311 status_code: 401, expected_result: :unauthorized5312 is expected to eq :unauthorized5313 status_code: 404, expected_result: :not_found5314 is expected to eq :not_found5315 status_code: 409, expected_result: :already_being_imported5316 is expected to eq :already_being_imported5317 status_code: 418, expected_result: :error5318 is expected to eq :error5319 status_code: 424, expected_result: :pre_import_failed5320 is expected to eq :pre_import_failed5321 status_code: 425, expected_result: :already_being_imported5322 is expected to eq :already_being_imported5323 status_code: 429, expected_result: :too_many_imports5324 is expected to eq :too_many_imports5325 #import_repository5326 status_code: 200, expected_result: :already_imported5327 is expected to eq :already_imported5328 status_code: 202, expected_result: :ok5329 is expected to eq :ok5330 status_code: 400, expected_result: :bad_request5331 is expected to eq :bad_request5332 status_code: 401, expected_result: :unauthorized5333 is expected to eq :unauthorized5334 status_code: 404, expected_result: :not_found5335 is expected to eq :not_found5336 status_code: 409, expected_result: :already_being_imported5337 is expected to eq :already_being_imported5338 status_code: 418, expected_result: :error5339 is expected to eq :error5340 status_code: 424, expected_result: :pre_import_failed5341 is expected to eq :pre_import_failed5342 status_code: 425, expected_result: :already_being_imported5343 is expected to eq :already_being_imported5344 status_code: 429, expected_result: :too_many_imports5345 is expected to eq :too_many_imports5346 #cancel_repository_import5347 status_code: 200, expected_result: :already_imported5348 is expected to eq {:migration_state=>nil, :status=>:already_imported}5349 status_code: 202, expected_result: :ok5350 is expected to eq {:migration_state=>nil, :status=>:ok}5351 status_code: 400, expected_result: :bad_request5352 is expected to eq {:migration_state=>nil, :status=>:bad_request}5353 status_code: 401, expected_result: :unauthorized5354 is expected to eq {:migration_state=>nil, :status=>:unauthorized}5355 status_code: 404, expected_result: :not_found5356 is expected to eq {:migration_state=>nil, :status=>:not_found}5357 status_code: 409, expected_result: :already_being_imported5358 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}5359 status_code: 418, expected_result: :error5360 is expected to eq {:migration_state=>nil, :status=>:error}5361 status_code: 424, expected_result: :pre_import_failed5362 is expected to eq {:migration_state=>nil, :status=>:pre_import_failed}5363 status_code: 425, expected_result: :already_being_imported5364 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}5365 status_code: 429, expected_result: :too_many_imports5366 is expected to eq {:migration_state=>nil, :status=>:too_many_imports}5367 bad request5368 is expected to eq {:migration_state=>"this_is_a_test", :status=>:bad_request}5369 force cancel5370 is expected to eq {:migration_state=>nil, :status=>:ok}5371 #import_status5372 with successful response5373 with a status5374 is expected to eq "this_is_a_test"5375 with no status5376 is expected to eq "error"5377 with non successful response5378 is expected to eq "pre_import_failed"5379 #repository_details5380 with sizing self5381 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5382 with sizing self_with_descendants5383 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5384 with sizing5385 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5386 with non successful response5387 is expected to eq {}5388 .supports_gitlab_api?5389 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5390 returns the expected result5391 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true5392 returns the expected result5393 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5394 returns the expected result5395 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false5396 returns the expected result5397 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5398 returns the expected result5399 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5400 returns the expected result5401 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5402 returns the expected result5403 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5404 returns the expected result5405 with the registry disabled5406 returns false5407 with a blank registry url5408 returns false5409 .deduplicated_size5410 with successful response5411 is expected to eq 5555412 with unsuccessful response5413 is expected to eq nil5414 with the registry disabled5415 is expected to eq nil5416 with a nil path5417 is expected to eq nil5418Gitlab::DataBuilder::Build5419 .build5420 is expected to be a kind of Hash5421 is expected to eq "master"5422 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"5423 is expected to eq false5424 is expected to eq 8635425 is expected to eq "running"5426 is expected to eq 2022-04-28 08:50:29.000000000 +00005427 is expected to eq 2022-04-28 08:51:29.000000000 +00005428 is expected to eq nil5429 is expected to eq 30240.05430 is expected to eq 60.05431 is expected to eq false5432 is expected to eq "unknown_failure"5433 is expected to eq 12395434 is expected to eq "Sidney Jones2372 / project1358"5435 is expected to eq 7715436 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/214d70ca525c2c25ddf1a14dfcf9f694?s=80&d=identicon", :email=>"user2375@example.org", :id=>2206, :name=>"Sidney Jones2375", :username=>"user1105"}5437 is expected to eq 7735438 is expected to eq 195439 is expected to contain exactly "tag-1" and "tag-2"5440 is expected to eq "My runner21"5441 is expected to eq "instance_type"5442 is expected to eq true5443 is expected to be nil5444 commit author_url5445 when no commit present5446 sets to mailing address of git_author_email5447 when commit present but has no author5448 sets to mailing address of git_author_email5449 when commit and author are present5450 sets to GitLab user url5451 with environment5452 is expected to eq "staging"5453 is expected to eq "stop"5454Gitlab::Ci::Config::Entry::Reports5455 validates ALLOWED_KEYS5456 expects ALLOWED_KEYS to be an artifact file_type or coverage_report5457 validation5458 when entry config value is correct5459 keyword: :junit, file: "junit.xml"5460 when value is an array5461 behaves like a valid entry5462 #value5463 returns artifacts configuration5464 #valid?5465 is valid5466 when value is not array5467 behaves like a valid entry5468 #value5469 returns artifacts configuration5470 #valid?5471 is valid5472 keyword: :codequality, file: "gl-code-quality-report.json"5473 when value is an array5474 behaves like a valid entry5475 #value5476 returns artifacts configuration5477 #valid?5478 is valid5479 when value is not array5480 behaves like a valid entry5481 #value5482 returns artifacts configuration5483 #valid?5484 is valid5485 keyword: :sast, file: "gl-sast-report.json"5486 when value is an array5487 behaves like a valid entry5488 #value5489 returns artifacts configuration5490 #valid?5491 is valid5492 when value is not array5493 behaves like a valid entry5494 #value5495 returns artifacts configuration5496 #valid?5497 is valid5498 keyword: :secret_detection, file: "gl-secret-detection-report.json"5499 when value is an array5500 behaves like a valid entry5501 #value5502 returns artifacts configuration5503 #valid?5504 is valid5505 when value is not array5506 behaves like a valid entry5507 #value5508 returns artifacts configuration5509 #valid?5510 is valid5511 keyword: :dependency_scanning, file: "gl-dependency-scanning-report.json"5512 when value is an array5513 behaves like a valid entry5514 #value5515 returns artifacts configuration5516 #valid?5517 is valid5518 when value is not array5519 behaves like a valid entry5520 #value5521 returns artifacts configuration5522 #valid?5523 is valid5524 keyword: :container_scanning, file: "gl-container-scanning-report.json"5525 when value is an array5526 behaves like a valid entry5527 #value5528 returns artifacts configuration5529 #valid?5530 is valid5531 when value is not array5532 behaves like a valid entry5533 #value5534 returns artifacts configuration5535 #valid?5536 is valid5537 keyword: :cluster_image_scanning, file: "gl-cluster-image-scanning-report.json"5538 when value is an array5539 behaves like a valid entry5540 #value5541 returns artifacts configuration5542 #valid?5543 is valid5544 when value is not array5545 behaves like a valid entry5546 #value5547 returns artifacts configuration5548 #valid?5549 is valid5550 keyword: :dast, file: "gl-dast-report.json"5551 when value is an array5552 behaves like a valid entry5553 #value5554 returns artifacts configuration5555 #valid?5556 is valid5557 when value is not array5558 behaves like a valid entry5559 #value5560 returns artifacts configuration5561 #valid?5562 is valid5563 keyword: :license_scanning, file: "gl-license-scanning-report.json"5564 when value is an array5565 behaves like a valid entry5566 #value5567 returns artifacts configuration5568 #valid?5569 is valid5570 when value is not array5571 behaves like a valid entry5572 #value5573 returns artifacts configuration5574 #valid?5575 is valid5576 keyword: :performance, file: "performance.json"5577 when value is an array5578 behaves like a valid entry5579 #value5580 returns artifacts configuration5581 #valid?5582 is valid5583 when value is not array5584 behaves like a valid entry5585 #value5586 returns artifacts configuration5587 #valid?5588 is valid5589 keyword: :browser_performance, file: "browser-performance.json"5590 when value is an array5591 behaves like a valid entry5592 #value5593 returns artifacts configuration5594 #valid?5595 is valid5596 when value is not array5597 behaves like a valid entry5598 #value5599 returns artifacts configuration5600 #valid?5601 is valid5602 keyword: :browser_performance, file: "performance.json"5603 when value is an array5604 behaves like a valid entry5605 #value5606 returns artifacts configuration5607 #valid?5608 is valid5609 when value is not array5610 behaves like a valid entry5611 #value5612 returns artifacts configuration5613 #valid?5614 is valid5615 keyword: :load_performance, file: "load-performance.json"5616 when value is an array5617 behaves like a valid entry5618 #value5619 returns artifacts configuration5620 #valid?5621 is valid5622 when value is not array5623 behaves like a valid entry5624 #value5625 returns artifacts configuration5626 #valid?5627 is valid5628 keyword: :lsif, file: "lsif.json"5629 when value is an array5630 behaves like a valid entry5631 #value5632 returns artifacts configuration5633 #valid?5634 is valid5635 when value is not array5636 behaves like a valid entry5637 #value5638 returns artifacts configuration5639 #valid?5640 is valid5641 keyword: :dotenv, file: "build.dotenv"5642 when value is an array5643 behaves like a valid entry5644 #value5645 returns artifacts configuration5646 #valid?5647 is valid5648 when value is not array5649 behaves like a valid entry5650 #value5651 returns artifacts configuration5652 #valid?5653 is valid5654 keyword: :cobertura, file: "cobertura-coverage.xml"5655 when value is an array5656 behaves like a valid entry5657 #value5658 returns artifacts configuration5659 #valid?5660 is valid5661 when value is not array5662 behaves like a valid entry5663 #value5664 returns artifacts configuration5665 #valid?5666 is valid5667 keyword: :terraform, file: "tfplan.json"5668 when value is an array5669 behaves like a valid entry5670 #value5671 returns artifacts configuration5672 #valid?5673 is valid5674 when value is not array5675 behaves like a valid entry5676 #value5677 returns artifacts configuration5678 #valid?5679 is valid5680 keyword: :accessibility, file: "gl-accessibility.json"5681 when value is an array5682 behaves like a valid entry5683 #value5684 returns artifacts configuration5685 #valid?5686 is valid5687 when value is not array5688 behaves like a valid entry5689 #value5690 returns artifacts configuration5691 #valid?5692 is valid5693 keyword: :cluster_applications, file: "gl-cluster-applications.json"5694 when value is an array5695 behaves like a valid entry5696 #value5697 returns artifacts configuration5698 #valid?5699 is valid5700 when value is not array5701 behaves like a valid entry5702 #value5703 returns artifacts configuration5704 #valid?5705 is valid5706 when coverage_report is specified5707 is valid5708 returns artifacts configuration5709 and another report is specified5710 is valid5711 returns artifacts configuration5712 and a direct coverage report format is specified5713 is not valid5714 reports error5715 when entry value is not correct5716 #errors5717 when there is an unknown key present5718 reports error5719ContainerRegistry::Migration::EnqueuerWorker5720 #perform5721 with qualified repository5722 starts the pre-import for the next qualified repository5723 when the new pre-import maxes out the capacity5724 does not re-enqueue the worker5725 behaves like re-enqueuing based on capacity5726 below capacity5727 re-enqueues the worker5728 above capacity5729 does not re-enqueue the worker5730 migrations are disabled5731 behaves like no action5732 does not queue or change any repositories5733 above capacity5734 does not re-enqueue the worker5735 behaves like no action5736 does not queue or change any repositories5737 too soon before previous completed import step5738 state: :import_done, timestamp: :migration_import_done_at5739 behaves like no action5740 does not queue or change any repositories5741 state: :pre_import_done, timestamp: :migration_pre_import_done_at5742 behaves like no action5743 does not queue or change any repositories5744 state: :import_aborted, timestamp: :migration_aborted_at5745 behaves like no action5746 does not queue or change any repositories5747 state: :import_skipped, timestamp: :migration_skipped_at5748 behaves like no action5749 does not queue or change any repositories5750 when last completed repository has nil timestamps5751 continues to try the next import5752 when an aborted import is available5753 with a successful registry request5754 retries the import for the aborted repository5755 behaves like re-enqueuing based on capacity5756 below capacity5757 re-enqueues the worker5758 above capacity5759 does not re-enqueue the worker5760 when an error occurs5761 does not abort that migration5762 when no repository qualifies5763 is labeled as idempotent5764 performs multiple times sequentially without raising an exception5765 behaves like no action5766 does not queue or change any repositories5767 over max tag count5768 skips the repository5769 re-enqueuing5770 behaves like re-enqueuing based on capacity5771 below capacity5772 re-enqueues the worker5773 above capacity5774 does not re-enqueue the worker5775 when an error occurs5776 aborts the import5777 with the exclusive lease taken5778 does not perform5779 worker attributes5780 has deduplication set5781Clusters::KnativeServicesFinder5782 #service_pod_details5783 behaves like a cached data5784 has an unintialized cache5785 when using synchronous reactive cache5786 when there are functions for cluster namespace5787 is expected not to be blank5788 when there are no functions for cluster namespace5789 is expected to be blank5790 #services5791 behaves like a cached data5792 has an unintialized cache5793 when using synchronous reactive cache5794 when there are functions for cluster namespace5795 is expected not to be blank5796 when there are no functions for cluster namespace5797 is expected to be blank5798 #knative_detected5799 when knative is installed5800 is expected to be truthy5801 discovers knative installation5802 when knative is not installed5803 is expected to be falsy5804 does not discover knative installation5805ReactiveCaching5806 #with_reactive_cache5807 when cache is empty5808 is expected to be nil5809 updates the cache lifespan5810 behaves like reactive worker call5811 performs caching with correct worker5812 behaves like reactive worker call5813 performs caching with correct worker5814 when the cache is full5815 behaves like a cacheable value5816 is expected to eq 45817 does not enqueue a background worker5818 updates the cache lifespan5819 and expired5820 is expected to be nil5821 behaves like reactive worker call5822 performs caching with correct worker5823 behaves like reactive worker call5824 performs caching with correct worker5825 when the cache contains non-nil but blank value5826 behaves like a cacheable value5827 is expected to eq false5828 does not enqueue a background worker5829 updates the cache lifespan5830 and expired5831 is expected to be nil5832 behaves like reactive worker call5833 performs caching with correct worker5834 behaves like reactive worker call5835 performs caching with correct worker5836 when the cache contains nil value5837 behaves like a cacheable value5838 is expected to eq nil5839 does not enqueue a background worker5840 updates the cache lifespan5841 and expired5842 is expected to be nil5843 behaves like reactive worker call5844 performs caching with correct worker5845 behaves like reactive worker call5846 performs caching with correct worker5847 #with_reactive_cache_set5848 calls with_reactive_cache5849 data returned5850 saves keys in set5851 returns the data5852 .reactive_cache_worker_finder5853 with default reactive_cache_worker_finder5854 calls the activerecord find_by method5855 with custom reactive_cache_worker_finder5856 overrides the default reactive_cache_worker_finder5857 #clear_reactive_cache!5858 is expected to be nil5859 is expected to be falsy5860 #exclusively_update_reactive_cache!5861 when the lease is free and lifetime is not exceeded5862 takes and releases the lease5863 enqueues a repeat worker5864 calls a reactive_cache_updated only once if content did not change on subsequent update5865 does not delete the value key5866 behaves like successful cache5867 caches the result of #calculate_reactive_cache5868WARNING: 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/concerns/reactive_caching_spec.rb:240:in `block (4 levels) in <top (required)>'.5869 does not raise the exception5870 when :external_dependency cache5871 enqueues a repeat worker5872 when reactive_cache_hard_limit is set5873 when cache size is over the overridden limit5874 raises ExceededReactiveCacheLimit exception and does not cache new data5875 when reactive_cache_limit_enabled? is overridden to return false5876 behaves like successful cache5877 caches the result of #calculate_reactive_cache5878WARNING: 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/concerns/reactive_caching_spec.rb:240:in `block (4 levels) in <top (required)>'.5879 does not raise the exception5880 when cache size is within the overridden limit5881 behaves like successful cache5882 caches the result of #calculate_reactive_cache5883WARNING: 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/concerns/reactive_caching_spec.rb:240:in `block (4 levels) in <top (required)>'.5884 does not raise the exception5885 and #calculate_reactive_cache raises an exception5886 leaves the cache untouched5887 does not enqueue a repeat worker5888 when lifetime is exceeded5889 skips the calculation5890 deletes the value key5891 when the lease is already taken5892 skips the calculation5893 default options5894 is expected to be a kind of ActiveSupport::Duration5895 is expected to be a kind of ActiveSupport::Duration5896 is expected to be a kind of ActiveSupport::Duration5897 is expected to respond to #call5898 is expected to be nil5899 is expected to respond to #call5900 classes including this concern5901 sets reactive_cache_work_type5902Clusters::Applications::CheckUninstallProgressService5903 when application is uninstalling5904 behaves like a not yet terminated installation5905 when phase is Pending5906 when not timed_out5907 reschedule a new check5908 behaves like a not yet terminated installation5909 when phase is Running5910 when not timed_out5911 reschedule a new check5912 behaves like a not yet terminated installation5913 when phase is Unknown5914 when not timed_out5915 reschedule a new check5916 when installation POD succeeded5917 removes the installation POD5918 runs application post_uninstall5919 destroys the application5920 an error occurs while destroying5921 still removes the installation POD5922 makes the application uninstall_errored5923 when installation POD failed5924 make the application errored5925 when timed out5926 make the application errored5927 when installation raises a Kubeclient::HttpError5928 logs into kubernetes.log and Sentry5929 shows the response code from the error5930Gitlab::Diff::Rendered::Notebook::DiffFile5931 #old_blob and #new_blob5932 when file is changed5933 transforms the old blob5934 transforms the new blob5935 when file is added5936 old_blob is empty5937 new_blob is transformed5938 when file is removed5939 old_blob is transformed5940 new_blob is empty5941 #diff5942 for valid notebooks5943 returns the transformed diff5944 for invalid notebooks5945 returns nil5946 timeout5947 utilizes timeout for web5948 falls back to nil on timeout5949 utilizes longer timeout for sidekiq5950 #has_renderable?5951 notebook diff is empty5952 is false5953 notebook is valid5954 is true5955 when old blob file is truncated5956 is false5957 when new blob file is truncated5958 is false5959 #highlighted_diff_lines?5960 when line transformed line is not part of the diff5961 line is not discussable5962 when line transformed line part of the diff5963 line is not discussable5964 assigns the correct position5965 computes de first line where the remove would appear5966Namespaces::InProductMarketingEmailsService#execute5967 records sent emails5968 for each track and series with the right conditions5969 track: :create, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5970 is expected to send in product marketing email 2383, 3978, :create, and 05971 track: :create, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}5972 is expected to send in product marketing email 2383, 3978, :create, and 15973 track: :create, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}5974 is expected to send in product marketing email 2383, 3978, :create, and 25975 track: :team_short, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5976 is expected to send in product marketing email 2383, 3978, :team_short, and 05977 track: :trial_short, interval: 2, actions_completed: {:created_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00}5978 is expected to send in product marketing email 2383, 3978, :trial_short, and 05979 track: :admin_verify, interval: 3, actions_completed: {:created_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00}5980 is expected to send in product marketing email 2383, 3978, :admin_verify, and 05981 track: :verify, interval: 4, actions_completed: {:created_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00}5982 is expected to send in product marketing email 2383, 3978, :verify, and 05983 track: :verify, interval: 8, actions_completed: {:created_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00}5984 is expected to send in product marketing email 2383, 3978, :verify, and 15985 track: :verify, interval: 13, actions_completed: {:created_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00}5986 is expected to send in product marketing email 2383, 3978, :verify, and 25987 track: :trial, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5988 is expected to send in product marketing email 2383, 3978, :trial, and 05989 track: :trial, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}5990 is expected to send in product marketing email 2383, 3978, :trial, and 15991 track: :trial, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}5992 is expected to send in product marketing email 2383, 3978, :trial, and 25993 track: :team, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5994 is expected to send in product marketing email 2383, 3978, :team, and 05995 track: :team, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}5996 is expected to send in product marketing email 2383, 3978, :team, and 15997 track: :team, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}5998 is expected to send in product marketing email 2383, 3978, :team, and 25999 track: :experience, interval: 30, actions_completed: {:created_at=>Sat, 20 Feb 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Feb 2021 10:14:40.000000000 UTC +00:00}6000 is expected to send in product marketing email 2383, 3978, :experience, and 06001 when initialized with a different track6002 is expected not to send in product marketing email6003 when the previous track actions have been completed6004 is expected to send in product marketing email 2383, 3978, :team_short, and 06005 when initialized with a different interval6006 is expected not to send in product marketing email6007 when the previous track action was completed within the intervals range6008 is expected to send in product marketing email 2383, 3978, :create, and 16009 when the previous track action is not yet completed6010 is expected not to send in product marketing email6011 when the previous track action is completed outside the intervals range6012 is expected not to send in product marketing email6013 when the current track action is completed6014 is expected not to send in product marketing email6015 when the user cannot perform the current track's action6016 is expected not to send in product marketing email6017 when the user has not opted into marketing emails6018 is expected not to send in product marketing email6019 do not send emails twice6020 when user already got a specific email6021 is expected not to send in product marketing email 2385, anything, :create, and 06022 when user already got sent the whole track6023 does not send any of the emails anymore6024 when user is in two groups6025 when both groups would get the same email6026 does not send the same email twice6027 when other group gets a different email6028 sends both emails6029 when invoked with a non existing track6030 is expected to raise ArgumentError with "Track foo not defined"6031 when group is a sub-group6032 does not raise an exception6033Mutations::Issues::SetAssignees6034 when the user does not have permissions6035 #resolve6036 behaves like permission level for issue mutation is correctly verified6037 when the user is not a project member6038 behaves like when the user does not have access to the resource6039 raises an error6040 even if assigned to the issue6041 does not modify issue6042 even if author of the issue6043 does not modify issue6044 when the user is a project member6045 with guest role6046 behaves like when the user does not have access to the resource6047 raises an error6048 even if assigned to the issue6049 does not modify issue6050 even if author of the issue6051 does not modify issue6052 behaves like an assignable resource6053 #resolve6054 raises an error if the resource is not accessible to the user6055 does not change assignees if the resource is not accessible to the assignees6056 returns an operational error if the resource is not accessible to the assignees6057 when the user can update the resource6058 replaces the assignee6059 returns errors when resource could not be updated6060 when passing an empty assignee list6061 removes all assignees6062 when passing "append" as true6063 is a NO-OP in FOSS6064 when passing "remove" as true6065 removes named assignee6066 does not remove unnamed assignee6067ContainerRegistry::Path6068 #components6069 splits components by a forward slash6070 #nodes6071 when repository path is valid6072 return all project path like node in reverse order6073 when repository path is invalid6074 rasises en error6075 #to_s6076 when path does not have uppercase characters6077 return a string with a repository path6078 when path has uppercase characters6079 return a string with a repository path6080 #valid?6081 when path has less than two components6082 is expected not to be valid6083 when path has more than allowed number of components6084 is expected not to be valid6085 when path has invalid characters6086 is expected not to be valid6087 when path has two or more components6088 is expected to be valid6089 when path is related to multi-level image6090 is expected to be valid6091 when path contains uppercase letters6092 is expected to be valid6093 when path contains double underscore6094 is expected to be valid6095 when path contains invalid separator with dot6096 is expected not to be valid6097 when path contains invalid separator with underscore6098 is expected not to be valid6099 #has_repository?6100 when project exists6101 when path already has matching repository6102 is expected to have repository6103 is expected to have project6104 when path does not have matching repository6105 is expected not to have repository6106 is expected to have project6107 when project does not exist6108 is expected not to have repository6109 is expected not to have project6110 #repository_project6111 when project for given path exists6112 returns a correct project6113 when project for given path does not exist6114 returns nil6115 when matching multi-level path6116 when using the zero-level path6117 supports zero-level path6118 when using first-level path6119 supports first-level path6120 when using second-level path6121 supports second-level path6122 when using too deep nesting in the path6123 does not support three-levels of nesting6124 #repository_name6125 when project does not exist6126 returns nil6127 when project exists6128 when project path equal repository path6129 returns an empty string6130 when repository path has one additional level6131 returns a correct repository name6132 when repository path has two additional levels6133 returns a correct repository name6134 #project_path6135 when project does not exist6136 returns nil6137 when project with uppercase characters in path exists6138 returns downcased project path6139Issues::ExportCsvService6140 renders csv to string6141 #email6142 emails csv6143 renders with a target filesize6144 includes6145 includes the columns required for import6146 returns two issues6147 iid6148 url6149 title6150 state6151 description6152 author name6153 author username6154 assignee name6155 assignee username6156 confidential6157 milestone6158 labels6159 due_date6160 created_at6161 updated_at6162 closed_at6163 discussion_locked6164 weight6165 time estimate6166 time spent6167 with issues filtered by labels and project6168 returns only filtered objects6169 with label links6170 does not run a query for each label link6171 returns the labels in sorted order6172 with minimal details6173 renders labels as nil6174DeclarativePolicy authorization in GraphQL6175 Field authorizations6176 with a single permission6177 returns the protected field when user has permission6178 returns nil when user is not authorized6179 with a collection of permissions6180 returns the protected field when user has all permissions6181 returns nil when user only has one of the permissions6182 returns nil when user only has the other of the permissions6183 returns nil when user has neither of the required permissions6184 Field authorizations when field is a built in type6185 with a single permission6186 returns the protected field when user has permission6187 returns nil when user is not authorized6188 with a collection of permissions6189 returns the protected field when user has all permissions6190 returns nil when user only has one of the permissions6191 returns nil when user only has none of the permissions6192 Type authorizations6193 with a single permission6194 returns the protected field when user has permission6195 returns nil when user is not authorized6196 with a collection of permissions6197 returns the protected field when user has all permissions6198 returns nil when user only has one of the permissions6199 returns nil when user only has the other of the permissions6200 returns nil when user has neither of the required permissions6201 type and field authorizations together6202 returns the protected field when user has all permissions6203 returns nil when user only has one of the permissions6204 returns nil when user only has the other of the permissions6205 returns nil when user has neither of the required permissions6206 resolver and field authorizations together6207 when the resolver authorizes the object6208 returns the protected field when user has all permissions6209 returns nil when user only has one of the permissions6210 returns nil when user only has the other of the permissions6211 returns nil when user has neither of the required permissions6212 when the resolver does not authorize the object, but instead calls authorized_find!6213 returns the protected field when user has all permissions6214 returns nil when user only has one of the permissions6215 returns nil when user only has the other of the permissions6216 returns nil when user has neither of the required permissions6217 when the resolver calls authorized_find!, but does not list any permissions6218 raises a configuration error6219 when type authorizations when applied to a relay connection6220 returns only the elements visible to the user6221 returns nil when user is not authorized6222 limiting connections with multiple objects6223 only checks permissions for the first object6224 type authorizations when applied to a basic connection6225 returns the protected field when user has permission6226 returns nil when user is not authorized6227 Authorizations on active record relations6228 renders the issues the user has access to6229 does not check access on fields that will not be rendered6230 Authorization on GraphQL::Execution::Execute::SKIP6231 skips redaction6232Gitlab::Ci::Trace::Checksum6233 when build pending state exists6234 when matching persisted trace chunks exist6235 calculates combined trace chunks CRC32 correctly6236 when trace chunks were persisted in a wrong order6237 makes trace checksum invalid but not corrupted6238 when one of the trace chunks is missing6239 makes trace checksum invalid and corrupted6240 when checksums of persisted trace chunks do not match6241 makes trace checksum invalid but not corrupted6242 when persisted trace chunks are missing6243 makes trace checksum invalid6244 when build pending state is missing6245 #state_crc326246 returns nil6247 #valid?6248 is expected not to be valid6249 #trace_chunks6250 does not load raw_data from a database store6251 #last_chunk6252 when there are no chunks6253 returns nil6254 is not a valid trace6255 is not a corrupted trace6256 when there are multiple chunks6257 returns chunk with the highest index6258 is not a valid trace6259 is not a corrupted trace6260 #trace_size6261 returns total trace size in bytes6262PrometheusAdapter6263 #query6264 validate_query6265 with valid data6266 returns query data6267 environment6268 with valid data6269 returns reactive data6270 matched_metrics6271 with valid data6272 returns reactive data6273 deployment6274 with valid data6275 returns reactive data6276 additional_metrics6277 with valid data6278 returns reactive data6279 #calculate_reactive_cache6280 when integration is inactive6281 is expected to be nil6282 when Prometheus responds with valid data6283 is expected to eq "{\"success\":true,\"data\":{\"memory_values\":[{\"metric\":{},\"values\":[[1488758662.506,\"0.000029...lue\":[1488772511.004,\"0.000041021495238095323\"]}]},\"last_update\":\"2022-04-28T17:17:27.000Z\"}"6284 when Prometheus responds with 4046285 is expected to eq {:result=>"404 - \"QUERY FAILED!\"", :success=>false}6286 when Prometheus responds with 5006287 is expected to eq {:result=>"500 - \"QUERY FAILED!\"", :success=>false}6288 when client raises Gitlab::PrometheusClient::ConnectionError6289 is expected to include {:success => false, :result => #<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007fce2a3324d0 @klass=String>}6290 #build_query_args6291 when active record models are included6292 serializes by id6293 when args are safe for serialization6294 does nothing6295MergeRequests::AssignIssuesService6296 finds unassigned issues fixed in merge request6297 ignores issues the user cannot update assignee on6298 ignores issues already assigned to any user6299 ignores all issues unless current_user is merge_request.author6300 accepts precomputed data for closes_issues6301 assigns these to the merge request owner6302 ignores external issues6303Gitlab::Ci::Config::Entry::Release6304 validation6305 when entry config value is correct6306 behaves like a valid entry6307 #value6308 returns release configuration6309 #valid?6310 is valid6311 when value includes 'assets' keyword6312 behaves like a valid entry6313 #value6314 returns release configuration6315 #valid?6316 is valid6317 when value includes 'name' keyword6318 behaves like a valid entry6319 #value6320 returns release configuration6321 #valid?6322 is valid6323 when value includes 'ref' keyword6324 behaves like a valid entry6325 #value6326 returns release configuration6327 #valid?6328 is valid6329 when value includes 'released_at' keyword6330 behaves like a valid entry6331 #value6332 returns release configuration6333 #valid?6334 is valid6335 when value includes 'milestones' keyword6336 for an array of milestones6337 behaves like a valid entry6338 #value6339 returns release configuration6340 #valid?6341 is valid6342 for a single milestone6343 behaves like a valid entry6344 #value6345 returns release configuration6346 #valid?6347 is valid6348 when value includes 'ref' keyword6349 when 'ref' is a full commit SHA6350 behaves like a valid entry6351 #value6352 returns release configuration6353 #valid?6354 is valid6355 when 'ref' is a short commit SHA6356 behaves like a valid entry6357 #value6358 returns release configuration6359 #valid?6360 is valid6361 when 'ref' is a branch name6362 behaves like a valid entry6363 #value6364 returns release configuration6365 #valid?6366 is valid6367 when 'ref' is a semantic versioning tag6368 behaves like a valid entry6369 #value6370 returns release configuration6371 #valid?6372 is valid6373 when 'ref' is a semantic versioning tag rc6374 behaves like a valid entry6375 #value6376 returns release configuration6377 #valid?6378 is valid6379 when value includes 'released_at' keyword6380 behaves like a valid entry6381 #value6382 returns release configuration6383 #valid?6384 is valid6385 when value includes 'milestones' keyword6386 for an array of milestones6387 behaves like a valid entry6388 #value6389 returns release configuration6390 #valid?6391 is valid6392 for a single milestone6393 behaves like a valid entry6394 #value6395 returns release configuration6396 #valid?6397 is valid6398 when entry value is not correct6399 #errors6400 when value of attribute is invalid6401 behaves like reports error6402 reports error6403 when release description is missing6404 behaves like reports error6405 reports error6406 when release tag_name is missing6407 behaves like reports error6408 reports error6409 when there is an unknown key present6410 behaves like reports error6411 reports error6412 when `released_at` is not a valid date6413 behaves like reports error6414 reports error6415 when `ref` is not valid6416 behaves like reports error6417 reports error6418 when `milestones` is not an array of strings6419 behaves like reports error6420 reports error6421Gitlab::Redis::SharedState6422 .config_file_name6423 when there is no config file anywhere6424 is expected to be nil6425 but resque.yml exists6426 is expected to eq "/tmp/redis_shared_examples20220428-43638-14qam9p/config/resque.yml"6427 returns a path that exists6428 and there is a global env override6429 is expected to eq "global override"6430 and there is an instance specific config file6431 is expected to eq "/tmp/redis_shared_examples20220428-43638-1cqxc9a/config/redis.shared_state.yml"6432 returns a path that exists6433 and there is a specific env override6434 is expected to eq "instance specific override"6435 .store6436 with old format6437 behaves like redis store6438 instantiates Redis::Store6439 with the namespace6440 uses specified namespace6441 with new format6442 behaves like redis store6443 instantiates Redis::Store6444 with the namespace6445 uses specified namespace6446 .params6447 withstands mutation6448 when url contains unix socket reference6449 with old format6450 returns path key instead6451 with new format6452 returns path key instead6453 when url is host based6454 with old format6455 returns hash with host, port, db, and password6456 with new format6457 rails_env: "development", host: "development-host"6458 returns hash with host, port, db, and password6459 rails_env: "test", host: "test-host"6460 returns hash with host, port, db, and password6461 rails_env: "production", host: "production-host"6462 returns hash with host, port, db, and password6463 .url6464 withstands mutation6465 when yml file with env variable6466 reads redis url from env variable6467 .version6468 returns a version6469 ._raw_config6470 is frozen6471 returns false when the file does not exist6472 returns false when the filename can't be determined6473 .with6474 when running on single-threaded runtime6475 instantiates a connection pool with size 56476 when running on multi-threaded runtime6477 instantiates a connection pool with a size based on the concurrency of the worker6478 when there is no config at all6479 can run an empty block6480 #db6481 with old format6482 returns the correct db6483 with new format6484 returns the correct db6485 #sentinels6486 when sentinels are defined6487 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6488 returns an array of hashes with host and port keys6489 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6490 returns an array of hashes with host and port keys6491 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6492 returns an array of hashes with host and port keys6493 when sentinels are not defined6494 returns nil6495 #sentinels?6496 when sentinels are defined6497 returns true6498 when sentinels are not defined6499 returns false6500 #raw_config_hash6501 returns old-style single url config in a hash6502 #fetch_config6503 returns false when no config file is present6504 returns false when config file is present but has invalid YAML6505 has a value for the legacy default URL6506 #raw_config_hash6507 has a legacy default URL6508RemoveExpiredMembersWorker6509 #perform6510 project members6511 removes expired members6512 leaves members that expire in the future6513 leaves members that do not expire at all6514 adds context to resulting jobs6515 project bots6516 expired project bot6517 removes expired project bot membership6518 deletes expired project bot6519 non-expired project bot6520 does not remove expired project bot that expires in the future6521 does not delete project bot expiring in the future6522 group members6523 removes expired members6524 leaves members that expire in the future6525 leaves members that do not expire at all6526 adds context to resulting jobs6527 when the last group owner expires6528 does not delete the owner6529ContainerRegistry::Migration::GuardWorker6530 #perform6531 on gitlab.com6532 with no stale migrations6533 will not update any migration state6534 behaves like an idempotent worker6535 is labeled as idempotent6536 performs multiple times sequentially without raising an exception6537 with pre_importing stale migrations6538 will abort the migration6539 the client returns pre_import_in_progress6540 behaves like handling long running migrations6541 migration is canceled6542 when the retry limit has been reached6543 will not abort the migration6544 when the retry limit has not been reached6545 behaves like aborting the migration6546 will abort the migration6547 migration cancelation fails with an error6548 behaves like aborting the migration6549 will abort the migration6550 migration receives bad request with a new status6551 behaves like aborting the migration6552 will abort the migration6553 with pre_import_done stale migrations6554 will abort the migration6555 with importing stale migrations6556 will abort the migration6557 the client returns import_in_progress6558 behaves like handling long running migrations6559 migration is canceled6560 when the retry limit has been reached6561 will not abort the migration6562 when the retry limit has not been reached6563 behaves like aborting the migration6564 will abort the migration6565 migration cancelation fails with an error6566 behaves like aborting the migration6567 will abort the migration6568 migration receives bad request with a new status6569 behaves like aborting the migration6570 will abort the migration6571 not on gitlab.com6572 is a no op6573ClusterablePresenter6574 .fabricate6575 creates an object from a descendant presenter6576 #can_create_cluster?6577 when clusterable is a group6578 behaves like appropriate member permissions6579 with a developer6580 is expected to be falsy6581 with a maintainer6582 is expected to be truthy6583 when clusterable is a project6584 behaves like appropriate member permissions6585 with a developer6586 is expected to be falsy6587 with a maintainer6588 is expected to be truthy6589 #can_add_cluster?6590 when clusterable is a group6591 behaves like appropriate member permissions6592 with a developer6593 is expected to be falsy6594 with a maintainer6595 is expected to be truthy6596 when clusterable is a project6597 behaves like appropriate member permissions6598 with a developer6599 is expected to be falsy6600 with a maintainer6601 is expected to be truthy6602 #can_admin_cluster?6603 when clusterable is a group6604 behaves like appropriate member permissions6605 with a developer6606 is expected to be falsy6607 with a maintainer6608 is expected to be truthy6609 when clusterable is a project6610 behaves like appropriate member permissions6611 with a developer6612 is expected to be falsy6613 with a maintainer6614 is expected to be truthy6615 #environments_cluster_path6616 is expected to be nil6617 #index_path6618 without options6619 is expected to eq "/groups/group332/-/clusters"6620 with options6621 is expected to eq "/groups/group333/-/clusters.json"6622Gitlab::ExclusiveLease6623 #try_obtain6624 cannot obtain twice before the lease has expired6625 can obtain after the lease has expired6626 .redis_shared_state_key6627 provides a namespaced key6628 .ensure_prefixed_key6629 does not double prefix a key6630 raises errors when there is no key6631 #renew6632 returns true when we have the existing lease6633 returns false when we dont have a lease6634 #exists?6635 returns true for an existing lease6636 returns false for a lease that does not exist6637 .get_uuid6638 gets the uuid if lease with the key associated exists6639 returns false if the lease does not exist6640 cancellation6641 .cancel6642 does not raise errors when given a nil key6643 when called with the unprefixed key6644 behaves like cancelling a lease6645 releases the held lease6646 when called with the prefixed key6647 behaves like cancelling a lease6648 releases the held lease6649 #cancel6650 is safe to call even if the lease was never obtained6651 behaves like cancelling a lease6652 releases the held lease6653 #ttl6654 returns the TTL of the Redis key6655 returns nil when the lease does not exist6656 .reset_all!6657 removes all existing lease keys from redis6658 .throttle6659 prevents repeated execution of the block6660 is distinct by block6661 is distinct by key6662 allows a group to be passed6663 defaults to a 60min timeout6664 allows count to be specified6665 allows period to be specified6666 allows period and count to be specified6667Gitlab::Redis::TraceChunks6668 behaves like redis_shared_examples6669 .config_file_name6670 when there is no config file anywhere6671 is expected to be nil6672 but resque.yml exists6673 is expected to eq "/tmp/redis_shared_examples20220428-43638-1la4gps/config/resque.yml"6674 returns a path that exists6675 and there is a global env override6676 is expected to eq "global override"6677 and there is an instance specific config file6678 is expected to eq "/tmp/redis_shared_examples20220428-43638-2z1b21/config/redis.trace_chunks.yml"6679 returns a path that exists6680 and there is a specific env override6681 is expected to eq "instance specific override"6682 .store6683 with old format6684 behaves like redis store6685 instantiates Redis::Store6686 with the namespace6687 uses specified namespace6688 with new format6689 behaves like redis store6690 instantiates Redis::Store6691 with the namespace6692 uses specified namespace6693 .params6694 withstands mutation6695 when url contains unix socket reference6696 with old format6697 returns path key instead6698 with new format6699 returns path key instead6700 when url is host based6701 with old format6702 returns hash with host, port, db, and password6703 with new format6704 rails_env: "development", host: "development-host"6705 returns hash with host, port, db, and password6706 rails_env: "test", host: "test-host"6707 returns hash with host, port, db, and password6708 rails_env: "production", host: "production-host"6709 returns hash with host, port, db, and password6710 .url6711 withstands mutation6712 when yml file with env variable6713 reads redis url from env variable6714 .version6715 returns a version6716 ._raw_config6717 is frozen6718 returns false when the file does not exist6719 returns false when the filename can't be determined6720 .with6721 when running on single-threaded runtime6722 instantiates a connection pool with size 56723 when running on multi-threaded runtime6724 instantiates a connection pool with a size based on the concurrency of the worker6725 when there is no config at all6726 can run an empty block6727 #db6728 with old format6729 returns the correct db6730 with new format6731 returns the correct db6732 #sentinels6733 when sentinels are defined6734 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6735 returns an array of hashes with host and port keys6736 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6737 returns an array of hashes with host and port keys6738 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6739 returns an array of hashes with host and port keys6740 when sentinels are not defined6741 returns nil6742 #sentinels?6743 when sentinels are defined6744 returns true6745 when sentinels are not defined6746 returns false6747 #raw_config_hash6748 returns old-style single url config in a hash6749 #fetch_config6750 returns false when no config file is present6751 returns false when config file is present but has invalid YAML6752 has a value for the legacy default URL6753 .config_file_name6754 when there is only a resque.yml6755 is expected to eq "/tmp/redis_shared_examples20220428-43638-1l7y61g/config/resque.yml"6756 and there is a global env override6757 is expected to eq "global override"6758 and SharedState has a different config file6759 is expected to eq "fallback config file"6760Gitlab::SlashCommands::Deploy6761 #execute6762 if no environment is defined6763 does not execute an action6764 with environment6765 without actions6766 does not execute an action6767 when single action has been matched6768 returns success result6769 when more than one action has been matched6770 when there is no specific actions with a environment name6771 returns error about too many actions defined6772 when one of the actions is environement specific action6773 deploys to production6774 when one of the actions is a teardown action6775 deploys to production6776 with extra spaces in the deploy command6777 deploys to production6778 self.match6779 matches the environment6780 matches the environment with spaces in it6781 matches the environment name with surrounding spaces6782 returns nil for text that is not a deploy command6783 returns nil for a partial command6784 with ReDoS attempts6785 has smaller than linear execution time growth with a malformed "to"6786Gitlab::Ci::Ansi2json6787 lines6788 prints non-ansi as-is6789 recognizes color changing ANSI sequences6790 recognizes color changing ANSI sequences across multiple lines6791 recognizes background and foreground colors6792 recognizes style changes within the same line6793 new lines6794 adds new line when encountering \n6795 adds new line when encountering \r\n6796 replace the current line when encountering \r6797 with section markers6798 marks the first line of the section as header6799 does not marks the other lines of the section as header6800 marks the last line of the section as footer6801 marks the first line as header and footer if is the only line in the section6802 does not add sections attribute to lines after the section is closed6803 ignores section_end marker if no section_start exists6804 prints HTML tags as is6805 when section name contains .-_ and capital letters6806 sanitizes the section name6807 when section name includes $6808 ignores the section6809 when section name includes <6810 ignores the section6811 with nested section6812 adds multiple sections to the lines inside the nested section6813 adds multiple sections to the lines inside the nested section and closes all sections together6814 with section options6815 provides section options when set6816 incremental updates6817 with split word6818 returns the full line6819 with split word on second line6820 returns all lines since last partially processed line6821 with split sequence across multiple lines6822 returns the line since last partially processed line6823 with split partial sequence6824 returns the line since last partially processed line6825 with split new line6826 returns a blank line and the next line6827 with split section6828 with split section body6829 returns the full line6830 with split section where header is also split6831 returns the full line6832 with split section end6833 returns the full line6834 trucates6835 returns truncated output6836 does not append output6837Gitlab::Ci::Charts6838 yearchart6839 goes until the end of the current month (including the whole last day of the month)6840 starts at the beginning of the current year6841 uses %B %Y as labels format6842 returns count of pipelines run each day in the current year6843 monthchart6844 includes the whole current day6845 starts one month ago6846 uses %d %B as labels format6847 returns count of pipelines run each day in the current month6848 weekchart6849 includes the whole current day6850 starts one week ago6851 uses %d %B as labels format6852 returns count of pipelines run each day in the current week6853 weekchart_utc6854 uses a utc time zone for range times6855 returns count of pipelines run each day in the current week6856 weekchart_non_utc6857 uses a non-utc time zone for range times6858 returns count of pipelines run each day in the current week6859 pipeline_times6860 returns pipeline times in minutes6861 handles nil pipeline times6862ProjectExportWorker6863 behaves like export worker6864 #perform6865 when it succeeds6866 calls the ExportService6867 export job6868 creates an export job record for the project6869 sets the export job status to started6870 sets the export job status to finished6871 when it fails6872 does not raise an exception when strategy is invalid6873 does not raise error when project cannot be found6874 does not raise error when user cannot be found6875 fails the export job status6876 sidekiq options6877 disables retry6878 disables dead6879 sets default status expiration6880 exporters duration measuring6881 logs exporters execution duration6882ProjectAutoDevops6883 is expected to belong to project required: false6884 is expected to define :deploy_strategy as an enum, backed by an integer6885 is expected to respond to #created_at6886 is expected to respond to #updated_at6887 behaves like having unique enum values6888 has unique values in "deploy_strategy"6889 #predefined_variables6890 when deploy_strategy is manual6891 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}6892 when deploy_strategy is continuous6893 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}6894 is expected not to include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"6895 when deploy_strategy is timed_incremental6896 is expected to include {:key => "INCREMENTAL_ROLLOUT_MODE", :value => "timed"}6897 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}6898 is expected not to include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"6899 when auto-devops is explicitly disabled6900 is expected to be empty6901 #create_gitlab_deploy_token6902 when the project is public6903 does not create a gitlab deploy token6904 when the project is internal6905 creates a gitlab deploy token6906 when the project is private6907 creates a gitlab deploy token6908 when autodevops is enabled at project level6909 creates a deploy token6910 when autodevops is enabled at instance level6911 creates a deploy token6912 when autodevops is disabled6913 does not create a deploy token6914 when the project already has an active gitlab-deploy-token6915 does not create a deploy token6916 when the project already has a revoked gitlab-deploy-token6917 does not create a deploy token6918ProjectHook6919 associations6920 is expected to belong to project required: false6921 validations6922 is expected to validate that :project cannot be empty/falsy6923 behaves like includes Limitable concern6924 validations6925 is expected to be a kind of Limitable6926 without plan limits configured6927 can create new models6928 with plan limits configured6929 can create new models6930 with an existing model6931 cannot create new models exceeding the plan limits6932 .push_hooks6933 returns hooks for push events only6934 .tag_push_hooks6935 returns hooks for tag push events only6936 #rate_limit6937 returns the default limit6938 #parent6939 returns the associated project6940 #application_context6941 includes the type and project6942gettext6943 :compile6944 creates a pot file and invokes the 'gettext:po_to_json' task6945 :regenerate6946 when the locale folder is not found6947 raises an error6948 where there are existing /**/gitlab.po files6949 does not remove that locale6950 when there are locale folders without a gitlab.po file6951 removes those folders6952 when the gitlab.pot file cannot be generated6953 prints an error6954 when gettext:find changes the revision dates6955 resets the changes6956 :lint6957 when all PO files are valid6958Linting po files: |============================================================|6959 completes without error6960 when there are invalid PO files6961Linting po files: |============================================================|6962 raises an error6963 when the .pot file is invalid6964Linting po files: |============================================================|6965 raises an error6966MergeRequests::GetUrlsService6967 #execute6968 when project is nil6969 behaves like no_merge_request_url6970 returns no URL6971 pushing to default branch6972 behaves like no_merge_request_url6973 returns no URL6974 pushing to project with MRs disabled6975 behaves like no_merge_request_url6976 returns no URL6977 pushing one completely new branch6978 behaves like new_merge_request_link6979 returns url to create new merge request6980 pushing to existing branch but no merge request6981 behaves like new_merge_request_link6982 returns url to create new merge request6983 pushing to deleted branch6984 behaves like no_merge_request_url6985 returns no URL6986 pushing to existing branch and merge request opened6987 behaves like show_merge_request_url6988 returns url to view merge request6989 pushing to existing branch and merge request is reopened6990 behaves like show_merge_request_url6991 returns url to view merge request6992 pushing to existing branch from forked project6993 behaves like show_merge_request_url6994 returns url to view merge request6995 pushing to existing branch and merge request is closed6996 behaves like new_merge_request_link6997 returns url to create new merge request6998 pushing to existing branch and merge request is merged6999 behaves like new_merge_request_link7000 returns url to create new merge request7001 pushing new branch and existing branch (with merge request created) at once7002 returns 2 urls for both creating new and showing merge request7003 when printing_merge_request_link_enabled is false7004 returns empty array7005Gitlab::QuickActions::Extractor7006 #extract_commands7007 extracts command with multiple arguments and various prefixes7008 extracts command case insensitive7009 does not extract noop commands7010 extracts and performs substitution commands7011 extracts and performs substitution commands7012 extracts and performs multiple substitution commands7013 does not extract substitution command in inline code7014 extracts and performs substitution commands case insensitive7015 extracts and performs substitution commands with comments7016 extracts multiple commands7017 does not alter original content if no command is found7018 does not get confused if command comes before an inline code7019 does not get confused if command comes before a blockcode7020 does not extract commands inside a blockcode7021 does not extract commands inside a blockquote7022 does not extract commands inside a HTML tag7023 does not extract commands in multiline inline code on seperated rows7024 does not extract commands in multiline inline code starting from text7025 does not extract commands in inline code7026 limits to passed commands when they are passed7027 fails fast for strings with many newlines7028 command with no argument7029 at the start of content7030 behaves like command with no argument7031 extracts command7032 in the middle of content7033 behaves like command with no argument7034 extracts command7035 in the middle of a line7036 does not extract command7037 at the end of content7038 behaves like command with no argument7039 extracts command7040 command with a single argument7041 at the start of content7042 allows slash in command arguments7043 behaves like command with a single argument7044 extracts command7045 in the middle of content7046 behaves like command with a single argument7047 extracts command7048 in the middle of a line7049 does not extract command7050 at the end of content7051 behaves like command with a single argument7052 extracts command7053 when argument is not separated with a space7054 does not extract command7055 command with multiple arguments7056 at the start of content7057 behaves like command with multiple arguments7058 extracts command7059 in the middle of content7060 behaves like command with multiple arguments7061 extracts command7062 in the middle of a line7063 does not extract command7064 at the end of content7065 behaves like command with multiple arguments7066 extracts command7067 when argument is not separated with a space7068 does not extract command7069 #redact_commands7070 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"7071 encloses quick actions with code span markdown7072 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"7073 encloses quick actions with code span markdown7074 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"7075 encloses quick actions with code span markdown7076 text: "/reopen\nworld", expected: "`/reopen`\nworld"7077 encloses quick actions with code span markdown7078 text: "hello\n/open", expected: "hello\n`/open`"7079 encloses quick actions with code span markdown7080Mutations::Releases::Delete7081 #resolve7082 when the current user has access to create releases7083 deletes the release7084 returns the deleted release7085 does not remove the Git tag associated with the deleted release7086 returns no errors7087 with protected tag7088 when user has access to the protected tag7089 does not have errors7090 when user does not have access to the protected tag7091 has an access error7092 validation7093 when the release does not exist7094 returns the release as nil7095 returns an errors-at-data message7096 when the project does not exist7097 behaves like unauthorized or not found error7098 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error7099 when the current user doesn't have access to update releases7100 when the user is a reporter7101 behaves like unauthorized or not found error7102 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error7103 when the user is a non-project member7104 behaves like unauthorized or not found error7105 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error7106projects/artifacts/_artifact.html.haml7107 delete button7108 with admin7109 when admin mode is enabled7110 has a delete button7111 when admin mode is disabled7112 has no delete button7113 with owner7114 has a delete button7115 with master7116 has a delete button7117 with developer7118 has no delete button7119 with reporter7120 has no delete button7121Kramdown::Parser::AtlassianDocumentFormat7122 markdown render7123 renders header id to html7124 logs an error with invalid json7125 logs an error if no valid document node7126 invalid node gets ignored7127 behaves like render elements to markdown7128 renders blockquote7129 behaves like render elements to markdown7130 renders bullet_list7131 behaves like render elements to markdown7132 renders code_block7133 behaves like render elements to markdown7134 renders emoji7135 behaves like render elements to markdown7136 renders hard_break7137 behaves like render elements to markdown7138 renders heading7139 behaves like render elements to markdown7140 renders inline_card7141 behaves like render elements to markdown7142 renders media_group7143 behaves like render elements to markdown7144 renders media_single7145 behaves like render elements to markdown7146 renders mention7147 behaves like render elements to markdown7148 renders ordered_list7149 behaves like render elements to markdown7150 renders panel7151 behaves like render elements to markdown7152 renders paragraph7153 behaves like render elements to markdown7154 renders rule7155 behaves like render elements to markdown7156 renders table7157 behaves like render elements to markdown7158 renders strong_em_mark7159 behaves like render elements to markdown7160 renders code_mark7161 behaves like render elements to markdown7162 renders link_mark7163 behaves like render elements to markdown7164 renders strike_sup_sub_mark7165 behaves like render elements to markdown7166 renders underline_text_color_mark7167 behaves like render elements to markdown7168 renders complex_document7169Gitlab::Suggestions::CommitMessage7170 #message7171 suggestion_set: suggestion_set_same_project7172 when a custom commit message is not specified7173 and is nil7174 uses the default commit message7175 and is an empty string7176 uses the default commit message7177 when a custom commit message is specified for forked project7178 uses the default commit message7179 when a custom commit message is specified7180 shows the custom commit message7181 is specified and includes all placeholders7182 generates a custom commit message7183 when a custom commit message is specified for forked project7184 uses the target project commit message7185 suggestion_set: suggestion_set_forked_project7186 when a custom commit message is not specified7187 and is nil7188 uses the default commit message7189 and is an empty string7190 uses the default commit message7191 when a custom commit message is specified for forked project7192 uses the default commit message7193 when a custom commit message is specified7194 shows the custom commit message7195 is specified and includes all placeholders7196 generates a custom commit message7197 when a custom commit message is specified for forked project7198 uses the target project commit message7199ProtectableDropdown7200 initialize7201 raises ArgumentError for invalid ref type7202 #protectable_ref_names7203 for branches7204 is expected to include "feature"7205 is expected not to include "master"7206 behaves like protectable_ref_names7207 when project repository is not empty7208 includes elements matching a protected ref wildcard7209 when project repository is empty7210 returns empty list7211 for tags7212 is expected to include "v1.0.0"7213 is expected not to include "v1.1.0"7214 behaves like protectable_ref_names7215 when project repository is not empty7216 includes elements matching a protected ref wildcard7217 when project repository is empty7218 returns empty list7219 #hash7220 for branches7221 is expected to include {:id => "feature", :text => "feature", :title => "feature"}7222 for tags7223 is expected to include {:id => "v1.0.0", :text => "v1.0.0", :title => "v1.0.0"}7224Mutations::Issues::SetConfidential7225 is expected to require graphql authorizations :update_issue7226 #resolve7227 behaves like permission level for issue mutation is correctly verified7228 when the user is not a project member7229 behaves like when the user does not have access to the resource7230 raises an error7231 even if assigned to the issue7232 does not modify issue7233 even if author of the issue7234 does not modify issue7235 when the user is a project member7236 with guest role7237 behaves like when the user does not have access to the resource7238 raises an error7239 even if assigned to the issue7240 does not modify issue7241 even if author of the issue7242 does not modify issue7243 when the user can update the issue7244 returns the issue as confidential7245 when passing confidential as false7246 updates the issue confidentiality to false7247 when guest user is an assignee7248 does not change issue confidentiality7249Integrations::Redmine7250 Validations7251 when integration is active7252 is expected to validate that :project_url cannot be empty/falsy7253 is expected to validate that :issues_url cannot be empty/falsy7254 is expected to validate that :new_issue_url cannot be empty/falsy7255 behaves like issue tracker integration URL attribute7256 is expected to allow :project_url to be ‹"https://example.com"›7257 is expected not to allow :project_url to be ‹"example.com"›7258 is expected not to allow :project_url to be ‹"ftp://example.com"›7259 is expected not to allow :project_url to be ‹"herp-and-derp"›7260 behaves like issue tracker integration URL attribute7261 is expected to allow :issues_url to be ‹"https://example.com"›7262 is expected not to allow :issues_url to be ‹"example.com"›7263 is expected not to allow :issues_url to be ‹"ftp://example.com"›7264 is expected not to allow :issues_url to be ‹"herp-and-derp"›7265 behaves like issue tracker integration URL attribute7266 is expected to allow :new_issue_url to be ‹"https://example.com"›7267 is expected not to allow :new_issue_url to be ‹"example.com"›7268 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›7269 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›7270 when integration is inactive7271 is expected not to validate that :project_url cannot be empty/falsy7272 is expected not to validate that :issues_url cannot be empty/falsy7273 is expected not to validate that :new_issue_url cannot be empty/falsy7274 .reference_pattern7275 does allow # on the reference7276 behaves like allows project key on reference pattern7277 allows underscores in the project name7278 allows numbers in the project name7279 requires the project name to begin with A-Z7280 does not allow issue number to finish with a letter7281InjectEnterpriseEditionModule7282 #prepend_mod_with7283 behaves like expand the extension with7284 when extension namespace is set at top-level7285 calls prepend with the extension module7286 when extension namespace is set at another namespace7287 calls prepend with the extension module from the additional namespace7288 when extension namespace exists but not the extension7289 does not call prepend7290 when extension namespace does not exist7291 does not call prepend7292 #extend_mod_with7293 behaves like expand the extension with7294 when extension namespace is set at top-level7295 calls extend with the extension module7296 when extension namespace is set at another namespace7297 calls extend with the extension module from the additional namespace7298 when extension namespace exists but not the extension7299 does not call extend7300 when extension namespace does not exist7301 does not call extend7302 #include_mod_with7303 behaves like expand the extension with7304 when extension namespace is set at top-level7305 calls include with the extension module7306 when extension namespace is set at another namespace7307 calls include with the extension module from the additional namespace7308 when extension namespace exists but not the extension7309 does not call include7310 when extension namespace does not exist7311 does not call include7312 #prepend_mod7313 behaves like expand the assumed extension with7314 when extension namespace is set at top-level7315 calls prepend with the extension module7316 when extension namespace exists but not the extension7317 does not call prepend7318 when extension namespace does not exist7319 does not call prepend7320 #extend_mod7321 behaves like expand the assumed extension with7322 when extension namespace is set at top-level7323 calls extend with the extension module7324 when extension namespace exists but not the extension7325 does not call extend7326 when extension namespace does not exist7327 does not call extend7328 #include_mod7329 behaves like expand the assumed extension with7330 when extension namespace is set at top-level7331 calls include with the extension module7332 when extension namespace exists but not the extension7333 does not call include7334 when extension namespace does not exist7335 does not call include7336PruneOldEventsWorker7337 #perform7338 prunes events older than 3 years7339 leaves fresh events7340 leaves events from 13 months ago7341 leaves events from 3 years ago7342IssuableExportCsvWorker7343 when issuable type is Issue7344 emails a CSV7345 ensures that project_id is passed to issues_finder7346 removes sort parameter7347 calls the issue export service7348 with params7349 allows symbol access for IssuesFinder7350 when issuable type is MergeRequest7351 emails a CSV7352 calls the MR export service7353 calls the MergeRequest finder7354 when issuable type is User7355 is expected to raise ArgumentError7356Gitlab::Ci::Ansi2json::Line7357 #<<7358 appends new data to the current segment7359 #style7360 when style is passed to the initializer7361 returns the same style7362 when style is not passed to the initializer7363 returns the default style7364 #update_style7365 sets the style7366 #add_section7367 appends a new section to the list7368 #set_section_options7369 sets the current section's options7370 #set_as_section_header7371 change the section_header to true7372 #set_section_duration7373 duration: nil, result: "00:00"7374 is expected to eq "00:00"7375 duration: "string", result: "00:00"7376 is expected to eq "00:00"7377 duration: 0 seconds, result: "00:00"7378 is expected to eq "00:00"7379 duration: 7 seconds, result: "00:07"7380 is expected to eq "00:07"7381 duration: 75, result: "01:15"7382 is expected to eq "01:15"7383 duration: 1 minute and 15 seconds, result: "01:15"7384 is expected to eq "01:15"7385 duration: 13 hours, 14 minutes, and 15 seconds, result: "13:14:15"7386 is expected to eq "13:14:15"7387 duration: 1 day, 13 hours, 14 minutes, and 15 seconds, result: "37:14:15"7388 is expected to eq "37:14:15"7389 #flush_current_segment!7390 when current segment is not empty7391 adds the segment to the list7392 updates the current segment pointer propagating the style7393 when current segment is empty7394 does not add any segments to the list7395 does not change the current segment7396 #to_h7397 when sections are present7398 when section header is set7399 serializes the attributes set7400 when section duration is set7401 serializes the attributes set7402 when there are no sections7403 serializes the attributes set7404Users::CreateService7405 #execute7406 with an admin user7407 when required parameters are provided7408 returns a persisted user7409 persists the given attributes7410 user is not confirmed if skip_confirmation param is not present7411 logs the user creation7412 executes system hooks7413 does not send a notification email7414 when the current_user is not persisted7415 persists the given attributes and sets created_by_id to nil7416 when force_random_password parameter is true7417 generates random password7418 when password_automatically_set parameter is true7419 persists the given attributes7420 when skip_confirmation parameter is true7421 confirms the user7422 when reset_password parameter is true7423 resets password even if a password parameter is given7424 sends a notification email7425 with nil user7426 persists the given attributes7427Packages::Maven::PackageFinder7428 uses CTE in the query7429 #execute!7430 within the project7431 behaves like handling valid and invalid paths7432 with a valid path7433 is expected to eq #<Packages::Package id: 2, project_id: 1522, created_at: "2022-04-28 17:19:54.048645000 +0000", updat...ny/app/my-app", version: "1.1-SNAPSHOT", package_type: "maven", creator_id: 2730, status: "default">7434 with an invalid path7435 raises an error7436 with an uninstallable package7437 is expected to raise ActiveRecord::RecordNotFound7438 within a group7439 behaves like handling valid and invalid paths7440 with a valid path7441 is expected to eq #<Packages::Package id: 2, project_id: 1522, created_at: "2022-04-28 17:19:54.048645000 +0000", updat...ny/app/my-app", version: "1.1-SNAPSHOT", package_type: "maven", creator_id: 2730, status: "default">7442 with an invalid path7443 raises an error7444 with an uninstallable package7445 is expected to raise ActiveRecord::RecordNotFound7446 across all projects7447 raises an error7448 versionless maven-metadata.xml package7449 without order by package file7450 is expected to eq #<Packages::Package id: 8, project_id: 1526, created_at: "2022-04-28 17:19:57.416715690 +0000", updat...15690 +0000", name: "foo", version: nil, package_type: "maven", creator_id: 2737, status: "default">7451 with order by package file7452 is expected to eq #<Packages::Package id: 6, project_id: 1525, created_at: "2022-04-28 17:19:57.053152587 +0000", updat...52587 +0000", name: "foo", version: nil, package_type: "maven", creator_id: 2735, status: "default">7453Analytics::CycleAnalytics::IssueStageEvent7454 is expected to validate that :stage_event_hash_id cannot be empty/falsy7455 is expected to validate that :issue_id cannot be empty/falsy7456 is expected to validate that :group_id cannot be empty/falsy7457 is expected to validate that :project_id cannot be empty/falsy7458 is expected to validate that :start_event_timestamp cannot be empty/falsy7459 has state enum7460 behaves like StageEventModel7461 .upsert_data7462 inserts the data7463 does not produce duplicate rows7464 inserts the data correctly7465 scopes7466 filters by stage_event_hash_id7467 filters by project_id7468 filters by group_id7469 filters by author_id7470 filters by assignee7471 filters by milestone_id7472 start_event_timestamp filtering7473 when range is given7474 when specifying upper bound7475 when specifying the lower bound7476 end_event_timestamp filtering7477 when range is given7478 when specifying upper bound7479 when specifying the lower bound7480 #total_time7481 calcualtes total time from the start_event_timestamp and end_event_timestamp columns7482 when total time is calculated in SQL as an extra column7483 returns the SQL calculated time7484Banzai::Filter::GollumTagsFilter7485 validation7486 ensure that a :wiki key exists in context7487 linking internal images7488 creates img tag if image exists7489 does not creates img tag if image does not exist7490 linking external images7491 creates img tag for valid URL7492 does not creates img tag for invalid URL7493 linking external resources7494 the created link's text will be equal to the resource's text7495 the created link's text will be link-text7496 linking internal resources7497 the created link's text includes the resource's text and wiki base path7498 the created link's text will be link-text7499 inside back ticks will be exempt from linkification7500Integrations::Ewm7501 Validations7502 when integration is active7503 is expected to validate that :project_url cannot be empty/falsy7504 is expected to validate that :issues_url cannot be empty/falsy7505 is expected to validate that :new_issue_url cannot be empty/falsy7506 behaves like issue tracker integration URL attribute7507 is expected to allow :project_url to be ‹"https://example.com"›7508 is expected not to allow :project_url to be ‹"example.com"›7509 is expected not to allow :project_url to be ‹"ftp://example.com"›7510 is expected not to allow :project_url to be ‹"herp-and-derp"›7511 behaves like issue tracker integration URL attribute7512 is expected to allow :issues_url to be ‹"https://example.com"›7513 is expected not to allow :issues_url to be ‹"example.com"›7514 is expected not to allow :issues_url to be ‹"ftp://example.com"›7515 is expected not to allow :issues_url to be ‹"herp-and-derp"›7516 behaves like issue tracker integration URL attribute7517 is expected to allow :new_issue_url to be ‹"https://example.com"›7518 is expected not to allow :new_issue_url to be ‹"example.com"›7519 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›7520 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›7521 when integration is inactive7522 is expected not to validate that :project_url cannot be empty/falsy7523 is expected not to validate that :issues_url cannot be empty/falsy7524 is expected not to validate that :new_issue_url cannot be empty/falsy7525 ReferencePatternValidation7526 extracts bug7527 extracts task7528 extracts work item7529 extracts workitem7530 extracts defect7531 extracts rtcwi7532InviteMembersHelper7533 #common_invite_group_modal_data7534 has expected common attributes7535 #common_invite_modal_dataset7536 has expected common attributes7537 tasks_to_be_done7538 inviting members for tasks7539 open_modal_param_present?: true, logged_in?: true, expected?: true7540 when the source is a project7541 behaves like including the tasks to be done attributes7542 includes the tasks to be done attributes when expected7543 when the source is a group7544 behaves like including the tasks to be done attributes7545 includes the tasks to be done attributes when expected7546 open_modal_param_present?: true, logged_in?: false, expected?: false7547 when the source is a project7548 behaves like including the tasks to be done attributes7549 includes the tasks to be done attributes when expected7550 when the source is a group7551 behaves like including the tasks to be done attributes7552 includes the tasks to be done attributes when expected7553 open_modal_param_present?: false, logged_in?: true, expected?: false7554 when the source is a project7555 behaves like including the tasks to be done attributes7556 includes the tasks to be done attributes when expected7557 when the source is a group7558 behaves like including the tasks to be done attributes7559 includes the tasks to be done attributes when expected7560 open_modal_param_present?: false, logged_in?: false, expected?: false7561 when the source is a project7562 behaves like including the tasks to be done attributes7563 includes the tasks to be done attributes when expected7564 when the source is a group7565 behaves like including the tasks to be done attributes7566 includes the tasks to be done attributes when expected7567 the invite_for_help_continuous_onboarding experiment7568 invite_for_help_continuous_onboarding?: true, logged_in?: true, expected?: true7569 when the source is a project7570 behaves like including the tasks to be done attributes7571 includes the tasks to be done attributes when expected7572 when the source is a group7573 behaves like including the tasks to be done attributes7574 includes the tasks to be done attributes when expected7575 invite_for_help_continuous_onboarding?: true, logged_in?: false, expected?: false7576 when the source is a project7577 behaves like including the tasks to be done attributes7578 includes the tasks to be done attributes when expected7579 when the source is a group7580 behaves like including the tasks to be done attributes7581 includes the tasks to be done attributes when expected7582 invite_for_help_continuous_onboarding?: false, logged_in?: true, expected?: false7583 when the source is a project7584 behaves like including the tasks to be done attributes7585 includes the tasks to be done attributes when expected7586 when the source is a group7587 behaves like including the tasks to be done attributes7588 includes the tasks to be done attributes when expected7589 invite_for_help_continuous_onboarding?: false, logged_in?: false, expected?: false7590 when the source is a project7591 behaves like including the tasks to be done attributes7592 includes the tasks to be done attributes when expected7593 when the source is a group7594 behaves like including the tasks to be done attributes7595 includes the tasks to be done attributes when expected7596 with project7597 #can_invite_members_for_project?7598 when the user can_admin_project_member7599 returns true7600 when the user can not manage project members7601 returns false7602 #group_select_data7603 when sharing with groups outside the hierarchy is disabled7604 provides the correct attributes7605 when sharing with groups outside the hierarchy is enabled7606 returns an empty hash7607Gitlab::GithubImport::Importer::IssueImporter7608 .import_if_issue7609 imports an issuable if it is a regular issue7610 does not import the issuable if it is a pull request7611 #execute7612 creates the issue and assignees7613 #create_issue7614 produces a valid Issue7615 returns the ID of the created issue7616 when the issue author could be found7617 creates the issue with the found author as the issue author7618 when the issue author could not be found7619 creates the issue with the project creator as the issue author7620 when the import fails due to a foreign key error7621 does not raise any errors7622 #create_assignees7623 inserts the issue assignees in bulk7624Gitlab::DatabaseImporters::CommonMetrics::Importer7625 does import common_metrics.yml7626 has the same amount of groups7627 has the same amount of panels7628 has the same amount of metrics7629 does not have duplicate IDs7630 imports all IDs7631 does import common_metrics.yml7632 when executed from outside of the Rails.root7633 does import properly all fields7634 if ID is missing7635 raises exception7636 for existing common metric with different ID7637 behaves like stores metric7638 with all data7639 and existing metric is not changed7640 when metric with ID exists7641 behaves like stores metric7642 with all data7643 and existing metric is changed7644WikiPages::DestroyService7645 behaves like WikiPages::DestroyService#execute7646 executes webhooks7647DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:124)7648 increments the delete count7649DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:124)7650 creates a new wiki page deletion event7651 when the deletion fails7652 returns an error response7653 does not increment the delete count if the deletion failed7654Limitable7655 is expected to eq "test_classes"7656 with scoped limit7657 is expected to eq :project7658 triggers scoped validations7659 with custom relation and feature flags7660 limit_feature_flag: nil, limit_feature_flag_value: nil, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true7661 acts according to the feature flag settings7662 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: false7663 acts according to the feature flag settings7664 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true7665 acts according to the feature flag settings7666 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: true7667 acts according to the feature flag settings7668 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: false7669 acts according to the feature flag settings7670 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false7671 acts according to the feature flag settings7672 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false7673 acts according to the feature flag settings7674 with global limit7675 is expected to eq :limitable_global_scope7676 triggers scoped validations7677shared/deploy_tokens/_form.html.haml7678 when the subject is a project7679 packages_enabled: true, feature_enabled: true, role: :maintainer, shows_package_registry_permissions: true7680 behaves like display deploy token settings7681 correctly renders the form7682 packages_enabled: false, feature_enabled: true, role: :maintainer, shows_package_registry_permissions: false7683 behaves like display deploy token settings7684 correctly renders the form7685 packages_enabled: true, feature_enabled: false, role: :maintainer, shows_package_registry_permissions: false7686 behaves like display deploy token settings7687 correctly renders the form7688 packages_enabled: false, feature_enabled: false, role: :maintainer, shows_package_registry_permissions: false7689 behaves like display deploy token settings7690 correctly renders the form7691 when the subject is a group7692 packages_enabled: true, role: :owner, shows_package_registry_permissions: true7693 behaves like display deploy token settings7694 correctly renders the form7695 packages_enabled: false, role: :owner, shows_package_registry_permissions: false7696 behaves like display deploy token settings7697 correctly renders the form7698 packages_enabled: true, role: :maintainer, shows_package_registry_permissions: true7699 behaves like display deploy token settings7700 correctly renders the form7701 packages_enabled: false, role: :maintainer, shows_package_registry_permissions: false7702 behaves like display deploy token settings7703 correctly renders the form7704FileMover7705 #execute7706 local storage7707 when move and field update successful7708 updates the description correctly7709 updates existing upload record7710 schedules a background migration7711 when update_markdown fails7712 does not update the description7713 does not change the upload record7714 when tmp uploader is not local storage7715 when move and field update successful7716 updates the description correctly7717 creates new target upload record an delete the old upload7718 when update_markdown fails7719 does not update the description7720 does not change the upload record7721 security7722 when relative path is involved7723 does not trigger move if path is outside designated directory7724 when symlink is involved7725 does not trigger move if path is outside designated directory7726Ci::CreatePipelineService7727 tags:7728 with valid config7729 creates a pipeline7730 with too many tags7731 creates a pipeline without builds7732 tags persistence7733 with multiple tags7734 when the tags do not exist7735 does not execute N+1 queries7736 when tags are already persisted7737 does not execute N+1 queries7738 with bridge jobs7739 is expected to be empty7740Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches7741 .build7742 with non-evaluable operands7743 creates a new instance of the token7744 with evaluable operands7745 creates a new instance of the token7746 .type7747 is an operator7748 .precedence7749 has a precedence7750 #evaluate7751 when left and right do not match7752 is expected to eq true7753 when left and right match7754 is expected to eq false7755 when left is nil7756 is expected to eq true7757 when right is nil7758 is expected to eq true7759 when left and right are nil7760 is expected to eq true7761 when left is an empty string7762 is expected to eq true7763 when left and right are empty strings7764 is expected to eq false7765 when left is a multiline string and matches right7766 is expected to eq false7767 when left is a multiline string and does not match right7768 is expected to eq true7769 when a matching pattern uses regex flags7770 is expected to eq false7771 when a non-matching pattern uses regex flags7772 is expected to eq true7773Gitlab::GitalyClient::WikiService7774 #find_page7775 sends a wiki_find_page message7776 concatenates the raw data and returns a pair of WikiPage and WikiPageVersion7777 #load_all_pages7778 sends a wiki_get_all_pages message7779 sends a limit of 0 to wiki_get_all_pages7780 concatenates the raw data and returns a pair of WikiPage and WikiPageVersion for each page7781 with limits7782 sends a request with the limit7783Gitlab::Consul::Internal7784 .api_url7785 returns correct value7786 when consul setting is not present in gitlab.yml7787 does not fail7788 .discover_service7789 behaves like returns nil given blank value of7790 is expected to be nil7791 is expected to be nil7792 behaves like returns nil given blank value of7793 is expected to be nil7794 is expected to be nil7795 one service discovered7796 returns the service address and port7797 multiple services discovered7798 uses the first service7799 behaves like handles failure response7800 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued7801 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued7802 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued7803 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued7804 raises Consul::Internal::UnexpectedResponseError when request returns 5007805 raises Consul::Internal::UnexpectedResponseError when request returns non json data7806 .discover_prometheus_server_address7807 returns the server address7808 behaves like returns nil given blank value of7809 is expected to be nil7810 is expected to be nil7811 behaves like handles failure response7812 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued7813 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued7814 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued7815 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued7816 raises Consul::Internal::UnexpectedResponseError when request returns 5007817 raises Consul::Internal::UnexpectedResponseError when request returns non json data7818Integrations::CreateExternalCrossReferenceWorker7819 has the `until_executed` deduplicate strategy7820 behaves like an idempotent worker7821 is labeled as idempotent7822 performs multiple times sequentially without raising an exception7823 can run multiple times with the same arguments7824 mentionable_type: "Commit", mentionable_id: lazy { commit.id }7825 creates a cross reference7826 mentionable_type: "Issue", mentionable_id: lazy { issue.id }7827 creates a cross reference7828 mentionable_type: "MergeRequest", mentionable_id: lazy { merge_request.id }7829 creates a cross reference7830 mentionable_type: "Note", mentionable_id: lazy { note.id }7831 creates a cross reference7832 mentionable_type: "Snippet", mentionable_id: lazy { snippet.id }7833 creates a cross reference7834 error handling7835 project_id does not exist7836 behaves like does not create a cross reference7837 does not create a cross reference7838 author_id does not exist7839 behaves like does not create a cross reference7840 does not create a cross reference7841 mentionable_id does not exist7842 behaves like does not create a cross reference7843 does not create a cross reference7844 mentionable_type is not a Mentionable7845 behaves like does not create a cross reference7846 does not create a cross reference7847 mentionable_type is not a defined constant7848 behaves like does not create a cross reference7849 does not create a cross reference7850 mentionable is a Commit and mentionable_id does not exist7851 behaves like does not create a cross reference7852 does not create a cross reference7853ContainerExpirationPolicies::CleanupService7854 #execute7855 with a successful cleanup tags service execution7856 completely clean up the repository7857 without a successful cleanup tags service execution7858 partially clean up the repository7859 with a truncated cleanup tags service response7860 partially clean up the repository7861 with no repository7862 returns an error response7863 with an invalid policy7864 returns an error response7865 with a network error7866 raises an error7867 next run scheduling7868 with cleanups started_at before policy next_run_at7869 behaves like not scheduling the next run7870 does not scheduled the next run7871 with cleanups started_at around policy next_run_at7872 behaves like not scheduling the next run7873 does not scheduled the next run7874 with only the current repository started_at before the policy next_run_at7875 behaves like scheduling the next run7876 schedules the next run7877 with cleanups started_at after policy next_run_at7878 behaves like scheduling the next run7879 schedules the next run7880 with a future policy next_run_at7881 behaves like not scheduling the next run7882 does not scheduled the next run7883Gitlab::LegacyGithubImport::Client7884 convert OAuth2 client options to symbols7885 does not crash (e.g. Settingslogic::MissingSetting) when verify_ssl config is not present7886 when config is missing7887 is still possible to get an Octokit client7888 is not be possible to get an OAuth2 client7889 allow SSL verification to be configurable on API7890 uses supplied value7891 #api_endpoint7892 when provider does not specity an API endpoint7893 uses GitHub root API endpoint7894 when provider specify a custom API endpoint7895 uses the custom API endpoint7896 when given a host7897 builds a endpoint with the given host and the default API version7898 when given an API version7899 does not use the API version without a host7900 when given a host and version7901 builds a endpoint with the given options7902 and hostname7903 builds a endpoint with the given options7904 github rate limit7905WARNING: `Faraday::Connection#authorization` is deprecated; it will be removed in version 2.0.7906While initializing your connection, use `#request(:authorization, ...)` instead.7907See https://lostisland.github.io/faraday/middleware/authentication for more usage info.7908 does not raise error when rate limit is disabled7909 when wait for rate limit is disabled7910 raises the error limit error when requested7911Gitlab::Kubernetes::Helm::V3::PatchCommand7912 behaves like helm command generator7913 #generate_script7914 returns appropriate command7915 when rbac is true7916 behaves like helm command generator7917 #generate_script7918 returns appropriate command7919 when there is no version7920 is expected to raise ArgumentError with "version is required"7921 #pod_name7922 is expected to eq "install-app-name"7923 behaves like helm command7924 HELM_VERSION7925 is expected to match /\d+\.\d+\.\d+/7926 #env7927 is expected to be a kind of Hash7928 #rbac?7929 rbac is enabled7930 is expected to be truthy7931 rbac is not enabled7932 is expected to be falsey7933 #pod_resource7934 rbac is enabled7935 is expected to be an instance of Kubeclient::Resource7936 generates a pod that uses the tiller serviceAccountName7937 rbac is not enabled7938 is expected to be an instance of Kubeclient::Resource7939 generates a pod that uses the default serviceAccountName7940 #config_map_resource7941 returns a KubeClient resource with config map content for the application7942 #service_account_resource7943 rbac is enabled7944 generates a Kubeclient resource for the tiller ServiceAccount7945 rbac is not enabled7946 generates nothing7947 #cluster_role_binding_resource7948 rbac is enabled7949 generates a Kubeclient resource for the ClusterRoleBinding for tiller7950 binds the account in #service_account_resource7951 rbac is not enabled7952 generates nothing7953Resolvers::AlertManagement::AlertResolver7954 user does not have permission7955 is expected to eq #<ActiveRecord::Relation []>7956 user has permission7957 is expected to contain exactly #<AlertManagement::Alert id:1 namespace1572/project1688^alert#1> and #<AlertManagement::Alert id:2 namespace1572/project1688^alert#2>7958 finding by iid7959 is expected to contain exactly #<AlertManagement::Alert id:1 namespace1572/project1688^alert#1>7960 finding by status7961 is expected to contain exactly #<AlertManagement::Alert id:2 namespace1572/project1688^alert#2>7962 filtering by domain7963 is expected to contain exactly #<AlertManagement::Alert id:1 namespace1572/project1688^alert#1>, #<AlertManagement::Alert id:2 namespace1572/project1688^alert#2>, and #<AlertManagement::Alert id:6 namespace1572/project1688^alert#5>7964 sorting7965 when sorting by events count7966 sorts alerts ascending7967 sorts alerts descending7968Ci::ExpirePipelineCacheService7969 #execute7970 invalidates Etag caching for project pipelines path7971 invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch7972 updates the cached status for a project7973 does not do N+1 queries7974 destroyed pipeline7975 clears the cache7976 when the pipeline is triggered by another pipeline7977 updates the cache of dependent pipeline7978 when the pipeline triggered another pipeline7979 updates the cache of dependent pipeline7980Gitlab::TaskHelpers7981 #checkout_or_clone_version7982 checkout the version and reset to it7983 accepts clone_opts7984 target_dir doesn't exist7985 clones the repo7986 target_dir exists7987 doesn't clone the repository7988 #clone_repo7989 clones the repo in the target dir7990 accepts clone_opts7991 #checkout_version7992 clones the repo in the target dir7993 #run_command7994 runs command and return the output7995 returns empty string when command doesnt exist7996 #run_command!7997 runs command and return the output7998 returns and exception when command exit with non zero code7999 #get_version8000 version: "1.1.1", result: "v1.1.1"8001 is expected to eq "v1.1.1"8002 version: "master", result: "master"8003 is expected to eq "master"8004 version: "12.4.0-rc7", result: "v12.4.0-rc7"8005 is expected to eq "v12.4.0-rc7"8006 version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", result: "594c3ea3e0e5540e5915bd1c49713a0381459dd6"8007 is expected to eq "594c3ea3e0e5540e5915bd1c49713a0381459dd6"8008Gitlab::SlashCommands::IssueNew8009 #execute8010 without description8011 creates the issue8012 with description8013 creates the issue with description8014 with more newlines between the title and the description8015 creates the issue8016 issue cannot be created8017 displays the errors8018 .match8019 matches the title without description8020 matches the title with description8021 matches the alias new8022projects/settings/operations/show8023 Operations > Alerts8024 renders the Operations Settings page8025 Operations > Error Tracking8026 Settings page8027 renders the Operations Settings page8028 Operations > Prometheus8029 when settings_operations_prometheus_service flag is enabled8030 renders the Operations Settings page8031 when settings_operations_prometheus_service is disabled8032 renders the Operations Settings page8033 Operations > Tracing8034 Settings page8035 renders the Tracing Settings page8036ProjectSetting8037 is expected to belong to project required: false8038 validations8039 is expected not to allow :target_platforms to be ‹nil›8040 is expected to allow :target_platforms to be ‹[]›8041 allows any combination of the allowed target platforms8042 is expected not to allow :target_platforms to be ‹[nil]›8043 is expected not to allow :target_platforms to be ‹["not_allowed"]›8044 is expected not to allow :target_platforms to be ‹[:invalid]›8045 target_platforms=8046 stringifies and sorts8047 #human_squash_option8048 squash_option: "never", human_squash_option: "Do not allow"8049 is expected to eq "Do not allow"8050 squash_option: "always", human_squash_option: "Require"8051 is expected to eq "Require"8052 squash_option: "default_on", human_squash_option: "Encourage"8053 is expected to eq "Encourage"8054 squash_option: "default_off", human_squash_option: "Allow"8055 is expected to eq "Allow"8056Gitlab::Usage::ServicePing::InstrumentedPayload8057 when building service ping with values8058 builds the service ping payload for the metrics key_paths8059 when building service ping with instrumentations8060 builds the service ping payload for the metrics key_paths8061 when missing instrumentation class8062 returns empty hash8063TokenAuthenticatableStrategies::Encrypted8064 #token_fields8065 includes the encrypted field8066 #find_token_authenticatable8067 when encryption is required8068 finds the encrypted resource by cleartext8069 when a prefix is required8070 finds the encrypted resource by cleartext8071 when encryption is optional8072 finds the encrypted resource by cleartext8073 uses insecure strategy when encrypted token cannot be found8074 when a prefix is required8075 finds the encrypted resource by cleartext8076 when encryption is migrating8077 finds the cleartext resource by cleartext8078 returns nil if resource cannot be found8079 when a prefix is required8080 finds the encrypted resource by cleartext8081 #get_token8082 when encryption is required8083 returns decrypted token when an encrypted with static iv token is present8084 returns decrypted token when an encrypted token is present8085 when encryption is optional8086 returns decrypted token when an encrypted token is present8087 returns decrypted token when an encrypted with static iv token is present8088 returns the plaintext token when encrypted token is not present8089 when encryption is migrating8090 returns cleartext token when an encrypted token is present8091 returns the cleartext token when encrypted token is not present8092 #set_token8093 when encryption is required8094 writes encrypted token and returns it8095 when encryption is optional8096 writes encrypted token and removes plaintext token and returns it8097 when encryption is migrating8098 writes encrypted token and writes plaintext token8099Projects::MoveLfsObjectsProjectsService8100 #execute8101 links the lfs objects from existent in source project8102 does not link existent lfs_object in the current project8103 rollbacks changes if transaction fails8104 when remove_remaining_elements is false8105 does not remove remaining lfs objects8106Gitlab::Ci::Pipeline::Expression::Lexer8107 #tokens8108 returns single value8109 does ignore whitespace characters8110 returns multiple values of the same token8111 returns multiple values with different tokens8112 returns tokens and operators8113 limits statement to specified amount of tokens8114 raises syntax error in case of finding unknown tokens8115 with complex expressions8116 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8117 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8118 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]8119 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]8120 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]8121 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]8122 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]8123 is expected to eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]8124 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]8125 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]8126 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]8127 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]8128 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]8129 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]8130 expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]8131 is expected to eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]8132 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]8133 is expected to eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]8134 with parentheses are used8135 expression: "($PRESENT_VARIABLE =~ /my var/) && $EMPTY_VARIABLE =~ /nope/", tokens: ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8136 is expected to eq ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8137 expression: "$PRESENT_VARIABLE =~ /my var/ || ($EMPTY_VARIABLE =~ /nope/)", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]8138 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]8139 expression: "($PRESENT_VARIABLE && (null || $EMPTY_VARIABLE == \"\"))", tokens: ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]8140 is expected to eq ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]8141 #lexemes8142 returns an array of syntax lexemes8143Integrations::CustomIssueTracker8144 Validations8145 when integration is active8146 is expected to validate that :project_url cannot be empty/falsy8147 is expected to validate that :issues_url cannot be empty/falsy8148 is expected to validate that :new_issue_url cannot be empty/falsy8149 behaves like issue tracker integration URL attribute8150 is expected to allow :project_url to be ‹"https://example.com"›8151 is expected not to allow :project_url to be ‹"example.com"›8152 is expected not to allow :project_url to be ‹"ftp://example.com"›8153 is expected not to allow :project_url to be ‹"herp-and-derp"›8154 behaves like issue tracker integration URL attribute8155 is expected to allow :issues_url to be ‹"https://example.com"›8156 is expected not to allow :issues_url to be ‹"example.com"›8157 is expected not to allow :issues_url to be ‹"ftp://example.com"›8158 is expected not to allow :issues_url to be ‹"herp-and-derp"›8159 behaves like issue tracker integration URL attribute8160 is expected to allow :new_issue_url to be ‹"https://example.com"›8161 is expected not to allow :new_issue_url to be ‹"example.com"›8162 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›8163 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›8164 when integration is inactive8165 is expected not to validate that :project_url cannot be empty/falsy8166 is expected not to validate that :issues_url cannot be empty/falsy8167 is expected not to validate that :new_issue_url cannot be empty/falsy8168Gitlab::Kubernetes::Helm::V3::DeleteCommand8169 behaves like helm command generator8170 #generate_script8171 returns appropriate command8172 #pod_name8173 is expected to eq "uninstall-app-name"8174 behaves like helm command8175 HELM_VERSION8176 is expected to match /\d+\.\d+\.\d+/8177 #env8178 is expected to be a kind of Hash8179 #rbac?8180 rbac is enabled8181 is expected to be truthy8182 rbac is not enabled8183 is expected to be falsey8184 #pod_resource8185 rbac is enabled8186 is expected to be an instance of Kubeclient::Resource8187 generates a pod that uses the tiller serviceAccountName8188 rbac is not enabled8189 is expected to be an instance of Kubeclient::Resource8190 generates a pod that uses the default serviceAccountName8191 #config_map_resource8192 returns a KubeClient resource with config map content for the application8193 #service_account_resource8194 rbac is enabled8195 generates a Kubeclient resource for the tiller ServiceAccount8196 rbac is not enabled8197 generates nothing8198 #cluster_role_binding_resource8199 rbac is enabled8200 generates a Kubeclient resource for the ClusterRoleBinding for tiller8201 binds the account in #service_account_resource8202 rbac is not enabled8203 generates nothing8204 #delete_command8205 deletes the release8206Gitlab::Cache::Helpers8207 #render_cached8208 single object8209 behaves like object cache helper8210 is expected to be a kind of Gitlab::Json::PrecompiledJson8211 uses the presenter8212 is valid JSON8213 fetches from the cache8214 when a cache context is supplied8215 uses the context to augment the cache key8216 when expires_in is supplied8217 sets the expiry when accessing the cache8218 collection of objects8219 behaves like collection cache helper8220 is expected to be a kind of Gitlab::Json::PrecompiledJson8221 uses the presenter8222 is valid JSON8223 fetches from the cache8224 when a cache context is supplied8225 uses the context to augment the cache key8226 expires_in is supplied8227 sets the expiry when accessing the cache8228Integrations::PropagateService8229 .propagate8230 with inherited integration8231 calls to PropagateIntegrationProjectWorker8232 with a project without integration8233 calls to PropagateIntegrationProjectWorker8234 with a group without integration8235 calls to PropagateIntegrationProjectWorker8236 for a group-level integration8237 with a project without integration8238 calls to PropagateIntegrationProjectWorker8239 with a subgroup without integration8240 calls to PropagateIntegrationGroupWorker8241 with a subgroup with integration8242 calls to PropagateIntegrationInheritDescendantWorker8243Deployments::ArchiveInProjectService8244 #execute8245 when there are archivable deployments8246 returns result code8247 archives the deployment8248 when ref does not exist by some reason8249 does not raise an error8250 when there are no archivable deployments8251 returns result code8252notify/pipeline_failed_email.text.erb8253 when the pipeline contains a failed job8254 behaves like renders the pipeline failed email correctly8255 renders the email correctly8256 behaves like correct pipeline information for pipelines for merge requests8257 when pipeline for merge request8258 renders a source ref of the pipeline8259 when the latest failed job is a bridge job8260 behaves like renders the pipeline failed email correctly8261 renders the email correctly8262 behaves like correct pipeline information for pipelines for merge requests8263 when pipeline for merge request8264 renders a source ref of the pipeline8265Projects::CountService8266 .query8267 raises NotImplementedError8268 #relation_for_count8269 calls the class method query with the project id8270 #count8271 returns the number of rows8272 caches the number of rows8273 #refresh_cache8274 refreshes the cache8275 #delete_cache8276 removes the cache8277 #cache_key_name8278 raises NotImplementedError8279 #cache_key8280 returns the cache key as an Array8281API::Helpers::Authentication8282 class methods8283 .authenticate_with8284 sets namespace_inheritable :authentication to correctly when body is empty8285 sets namespace_inheritable :authentication to correctly when body is not empty8286 helper methods8287 #token_from_namespace_inheritable8288 with no allowed authentication strategies8289 behaves like an anonymous request8290 returns nil8291 with no located credentials8292 behaves like an anonymous request8293 returns nil8294 with one set of located credentials8295 when the credentials contain a valid token8296 behaves like an authenticated request8297 returns the token8298 when the credentials do not contain a valid token8299 behaves like an unauthorized request8300 behaves like stops early8301 calls #unauthorized!8302 with multiple located credentials8303 behaves like stops early8304 calls #bad_request!8305 when a resolver raises UnauthorizedError8306 behaves like an unauthorized request8307 behaves like stops early8308 calls #unauthorized!8309 #access_token_from_namespace_inheritable8310 returns #token_from_namespace_inheritable if it is a personal access token8311 returns nil if #token_from_namespace_inheritable is not a personal access token8312 #ci_build_from_namespace_inheritable8313 returns #token_from_namespace_inheritable if it is a ci build8314 returns nil if #token_from_namespace_inheritable is not a ci build8315 #user_from_namespace_inheritable8316 returns #token_from_namespace_inheritable if it is a deploy token8317 returns #token_from_namespace_inheritable.user if the token is not a deploy token8318 falls back to #find_user_from_warden if #token_from_namespace_inheritable.user is nil8319 falls back to #find_user_from_warden if #token_from_namespace_inheritable is nil8320Gitlab::Ci::Config::External::File::Base8321 #matching?8322 when a location is present8323 returns true8324 with a location is missing8325 returns false8326 #valid?8327 when location is not a string8328 is expected to be falsy8329 when location is not a YAML file8330 is expected to be falsy8331 when location has not a valid naming scheme8332 is expected to be falsy8333 when location is a valid .yml extension8334 is expected to be truthy8335 when location is a valid .yaml extension8336 is expected to be truthy8337 when there are YAML syntax errors8338 is not a valid file8339 #to_hash8340 with includes8341 does expand hash to include the template8342 #metadata8343 is expected to eq {:context_project=>nil, :context_sha=>"HEAD"}8344 #eql?8345 when the other file has the same params8346 is expected to eq true8347 when the other file has not the same params8348 is expected to eq false8349 #hash8350 with a project8351 is expected to eq 42992790936640990468352 without a project8353 is expected to eq 28393355999724048818354Groups::AutoDevopsService#execute8355 when user does not have enough privileges8356 raises exception8357 when user has enough privileges8358 updates group auto devops enabled accordingly8359 when group has projects8360 reflects changes on projects8361 when group has subgroups8362 reflects changes on subgroups8363 when subgroups have projects8364 reflects changes on projects8365MilestoneRelease8366 associations8367 is expected to belong to release required: false8368 is expected to belong to milestone required: false8369 when trying to create the same record in milestone_releases twice8370 is not committing on the second time8371 validations8372 when milestone and release do not have the same project8373 is not valid8374 when milestone and release have the same project8375 is expected to be valid8376Gitlab::ManifestImport::ProjectCreator8377 #execute8378 is expected to be a kind of Project(id: integer, name: string, path: string, description: text, created_at: datetime, updated_at:..._issues: boolean, suggestion_commit_message: string, project_namespace_id: integer, hidden: boolean)8379 is expected to change `Project.count` by 18380 is expected to change `Group.count` by 18381 creates project with valid full path, import url and import source8382Gitlab::CryptoHelper8383 .sha2568384 generates SHA256 digest Base46 encoded8385 .aes256_gcm_encrypt8386 is Base64 encoded string without new line character8387 encrypts using static iv8388 with provided iv8389 encrypts using provided iv8390 .aes256_gcm_decrypt8391 when token was encrypted using static nonce8392 correctly decrypts encrypted string8393 decrypts a value when it ends with a new line character8394 when token was encrypted using random nonce8395 correctly decrypts encrypted string8396Gitlab::SampleDataTemplate8397 .all8398 returns all templates8399 .find8400 when there is a match8401 is expected to be a kind of Gitlab::SampleDataTemplate8402 when there is no match8403 is expected to equal nil8404 .archive_directory8405 is expected to be a kind of Pathname8406 validate all templates8407 sample has a valid archive8408 with valid parameters8409 can be imported8410Ci::JobVariable8411 is expected to belong to job required: false8412 is expected to validate that :key is case-sensitively unique within the scope of :job_id8413 behaves like CI variable8414 is expected to includes the Ci::HasVariable module8415 strips whitespaces when assigning key8416 can convert to runner variable8417 variable type8418 defines variable types8419 defaults variable type to env_var8420 supports variable type file8421Gitlab::SQL::Intersect8422 behaves like SQL set operator8423 .operator_keyword8424 is expected to eq "INTERSECT"8425 #to_sql8426 returns a String joining relations together using a INTERSECT8427 skips Model.none segments8428 uses INTERSECT ALL when removing duplicates is disabled8429 returns `NULL` if all relations are empty8430 when uneven select values are used8431 raises error8432 remove_order parameter8433 when remove_order: true8434 removes the ORDER BY from the query8435 when remove_order: false8436 does not remove the ORDER BY from the query8437Banzai::ReferenceParser::ExternalIssueParser8438 #nodes_visible_to_user8439 when the link has a data-issue attribute8440 creates reference when the feature is 08441 creates reference when the feature is 108442 creates reference when the feature is 208443 #referenced_by8444 when the link has a data-project attribute8445 when the link has a data-external-issue attribute8446 returns an Array of ExternalIssue instances8447 when the link does not have a data-external-issue attribute8448 returns an empty Array8449 when the link does not have a data-project attribute8450 returns an empty Array8451 #issue_ids_per_project8452 returns a Hash containing range IDs per project8453 does not add a project when the data-external-issue attribute is empty8454LegacyDiffNote8455 #to_ability_name8456 is expected to eq "note"8457 callbacks8458 #set_diff8459 when not importing8460 updates st_diff8461 when importing8462 does not update st_diff8463 when st_diff is blank8464 updates st_diff8465Gitlab::Ci::Status::Running8466 #text8467 is expected to eq "running"8468 #label8469 is expected to eq "running"8470 #icon8471 is expected to eq "status_running"8472 #favicon8473 is expected to eq "favicon_status_running"8474 #group8475 is expected to eq "running"8476 #details_path8477 is expected to be nil8478Banzai::Filter::FrontMatterFilter8479 allows for `encoding:` before the front matter8480 converts YAML front matter to a fenced code block8481 converts TOML frontmatter to a fenced code block8482 converts JSON front matter to a fenced code block8483 converts arbitrary front matter to a fenced code block8484 fails fast for strings with many spaces8485 fails fast for strings with many newlines8486 source position mapping8487 keeps spaces before and after8488 keeps an empty line in place of the encoding8489 on content without front matter8490 returns the content unmodified8491 on front matter without content8492 converts YAML front matter to a fenced code block8493Gitlab::PipelineScopeCounts8494 has policy class8495 has expected attributes8496 with large amount of pipelines8497 sets the PIPELINES_COUNT_LIMIT constant to a value of 1_0008498 when there are more records than the limit8499 limits the found items8500Gitlab::SidekiqMiddleware::WorkerContext::Server8501 #call8502 applies a class context8503 doesn't fail for unknown workers8504 feature category8505 takes the feature category from the worker8506 when the worker is not owned8507 takes the feature category from the surrounding context8508Groups::GroupLinks::UpdateService#execute8509 updates existing link8510 updates project permissions8511 executes UserProjectAccessChangedService8512 with only param not requiring authorization refresh8513 does not execute UserProjectAccessChangedService8514Gitlab::Metrics::Subscribers::ExternalHttp8515 .detail_store8516 when external HTTP detail store is empty8517 returns an empty array8518 when the performance bar is not enabled8519 returns an empty array8520 when external HTTP detail store has some values8521 returns the external http detailed store8522 .payload8523 when SafeRequestStore does not have any item from external HTTP8524 returns an empty array8525 when external HTTP recorded some values8526 returns the external http detailed store8527 #request8528 tracks external HTTP request count8529 tracks external HTTP duration8530 tracks external HTTP exceptions8531 stores per-request counters8532 stores a portion of events into the detail store8533 when the performance bar is not enabled8534 does not capture detail store8535Tooling::Danger::Datateam8536 data team danger8537 with structure.sql changes and no Data Warehouse::Impact Check label8538 aggregate_failures8539 with structure.sql changes and Data Warehouse::Impact Check label8540 aggregate_failures8541 with user model changes8542 aggregate_failures8543 with perfomance indicator changes and no Data Warehouse::Impact Check label8544 aggregate_failures8545 with perfomance indicator changes and Data Warehouse::Impact Check label8546 aggregate_failures8547 with metric file changes and no performance indicator changes8548 aggregate_failures8549 with metric file changes and no performance indicator changes and other label8550 aggregate_failures8551 with performance indicator changes and other label8552 aggregate_failures8553 with performance indicator changes, Data Warehouse::Impact Check and other label8554 aggregate_failures8555 with performance indicator changes and other labels8556 aggregate_failures8557Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged8558 behaves like value stream analytics event8559 is expected to be a kind of String8560 is expected to be a kind of Symbol8561 is expected to include ApplicationRecord(abstract)8562 is expected to respond to #timestamp_projection8563 is expected to respond to #html_description8564 is expected to be a kind of Array8565 #apply_query_customization8566 expects an ActiveRecord::Relation object as argument and returns a modified version of it8567 #hash_code8568 returns a hash that uniquely identifies an event8569 does not differ when the same object is built with the same params8570 behaves like LEFT JOIN-able value stream analytics event8571 can use the event as LEFT JOIN8572 when looking at the record with data8573 contains the timestamp expression8574 when looking at the record without data8575 returns nil for the timestamp expression8576Clusters::Agents::AuthorizationConfigScopes8577 .with_available_ci_access_fields8578 is expected to contain exactly #<Clusters::Agents::ProjectAuthorization id: 1, project_id: 1656, agent_id: 1, config: {"default_namespace"=>"production"}>, #<Clusters::Agents::ProjectAuthorization id: 2, project_id: 1656, agent_id: 2, config: {"access_as"=>{}}>, and #<Clusters::Agents::ProjectAuthorization id: 3, project_id: 1656, agent_id: 3, config: {"access_as"=>{"agent"=>{}}}>8579Users::UnbanService8580 unban8581 when successful8582 returns success status8583 unbans the user8584 removes the BannedUser8585 logs unban in application logs8586 when failed8587 when user is already active8588 returns state error message8589 behaves like does not modify the BannedUser record or user state8590 does not modify the BannedUser record or user state8591 when user is not an admin8592 returns permissions error message8593 behaves like does not modify the BannedUser record or user state8594 does not modify the BannedUser record or user state8595User8596 types consistency checks8597 scopes & predicates8598 .humans8599 includes humans only8600 .bots8601 includes all bots8602 .without_bots8603 includes everyone except bots8604 .bots_without_project_bot8605 includes all bots except project_bot8606 .non_internal8607 includes all non_internal users8608 .without_ghosts8609 includes everyone except ghosts8610 .without_project_bot8611 includes everyone except project_bot8612 #bot?8613 is true for all bot user types and false for others8614 #human?8615 is true for humans only8616 #internal?8617 is true for all internal user types and false for others8618Mutations::Groups::Update8619 is expected to require graphql authorizations :admin_group8620 #resolve8621 changing shared runners setting8622 user_role: :owner, shared_examples_name: "updating the group shared runners setting"8623 behaves like updating the group shared runners setting8624 updates the group shared runners setting8625 returns no errors8626 with invalid params8627 doesn't update the shared_runners_setting8628 returns an error8629 user_role: :developer, shared_examples_name: "denying access to group shared runners setting"8630 behaves like denying access to group shared runners setting8631 raises Gitlab::Graphql::Errors::ResourceNotAvailable8632 user_role: :reporter, shared_examples_name: "denying access to group shared runners setting"8633 behaves like denying access to group shared runners setting8634 raises Gitlab::Graphql::Errors::ResourceNotAvailable8635 user_role: :guest, shared_examples_name: "denying access to group shared runners setting"8636 behaves like denying access to group shared runners setting8637 raises Gitlab::Graphql::Errors::ResourceNotAvailable8638 user_role: :anonymous, shared_examples_name: "denying access to group shared runners setting"8639 behaves like denying access to group shared runners setting8640 raises Gitlab::Graphql::Errors::ResourceNotAvailable8641Deployments::LinkMergeRequestWorker8642 #perform8643 links merge requests to the deployment8644 does not link merge requests when the deployment is not found8645 idempotent8646 is labeled as idempotent8647 performs multiple times sequentially without raising an exception8648 links merge requests to deployment8649Ci::CreatePipelineService8650 job:parallel8651 numeric8652 creates the pipeline8653 creates 3 jobs8654 matrix8655 creates the pipeline8656 creates 4 builds with the corresponding matrix variables8657 when a bridge is using parallel:matrix8658 creates the pipeline8659 creates 1 build and 4 bridges with the corresponding matrix variables8660ProgrammingLanguage8661 is expected to respond to #name8662 is expected to respond to #color8663 is expected to validate that :name cannot be empty/falsy8664 is expected to allow :color to be ‹"#000000"›8665 is expected not to allow :color to be ‹"000000"›8666 is expected not to allow :color to be ‹"#0z0000"›8667 .with_name_case_insensitive scope8668 accepts a single name parameter8669 accepts multiple names8670TriggerVariableEntity8671 exposes the variable key8672 when user has access to the value8673 when user is maintainer8674 exposes the variable value8675 when user is owner8676 exposes the variable value8677 when user does not have access to the value8678 does not expose the variable value8679Mutations::AlertManagement::UpdateAlertStatus8680 is expected to require graphql authorizations :update_alert_management_alert8681 #resolve8682 raises an error if the resource is not accessible to the user8683 user has access to project8684 changes the status8685 returns the alert with no errors8686 behaves like an incident management tracked event8687 .track_event8688 tracks the event using redis8689 error occurs when updating8690 returns the alert with errors8691 invalid status given8692 returns the alert with errors8693Gitlab::Database::BackgroundMigration::BatchedMigrationWrapper#perform8694 runs the migration job8695 updates the tracking record in the database8696 when running a job that failed previously8697 increments attempts and updates other fields8698 when the migration job does not raise an error8699 marks the tracking record as succeeded8700 tracks metrics of the execution8701 when the migration job raises an error8702 behaves like an error is raised8703 marks the tracking record as failed8704 tracks metrics of the execution8705 behaves like an error is raised8706 marks the tracking record as failed8707 tracks metrics of the execution8708 behaves like an error is raised8709 marks the tracking record as failed8710 tracks metrics of the execution8711 when the batched background migration does not inherit from BatchedMigrationJob8712 runs the job with the correct arguments8713Integrations::ResetSecretFields8714 behaves like Integrations::ResetSecretFields8715 #exposing_secrets_fields8716 returns an array of strings8717 #reset_secret_fields?8718 returns false if no exposing field has changed8719 returns true if any exposing field has changed8720 validation callback8721 when an exposing field has changed8722 clears all secret fields8723 when a secret field has been updated8724 does not clear this secret field8725 when a secret field has been updated with the same value8726 does not clear this secret field8727 when no exposing field has changed8728 does not clear any secret fields8729shared/issuable/_sidebar.html.haml8730 project in a group8731 issuable that does not support escalations8732 shows escalation policy dropdown8733 issuable that supports escalations8734 does not show escalation policy dropdown8735 crm contacts widget8736 without permission8737 is expected not to be shown8738 without contacts8739 is expected not to be shown8740 with permission and contacts8741 is expected to be shown8742PagesDomainVerificationCronWorker8743 #perform8744 does nothing if the database is read-only8745 enqueues a PagesDomainVerificationWorker for domains needing verification8746 behaves like a pages cronjob scheduling jobs with context8747 schedules the renewal with a context8748 with RequestStore enabled8749 does not cause extra queries for multiple domains8750BreadcrumbsHelper8751 #push_to_schema_breadcrumb8752 enqueue element name, link and position8753 when link is relative8754 converts the url into absolute8755 when link is invalid8756 returns the current url8757 when link is nil8758 returns the current url8759 #schema_breadcrumb_json8760 returns the breadcrumb schema in json format8761 when extra breadcrumb element is added8762 include the extra elements before the last element8763FeatureFlags::DestroyService8764 #execute8765 returns status success8766 destroys feature flag8767 creates audit log8768 when user is reporter8769 returns error status8770 when feature flag can not be destroyed8771 returns status error8772 does not create audit log8773Gitlab::SidekiqLogging::JSONFormatter8774 with a Hash8775 properly formats timestamps into ISO 8601 form8776 removes jobstr from the hash8777 does not modify the input hash8778 job arguments8779 properly flattens arguments to a String8780 when the arguments are bigger than the maximum allowed8781 keeps args from the front until they exceed the limit8782 when the job has non-integer arguments8783 only allows permitted non-integer arguments through8784 when the job has a non-integer value for retry8785 retry_in_job: 3, retry_in_logs: 38786 logs as the correct integer8787 retry_in_job: true, retry_in_logs: 258788 logs as the correct integer8789 retry_in_job: false, retry_in_logs: 08790 logs as the correct integer8791 retry_in_job: nil, retry_in_logs: 08792 logs as the correct integer8793 retry_in_job: "string", retry_in_logs: -18794 logs as the correct integer8795 with a String8796 accepts strings with no changes8797JobArtifactReportEntity8798 #as_json8799 exposes file_type8800 exposes file_format8801 exposes size8802 exposes download path8803RuboCop::Cop::ActiveRecordAssociationReload8804 when using ActiveRecord::Base8805 registers an offense on reload usage8806 does not register an offense on reset usage8807 when using ActiveRecord::Relation8808 registers an offense on reload usage8809 does not register an offense on reset usage8810 when using on self8811 registers an offense on reload usage8812 does not register an offense on reset usage8813MilestonesFinder8814 without filters8815 returns milestones for projects8816 returns milestones for groups8817 milestones for groups and project8818 returns milestones for groups and projects8819 orders milestones by due date8820 when grouping and sorting by expired_last8821 current milestones are returned first, then milestones without due date followed by expired milestones, sorted by due date in ascending order8822 #find_by8823 finds a single milestone8824 with filters8825 filters by id8826 filters by active state8827 filters by closed state8828 filters by title8829 filters by search_title8830 by timeframe8831 returns milestones with start_date and due_date between timeframe8832 returns milestones which starts before the timeframe8833 returns milestones which ends after the timeframe8834Mutations::SavedReplies::Create8835 #resolve8836 when feature is disabled8837 raises Gitlab::Graphql::Errors::ResourceNotAvailable8838 when feature is enabled for current user8839 when service fails to create a new saved reply8840 is expected to be nil8841 is expected to contain exactly "Content can't be blank", "Name can't be blank", and "Name can contain only lowercase letters, digits, '_' and '-'. Must start with a letter, and cannot end with '-' or '_'"8842 when service successfully creates a new saved reply8843 is expected to eq "save_reply_name"8844 is expected to eq "Save Reply Content"8845 is expected to be empty8846Gitlab::Diff::PairSelector8847 #to_a8848 finds all pairs8849 when there are empty lines8850 is expected not to raise Exception8851 when there are only removals8852 returns empty collection8853 when there are only additions8854 returns empty collection8855 when there are no changes8856 returns empty collection8857Projects::BranchesByModeService8858 #execute8859 page is passed8860 uses offset pagination8861 but the page does not contain any branches8862 uses offset pagination8863 search is passed8864 uses offset pagination8865 branch_list_keyset_pagination is disabled8866 uses offset pagination8867 uses gitaly pagination8868 returns branches for the first page8869 when second page is requested8870 returns branches for the first page8871 when last page is requested8872 returns branches after the specified branch8873 filter by mode8874 stale8875 returns stale branches8876 active8877 returns active branches8878StuckExportJobsWorker8879 with started export status8880 behaves like project export job detection8881 when the job has completed8882 when the export status was already updated8883 does not mark the export as failed8884 when the export status was not updated8885 marks the project as failed8886 when the job is not in queue and db record in queued state8887 marks the project as failed8888 when the job is running in Sidekiq8889 does not mark the project export as failed8890DevOpsReport::MetricPresenter8891 #cards8892 includes instance score, leader score and percentage score8893 #idea_to_production_steps8894 returns percentage score when it depends on a single feature8895 returns percentage score when it depends on two features8896 #average_percentage_score8897 calculates an average value across all the features8898Gitlab::Ci::Badge::Pipeline::Template8899 behaves like a badge template8900 #key_text8901 says pipeline by default8902 when custom key_text is defined8903 returns custom value8904 when its size is larger than the max allowed value8905 returns default value8906 #key_width8907 is fixed by default8908 when custom key_width is defined8909 returns custom value8910 when it is larger than the max allowed value8911 returns default value8912 #value_text8913 is status value8914 widths and text anchors8915 has fixed width and text anchors8916 #key_color8917 is always the same8918 #value_color8919 when status is success8920 has expected color8921 when status is failed8922 has expected color8923 when status is running8924 has expected color8925 when status is preparing8926 has expected color8927 when status is unknown8928 has expected color8929 when status does not match any known statuses8930 has expected color8931AlertManagement::MetricImages::UploadService8932 #execute8933 user does not have permissions8934 behaves like no metric saved, an error given8935 returns an error and does not upload8936 user has permissions8937 behaves like uploads the metric8938 uploads the metric and returns a success8939 no url given8940 behaves like uploads the metric8941 uploads the metric and returns a success8942 record invalid8943 behaves like no metric saved, an error given8944 returns an error and does not upload8945 user is guest8946 behaves like no metric saved, an error given8947 returns an error and does not upload8948Mutations::Labels::Create8949 is expected to require graphql authorizations :admin_label8950 when creating a project label8951 behaves like create labels mutation8952 #resolve8953 when the user does not have permission to create a label8954 raises an error8955 when the user can create a label8956 creates label with correct values8957 when creating a group label8958 behaves like create labels mutation8959 #resolve8960 when the user does not have permission to create a label8961 raises an error8962 when the user can create a label8963 creates label with correct values8964 #ready?8965 when passing both project_path and group_path8966 raises an argument error8967 when passing only project_path or group_path8968 does not raise an error8969Resolvers::TreeResolver8970 is expected to have nullable GraphQL type Tree8971 #resolve8972 resolves to a tree8973 resolve to a recursive tree8974 when repository does not exist8975 returns nil8976Gitlab::SidekiqMiddleware::Monitor8977 #call8978 calls Gitlab::SidekiqDaemon::Monitor8979 passthroughs the return value8980 when cancel happens8981 skips the job8982 puts job in DeadSet8983PropagateIntegrationProjectWorker8984 #perform8985 behaves like an idempotent worker8986 is labeled as idempotent8987 performs multiple times sequentially without raising an exception8988 calls to BulkCreateIntegrationService8989 with a group integration8990 calls to BulkCreateIntegrationService8991 with an invalid integration id8992 returns without failure8993Gitlab::Bullet::Exclusions8994 #execute8995 with preferred method of path and method name8996 behaves like loads exclusion results8997 is expected to match [["_path_", "_method_"]]8998 with file pattern8999 behaves like loads exclusion results9000 is expected to match [["_file_pattern_"]]9001 with file name and line range9002 behaves like loads exclusion results9003 is expected to match [["file_name.rb", 5..10]]9004 without exclusions9005 behaves like loads exclusion results9006 is expected to match [[]]9007 without exclusions key in config9008 behaves like loads exclusion results9009 is expected to match []9010 when config file does not exist9011 provides an empty array for exclusions9012 #validate_paths!9013 when validating scenarios9014 when using paths with method name9015 when source file for exclusion exists9016 is expected not to raise Exception9017 when source file for exclusion does not exist9018 is expected to raise RuntimeError9019 when using path only9020 when source file for exclusion exists9021 is expected not to raise Exception9022 when source file for exclusion does not exist9023 is expected to raise RuntimeError9024 when path_with_method is false for a file pattern9025 is expected not to raise Exception9026projects/commits/_commit.html.haml9027 with different committer9028DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: projects/commits/_commit.html.haml (called from block (3 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/views/projects/commits/_commit.html.haml_spec.rb:22)9029DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: projects/commits/_commit.html.haml (called from block (3 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/views/projects/commits/_commit.html.haml_spec.rb:22)9030 renders committed by user9031 with a signed commit9032 does not display a loading spinner for GPG status9033 with ci status9034 when pipelines are disabled9035 does not display a ci status icon9036 when pipelines are enabled9037 does display a ci status icon when pipelines are enabled9038Branches::ValidateNewService9039 #execute9040 validation9041 returns error with an invalid branch name9042 returns success with a valid branch name9043 branch exist9044 returns error when branch exists9045 returns success when branch name is available9046PurgeDependencyProxyCacheWorker9047 #perform9048 an admin user9049 when admin mode is enabled9050 is labeled as idempotent9051 performs multiple times sequentially without raising an exception9052 marks the blobs as pending_destruction and returns ok9053 when admin mode is disabled9054 behaves like not expiring blobs and manifests9055 does not expire blobs and manifests9056 a non-admin user9057 behaves like not expiring blobs and manifests9058 does not expire blobs and manifests9059 an invalid user id9060 behaves like not expiring blobs and manifests9061 does not expire blobs and manifests9062 an invalid group9063 behaves like not expiring blobs and manifests9064 does not expire blobs and manifests9065Gitlab::Config::Entry::Boolean9066 validations9067 when entry config value is valid9068 #value9069 returns key value9070 #valid?9071 is valid9072 when entry value is not valid9073 #errors9074 saves errors9075PagesDomainSslRenewalCronWorker9076 #perform9077 enqueues a PagesDomainSslRenewalWorker for domains needing renewal9078 behaves like a pages cronjob scheduling jobs with context9079 schedules the renewal with a context9080 with RequestStore enabled9081 does not cause extra queries for multiple domains9082 when letsencrypt integration is disabled9083 does nothing9084Gitlab::InternalPostReceive::Response9085 #add_merge_request_urls9086 when there are urls_data9087 adds a message for each merge request URL9088 #add_merge_request_url9089 when :new_merge_request is false9090 adds a basic message to view the existing merge request9091 when :new_merge_request is true9092 adds a basic message to create a new merge request9093 #add_basic_message9094 when text is present9095 adds a basic message9096 when text is blank9097 does not add a message9098 #add_alert_message9099 when text is present9100 adds a alert message9101 when text is blank9102 does not add a message9103 #reference_counter_decreased9104 initially9105 reference_counter_decreased is set to false9106 #reference_counter_decreased=9107 when the argument is truthy9108 reference_counter_decreased is truthy9109 when the argument is falsey9110 reference_counter_decreased is falsey9111Gitlab::Ci::Status::Skipped9112 #text9113 is expected to eq "skipped"9114 #label9115 is expected to eq "skipped"9116 #icon9117 is expected to eq "status_skipped"9118 #favicon9119 is expected to eq "favicon_status_skipped"9120 #group9121 is expected to eq "skipped"9122 #details_path9123 is expected to be nil9124Gitlab::UsageDataCounters::KubernetesAgentCounter9125 behaves like a redis usage counter9126 .count(gitops_sync)9127 increments the Kubernetes Agent gitops_sync counter by 19128 .read(gitops_sync)9129 returns the total number of gitops_sync events9130 behaves like a redis usage counter with totals9131 totals9132 can report all totals9133 unknown events9134 cannot increment9135 cannot read9136 behaves like a redis usage counter9137 .count(k8s_api_proxy_request)9138 increments the Kubernetes Agent k8s_api_proxy_request counter by 19139 .read(k8s_api_proxy_request)9140 returns the total number of k8s_api_proxy_request events9141 behaves like a redis usage counter with totals9142 totals9143 can report all totals9144 unknown events9145 cannot increment9146 cannot read9147 .increment_event_counts9148 increments the specified counters by the new increment amount9149 event is unknown9150 raises an ArgumentError9151 increment is negative9152 raises an ArgumentError9153Create base work item types in production9154 behaves like work item base types importer9155OK9156 creates all base work item types9157Banzai::Filter::ImageLinkFilter9158 wraps the image with a link to the image src9159 does not wrap a duplicate link9160 works with external images9161 works with inline images9162 keep the data-canonical-src9163 moves the data-diagram* attributes9164 adds no-attachment icon class to the link9165 when :link_replaces_image is true9166 replaces the image with link to image src9167 uses image alt as a link text9168 uses image data-src as a link text9169 adds attachment icon class to the link9170GraphHelper9171 #get_refs9172 filters our refs used by GitLab9173 #should_render_dora_charts9174 always returns false9175 #should_render_quality_summary9176 always returns false9177TestReportEntity9178 #as_json9179 contains the total time9180 contains the counts9181 contains the test suites9182Database::DropDetachedPartitionsWorker9183 #perform9184 drops detached partitions9185 reports partition metrics9186Issue::Email9187 Associations9188 is expected to belong to issue required: false9189 Validations9190 is expected to validate that :issue cannot be empty/falsy9191 is expected to validate that :issue is case-sensitively unique9192 is expected to validate that :email_message_id is case-sensitively unique9193 is expected to validate that the length of :email_message_id is at most 10009194 is expected to validate that :email_message_id cannot be empty/falsy9195ProtectedBranchPolicy9196 branches can be updated via project maintainers9197 branches can't be updated by guests9198TestCaseEntity9199 #as_json9200 when test case is success9201 contains correct test case details9202 when test case is failed9203 contains correct test case details9204 when no test name is entered9205 contains correct test case details9206 when attachment is present9207 returns the attachment_url9208 when attachment is not present9209 returns a nil attachment_url9210Ci::CreatePipelineService9211 #execute9212 with deployment tier9213 creates the environment with the expected tier9214 when tier is testing9215 creates the environment with the expected tier9216Ide::BaseConfigService9217 #execute9218 when insufficient permission9219 returns an error9220 for developer9221 when file is missing9222 returns an error9223 when file is present9224 content is not valid9225 returns an error9226Gitlab::UrlBlockers::IpAllowlistEntry9227 #initialize9228 initializes without port9229 initializes with port9230 #match?9231 matches with equivalent IP and port9232 matches any port when port is nil9233 does not match when port is present but requested_port is nil9234 matches when port and requested_port are nil9235 works with ipv69236 matches ipv4 within IPv4 range9237 matches IPv6 within IPv6 range9238AlertManagement::HttpIntegrationPolicy9239 rules9240 is expected to be disallowed :admin_operations9241 when maintainer9242 is expected to be allowed :admin_operations9243Banzai::Filter::TableOfContentsTagFilter9244 table of contents9245 [[_TOC_]] as tag9246 behaves like table of contents tag9247 replaces toc tag with ToC result9248 handles an empty ToC result9249 [[_toc_]] as tag9250 behaves like table of contents tag9251 replaces toc tag with ToC result9252 handles an empty ToC result9253 [TOC] as tag9254 behaves like table of contents tag9255 replaces toc tag with ToC result9256 handles an empty ToC result9257 [toc] as tag9258 behaves like table of contents tag9259 replaces toc tag with ToC result9260 handles an empty ToC result9261PodLogs::BaseService9262 #initialize9263 filters the parameters9264 #check_arguments9265 when cluster and namespace are provided9266 returns success9267 when cluster is nil9268 returns an error9269 when namespace is nil9270 returns an error9271 when namespace is empty9272 returns an error9273 when pod_name and container_name are provided9274 returns success9275 when pod_name is not a string9276 returns error9277 when container_name is not a string9278 returns error9279 #get_pod_names9280 returns success with a list of pods9281Resolvers::Users::GroupsResolver9282 #resolve9283 when resolver object is current user9284 is expected to match [#<Group id:5142 @a-public-maintainer>, #<Group id:5140 @b-private-maintainer>, #<Group id:5141 @c-public-developer>, #<Group id:5139 @public-guest>]9285 when permission is :create_projects9286 is expected to match [#<Group id:5142 @a-public-maintainer>, #<Group id:5140 @b-private-maintainer>, #<Group id:5141 @c-public-developer>]9287 when search is provided9288 is expected to match [#<Group id:5142 @a-public-maintainer>, #<Group id:5140 @b-private-maintainer>]9289 when resolver object is different from current user9290 is expected to be nil9291 when current_user is admin9292 is expected to match [#<Group id:5142 @a-public-maintainer>, #<Group id:5140 @b-private-maintainer>, #<Group id:5141 @c-public-developer>, #<Group id:5139 @public-guest>]9293Packages::Rubygems::MetadataExtractionService9294 #execute9295 creates the metadata9296 stores the metadata9297 with an existing metadatum9298 updates it9299Types::Tree::TypeEnum9300 is expected to eq "EntryType"9301 exposes all tree entry types9302environments routing9303 routing environment folders9304 when using JSON format9305 correctly matches environment name and JSON format9306 when using HTML format9307 correctly matches environment name and HTML format9308 when using implicit format9309 correctly matches environment name9310Packages::Generic::FindOrCreatePackageService9311 #execute9312 when packages does not exist yet9313 creates package9314 creates package and package build info when build is provided9315 when packages already exists9316 when package was created manually9317 finds the package and does not create package build info even if build is provided9318 when package was created by pipeline9319 finds the package and does not change package build info even if build is provided9320 when a pending_destruction package exists9321 creates a new package9322BulkImports::Projects::Pipelines::PipelineSchedulesPipeline9323 imports schedule into destination project9324 is active9325 imports the schedule but active is false9326groups/_home_panel9327 renders the group ID9328 admin area link9329 renders admin area link for admin9330 does not render admin area link for non-admin9331 does not render admin area link for anonymous9332Gitlab::EtagCaching::Router9333 .match9334 with RESTful routes9335 matches project pipelines endpoint9336 with GraphQL routes9337 matches pipelines endpoint9338 matches pipeline sha endpoint9339Graphql::Arguments9340 returns a blank string if the arguments are blank9341 returns a serialized arguments if the arguments are not blank9342 supports merge with +9343 supports merge with + and a string9344 supports merge with + and a string when empty9345 supports merge with + and an empty string9346 serializes all values correctly9347Projects::FetchStatisticsIncrementService9348 #execute9349 creates a new record for today with count == 19350 doesn't increment previous days statistics9351 when the record already exists for today9352 increments the today record count by 19353Gitlab::ContainerRepository::Tags::Cache9354 #populate9355 with tags9356 gets values from redis9357 with cached values9358 gets values from redis9359 with no tags9360 behaves like not interacting with redis9361 does not interact with redis9362 #insert9363 with tags9364 inserts values in redis9365 with some of them already cached9366 behaves like not interacting with redis9367 does not interact with redis9368 with no tags9369 behaves like not interacting with redis9370 does not interact with redis9371 with no expires_in9372 behaves like not interacting with redis9373 does not interact with redis9374Mutations::Notes::RepositionImageDiffNote9375 #resolve9376 when the user does not have permission9377 raises an error if the resource is not accessible to the user9378 when the user has permission9379 mutates the note9380 when the note is a DiffNote, but not on an image9381 raises an error9382Ci::CompareCodequalityReportsService9383 #execute9384 when head pipeline has a codequality report9385 returns status and data9386 when base and head pipelines have codequality reports9387 returns status and data9388help/index9389 version information9390 is hidden from guests9391 when logged in9392 shows a link to the tag to users9393 shows a link to the commit for pre-releases9394 instance configuration link9395 is visible to guests9396 Markdown rendering9397 renders Markdown9398BulkImports::PipelineWorker9399 behaves like successfully runs the pipeline9400 runs the given pipeline successfully9401 when the pipeline cannot be found9402 logs the error9403 when the pipeline raises an exception9404 logs the error9405 when entity is failed9406 marks tracker as failed and logs the error9407 when it is a network error9408 reenqueue on retriable network errors9409 when ndjson pipeline9410 runs the pipeline successfully9411 when export status is started9412 reenqueues pipeline worker9413 when job reaches timeout9414 marks as failed and logs the error9415 when export status is failed9416 marks as failed and logs the error9417Gitlab::Config::Entry::ComposableArray9418 #valid?9419 is valid9420 is invalid9421 is expected not to be valid9422 #compose!9423 composes child entry with configured value9424 composes child entries with configured values9425 #descendants9426 creates descendant nodes9427Gitlab::AvatarCache9428 #by_email9429 writes a new value into the cache9430 finds the cached value and doesn't execute the block9431 finds the cached value in the request store and doesn't execute the block9432 #delete_by_email9433 no emails, somehow9434 is expected to eq 09435 single email9436 removes the email9437 multiple emails9438 removes the emails it finds9439Boards::DestroyService9440 with project board9441 behaves like board destroy service9442 #execute9443 when there is more than one board9444 destroys the board9445 when there is only one board9446 does not remove board9447 with group board9448 behaves like board destroy service9449 #execute9450 when there is more than one board9451 destroys the board9452 when there is only one board9453 does not remove board9454Resolvers::GroupMembers::NotificationEmailResolver9455 #resolve9456 is expected to have nullable GraphQL type String9457 when current_user is admin9458 returns email9459 when current_user is not admin9460 raises ResourceNotAvailable error9461DataList9462 #to_array9463 returns current data9464Tooling::Crystalball::CoverageLinesExecutionDetector9465 #detect9466 is expected to eq ["file.rb"]9467 with no changes9468 is expected to eq []9469 with previously uncovered file9470 is expected to eq ["file.rb"]9471 with path outside of root9472 is expected to eq []9473 with path in excluded prefix9474 is expected to eq []9475MergeRequestForPipelineEntity9476 as json9477 exposes needed attributes9478Settings9479 #ldap9480 can be accessed with dot syntax all the way down9481 can be accessed in a very specific way that breaks without reassigning each element with Settingslogic9482 #host_without_www9483 URL with protocol9484 returns the host9485 URL without protocol9486 returns the host9487 URL with user/port9488 returns the host9489BitbucketServer::Page9490 #items9491 returns collection of needed objects9492 #attrs9493 returns attributes9494 #next?9495 returns true9496 returns false9497 #next9498 returns next attribute9499JiraConnect::SyncService9500 #execute9501 calls Atlassian::JiraConnect::Client#store_dev_info and logs the response9502 when a request returns an error9503 logs the response as an error9504Gitlab::FogbugzImport::ProjectCreator9505 creates project with private visibility level9506BulkImports::Configuration9507 associations9508 is expected to belong to bulk_import required: true9509 validations9510 is expected to validate that the length of :url is at most 2559511 is expected to validate that the length of :access_token is at most 2559512 is expected to validate that :url cannot be empty/falsy9513 is expected to validate that :access_token cannot be empty/falsy9514MergeRequestSidebarExtrasEntity9515 #assignees9516 contains assignees attributes9517 #reviewers9518 contains reviewers attributes9519Gitlab::Ci::Config::Entry::Release::Assets9520 validation9521 when entry config value is correct9522 #value9523 returns assets configuration9524 #valid?9525 is valid9526 when entry value is not correct9527 #errors9528 when value of assets is invalid9529 reports error9530 when value of assets:links is empty9531 reports error9532 when there is an unknown key present9533 reports error9534TermAgreement9535 validations9536 is expected to validate that :term cannot be empty/falsy9537 is expected to validate that :user cannot be empty/falsy9538 .accepted9539 only includes accepted terms9540Gitlab::Database::Type::JsonPgSafe9541 #serialize9542 value: nil, json: nil9543 is expected to eq nil9544 value: 1, json: "1"9545 is expected to eq "1"9546 value: 1.0, json: "1.0"9547 is expected to eq "1.0"9548 value: "str\u0000ing\u0000", json: "\"string\""9549 is expected to eq "\"string\""9550 value: ["\u0000arr", "a\u0000y"], json: "[\"arr\",\"ay\"]"9551 is expected to eq "[\"arr\",\"ay\"]"9552 value: {"key\u0000"=>"value\u0000\u0000"}, json: "{\"key\":\"value\"}"9553 is expected to eq "{\"key\":\"value\"}"9554shared/milestones/_top.html.haml9555 does not render a deprecation message for a non-legacy and non-dashboard milestone9556MergeRequestSidebarBasicEntity9557 #current_user9558 contains attributes related to the current user9559API::Entities::DeployKeysProject9560 #as_json9561 includes basic fields9562ForceCompanyTrialExperiment9563 when a user is setup_for_company9564 is not excluded9565 when a user is not setup_for_company9566 is excluded9567ProjectTracingSetting9568 #external_url9569 Validations9570 external_url9571 accepts a valid url9572 fails with an invalid url9573 fails with a blank string9574 sanitizes the url9575BulkImports::Groups::Graphql::GetProjectsQuery9576 has a valid query9577 with invalid variables9578 raises an error9579 #data_path9580 returns data path9581 #page_info_path9582 returns pagination information path9583gitlab:metrics_exporter:install9584 when no target directory is specified9585Please specify the directory where you want to install the exporter9586Usage: rake "gitlab:metrics_exporter:install[/installation/dir]"9587 aborts with an error message9588 when target directory is specified9589 installs the exporter with gmake9590 installs the exporter with make9591 when dependencies are missing9592Couldn't find a 'make' binary9593 aborts with an error message9594 when overriding version via environment variable9595 clones from repository with that version instead9596ApplicationsFinder9597 #execute9598 returns an array of instance applications9599 by_id9600 with existing id9601 returns the application9602 with invalid id9603 returns nil for user application9604 returns nil for group application9605 returns nil for non-existing application9606Autocomplete::ActsAsTaggableOn::TagsFinder9607 #execute9608 with empty params9609 returns all tags9610 filter by search9611 with an empty search term9612 returns all tags9613 with a search containing 2 characters9614 returns the tag that strictly matches the search term9615 with a search containing 3 characters9616 returns the tag that partially matches the search term9617 limit9618 limits the result set by the limit constant9619ProductAnalytics::BuildActivityGraphService9620 returns a valid graph hash9621InstanceMetadata::Kas9622 has InstanceMetadataPolicy as declarative policy9623 when KAS is enabled9624 has the correct properties9625 when KAS is disabled9626 has the correct properties9627BulkImports::ImportsFinder9628 #execute9629 returns a list of imports associated with user9630 when status is specified9631 returns a list of import entities filtered by status9632 when invalid status is specified9633 does not filter entities by status9634 when order is specifed9635 when order is specified as asc9636 returns entities sorted ascending9637 when order is specified as desc9638 returns entities sorted descending9639Gitlab::ExternalAuthorization::Cache9640 #load9641 reads stored info from redis9642 #store9643 sets the values in redis9644Gitlab::Ci::Artifacts::Metrics9645 #increment_destroyed_artifacts9646 when incrementing by more than one9647 increments a single counter9648Gitlab::Middleware::CompressedJson9649 #call9650 with collector route9651 behaves like decompress middleware9652 replaces input with a decompressed content9653 with collector route under relative url9654 behaves like decompress middleware9655 replaces input with a decompressed content9656 with some other route9657 keeps the original input9658 payload is too large9659 reads only limited size9660API::Entities::BasicProjectDetails9661 #default_branch9662 delegates to Project#default_branch_or_main9663 anonymous user9664 is not included9665ErrorTracking::Collector::SentryAuthParser9666 .parse9667 returns correct value for public_key9668 with empty headers9669 fails with exception9670 with missing sentry_key9671 returns empty value for public_key9672API::Validations::Validators::UntrustedRegexp9673 valid regex9674 does not raise a validation error9675 invalid regex9676 raises a validation error9677API::Entities::Ci::JobArtifactFile9678 returns the filename9679 returns the size9680FileHookWorker9681 #perform9682 executes Gitlab::FileHook with expected values9683 logs message in case of file_hook execution failure9684Gitlab::PhabricatorImport::Conduit::Maniphest9685 #tasks9686 calls the api with the correct params9687 returns a parsed response9688Gitlab::GithubImport::Stage::ImportPullRequestsWorker9689 raises an error9690 #import9691 imports all the pull requests9692ProjectMirrorSerializer9693 represents ProjectMirror entities9694Types::UserStatusType9695 is expected to eq "UserStatus"9696 exposes the expected fields9697Gitlab::Kubernetes::Kubeconfig::Entry::User9698 #to_h9699 is expected to eq {:name=>"name", :user=>{:token=>"token"}}9700Gitlab::FogbugzImport::Client9701 retrieves user_map with one user9702 retrieves user_map with two users9703Gitlab::Ci::Reports::Security::Link9704 #initialize9705 when all params are given9706 initializes an instance9707 #to_hash9708 returns expected hash9709AccessibilityReportsComparerEntity9710 #as_json9711 when base report has error and head has a different error9712 contains correct compared accessibility report details9713 when base report has error and head has the same error9714 contains correct compared accessibility report details9715 when base report has no error and head has errors9716 contains correct compared accessibility report details9717ProjectServiceWorker#perform9718 executes integration with given data9719 logs error messages9720Gitlab::Git::BundleFile9721 .check!9722 returns nil for a valid bundle9723 raises an exception for an invalid bundle97246_validations9725 validate_storages_config9726 with correct settings9727 passes through9728 with invalid storage names9729 throws an error9730Types::PermissionTypes::MergeRequest9731 is expected to have graphql fields :read_merge_request, :admin_merge_request, :update_merge_request, :create_note, :push_to_source_branch, :remove_source_branch, :cherry_pick_on_current_merge_request, :revert_on_current_merge_request, and :can_merge9732Clusters::Integrations::CheckPrometheusHealthWorker#perform9733 triggers health service9734Types::CiConfiguration::Sast::AnalyzersEntityType9735 is expected to eq "SastCiConfigurationAnalyzersEntity"9736 is expected to have graphql fields :name, :label, :enabled, :description, and :variables9737API::Entities::Nuget::Dependency9738 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}9739Evidences::ProjectEntity9740 exposes the expected fields9741Gitlab::GraphqlLogger9742 builds a logger once9743 logging a GraphQL query9744 logs a query from JSON9745Notes::RenderService9746 #execute9747 renders a Note9748SyntheticNote9749 #to_ability_name9750 is expected to eq "note"9751Gitlab::Asciidoc::Html5Converter9752 convert AsciiDoc to HTML59753 appends user-content- prefix on ref (anchor)9754Gitlab::Graphql::CopyFieldDescription9755 .copy_field_description9756 returns the correct description9757Gitlab::APIAuthentication::SentThroughBuilder9758 #sent_through9759 adds a strategy for each of locators x resolvers9760Gitlab::Diff::FileCollectionSorter9761 #sort9762 returns list sorted directory first9763Gitlab::Nav::TopNavMenuItem9764 .build9765 builds a hash from the given args9766Forever9767 .date9768 returns Postgresql future date9769Knapsack report was generated. Preview:9770{9771 "spec/services/merge_requests/update_service_spec.rb": 310.88913910299925,9772 "spec/services/auth/container_registry_authentication_service_spec.rb": 86.35678216500128,9773 "spec/services/todos/destroy/entity_leave_service_spec.rb": 157.0612000860001,9774 "spec/services/ci/unlock_artifacts_service_spec.rb": 95.69903803099987,9775 "spec/models/concerns/noteable_spec.rb": 96.8872025719993,9776 "spec/models/ci/build_trace_chunk_spec.rb": 28.256928693999726,9777 "spec/services/system_notes/issuables_service_spec.rb": 46.62816744100019,9778 "spec/presenters/projects/security/configuration_presenter_spec.rb": 51.112293010999565,9779 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb": 53.4895808830006,9780 "spec/helpers/visibility_level_helper_spec.rb": 41.389925703999324,9781 "spec/services/projects/update_service_spec.rb": 38.144497952000165,9782 "spec/lib/gitlab/ci/templates/templates_spec.rb": 12.878851823999867,9783 "spec/models/concerns/milestoneish_spec.rb": 21.475089376999676,9784 "spec/models/ci/ref_spec.rb": 32.95864485199854,9785 "spec/lib/gitlab/ci/status/pipeline/factory_spec.rb": 31.550149902999692,9786 "spec/models/ci/pipeline_schedule_spec.rb": 22.14519289800046,9787 "spec/models/deploy_token_spec.rb": 13.158575089000806,9788 "spec/lib/gitlab/ci/status/build/failed_spec.rb": 20.333029572999294,9789 "spec/services/projects/move_forks_service_spec.rb": 23.139102331000686,9790 "spec/models/integrations/jenkins_spec.rb": 20.392437308999433,9791 "spec/models/blob_spec.rb": 10.238499948000026,9792 "spec/helpers/blob_helper_spec.rb": 14.075393375000203,9793 "spec/services/projects/detect_repository_languages_service_spec.rb": 19.29244823299996,9794 "spec/helpers/application_helper_spec.rb": 6.586429978999149,9795 "spec/lib/container_registry/gitlab_api_client_spec.rb": 2.911181701001624,9796 "spec/lib/gitlab/data_builder/build_spec.rb": 17.959114190000037,9797 "spec/lib/gitlab/ci/config/entry/reports_spec.rb": 3.8643283060009708,9798 "spec/workers/container_registry/migration/enqueuer_worker_spec.rb": 15.723186889999852,9799 "spec/finders/clusters/knative_services_finder_spec.rb": 13.590521203001117,9800 "spec/models/concerns/reactive_caching_spec.rb": 2.0865327489991614,9801 "spec/services/clusters/applications/check_uninstall_progress_service_spec.rb": 13.988257540000632,9802 "spec/lib/gitlab/diff/rendered/notebook/diff_file_spec.rb": 12.013333745000637,9803 "spec/services/namespaces/in_product_marketing_emails_service_spec.rb": 9.12848902100086,9804 "spec/graphql/mutations/issues/set_assignees_spec.rb": 7.996938307000164,9805 "spec/lib/container_registry/path_spec.rb": 7.838827947000027,9806 "spec/services/issues/export_csv_service_spec.rb": 4.1986984760005726,9807 "spec/graphql/features/authorization_spec.rb": 4.005293308999171,9808 "spec/lib/gitlab/ci/trace/checksum_spec.rb": 7.202177233999464,9809 "spec/models/concerns/prometheus_adapter_spec.rb": 10.528238099999726,9810 "spec/services/merge_requests/assign_issues_service_spec.rb": 9.463610062000953,9811 "spec/lib/gitlab/ci/config/entry/release_spec.rb": 1.2287411590004922,9812 "spec/lib/gitlab/redis/shared_state_spec.rb": 1.149611652999738,9813 "spec/workers/remove_expired_members_worker_spec.rb": 8.108029660999819,9814 "spec/workers/container_registry/migration/guard_worker_spec.rb": 9.303339511001468,9815 "spec/presenters/clusterable_presenter_spec.rb": 8.51109274800001,9816 "spec/lib/gitlab/exclusive_lease_spec.rb": 3.169359756999256,9817 "spec/lib/gitlab/redis/trace_chunks_spec.rb": 1.5354339910009003,9818 "spec/lib/gitlab/slash_commands/deploy_spec.rb": 6.743222260000039,9819 "spec/lib/gitlab/ci/ansi2json_spec.rb": 1.1690196819999983,9820 "spec/lib/gitlab/ci/charts_spec.rb": 7.500066055999923,9821 "spec/workers/project_export_worker_spec.rb": 6.29266866800026,9822 "spec/models/project_auto_devops_spec.rb": 4.427737739999429,9823 "spec/models/hooks/project_hook_spec.rb": 4.805880742000227,9824 "spec/tasks/gettext_rake_spec.rb": 6.672747683000125,9825 "spec/services/merge_requests/get_urls_service_spec.rb": 7.5552211009999155,9826 "spec/lib/gitlab/quick_actions/extractor_spec.rb": 2.1041192399989086,9827 "spec/graphql/mutations/releases/delete_spec.rb": 5.00849737200042,9828 "spec/views/projects/artifacts/_artifact.html.haml_spec.rb": 6.475563781999881,9829 "spec/lib/kramdown/parser/atlassian_document_format_spec.rb": 1.3143660269997781,9830 "spec/lib/gitlab/suggestions/commit_message_spec.rb": 3.716196964000119,9831 "spec/models/protectable_dropdown_spec.rb": 4.416887721001331,9832 "spec/graphql/mutations/issues/set_confidential_spec.rb": 8.199389740999322,9833 "spec/models/integrations/redmine_spec.rb": 1.8667098909991182,9834 "spec/config/inject_enterprise_edition_module_spec.rb": 1.1532054250001238,9835 "spec/workers/prune_old_events_worker_spec.rb": 7.205225828000039,9836 "spec/workers/issuable_export_csv_worker_spec.rb": 6.398312535999139,9837 "spec/lib/gitlab/ci/ansi2json/line_spec.rb": 0.8181654309992155,9838 "spec/services/users/create_service_spec.rb": 3.6221255479995307,9839 "spec/finders/packages/maven/package_finder_spec.rb": 5.346402725999724,9840 "spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb": 1.7339763279996987,9841 "spec/lib/banzai/filter/gollum_tags_filter_spec.rb": 3.887149194999438,9842 "spec/models/integrations/ewm_spec.rb": 1.497203309001634,9843 "spec/helpers/invite_members_helper_spec.rb": 2.332556969000507,9844 "spec/lib/gitlab/github_import/importer/issue_importer_spec.rb": 4.306108064998625,9845 "spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb": 1.6583071519999066,9846 "spec/services/wiki_pages/destroy_service_spec.rb": 5.839706662000026,9847 "spec/models/concerns/limitable_spec.rb": 0.5399103439995088,9848 "spec/views/shared/deploy_tokens/_form.html.haml_spec.rb": 3.165809590000208,9849 "spec/uploaders/file_mover_spec.rb": 4.167793831999006,9850 "spec/services/ci/create_pipeline_service/tags_spec.rb": 3.0972764729995106,9851 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb": 0.6502043489999778,9852 "spec/lib/gitlab/gitaly_client/wiki_service_spec.rb": 2.802232436999475,9853 "spec/lib/gitlab/consul/internal_spec.rb": 2.1345053979985096,9854 "spec/workers/integrations/create_external_cross_reference_worker_spec.rb": 2.2581382329990447,9855 "spec/services/container_expiration_policies/cleanup_service_spec.rb": 1.8056679740002437,9856 "spec/lib/gitlab/legacy_github_import/client_spec.rb": 0.856584909999583,9857 "spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb": 0.8637211690002005,9858 "spec/graphql/resolvers/alert_management/alert_resolver_spec.rb": 2.114622889999737,9859 "spec/services/ci/expire_pipeline_cache_service_spec.rb": 4.011822229000245,9860 "spec/tasks/gitlab/task_helpers_spec.rb": 2.3281588400004694,9861 "spec/lib/gitlab/slash_commands/issue_new_spec.rb": 3.6651093150012457,9862 "spec/views/projects/settings/operations/show.html.haml_spec.rb": 1.2566097009985242,9863 "spec/models/project_setting_spec.rb": 2.1001274099999137,9864 "spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb": 3.8218251890011743,9865 "spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb": 0.9866198029994848,9866 "spec/services/projects/move_lfs_objects_projects_service_spec.rb": 2.9970047370006796,9867 "spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 0.8815835779987538,9868 "spec/models/integrations/custom_issue_tracker_spec.rb": 1.5408679270003631,9869 "spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb": 0.6399433900005533,9870 "spec/lib/gitlab/cache/helpers_spec.rb": 3.6219146580006054,9871 "spec/services/integrations/propagate_service_spec.rb": 2.91987527099991,9872 "spec/services/deployments/archive_in_project_service_spec.rb": 6.9637423290005245,9873 "spec/views/notify/pipeline_failed_email.text.erb_spec.rb": 5.389093513998887,9874 "spec/services/projects/count_service_spec.rb": 0.6731480779999401,9875 "spec/lib/api/helpers/authentication_spec.rb": 1.7236358480004128,9876 "spec/lib/gitlab/ci/config/external/file/base_spec.rb": 0.9317238459989312,9877 "spec/services/groups/auto_devops_service_spec.rb": 2.712998641000013,9878 "spec/models/milestone_release_spec.rb": 3.54904501099918,9879 "spec/lib/gitlab/manifest_import/project_creator_spec.rb": 6.006695014999423,9880 "spec/lib/gitlab/crypto_helper_spec.rb": 0.5325491950006835,9881 "spec/lib/gitlab/sample_data_template_spec.rb": 0.9043445280003652,9882 "spec/models/ci/job_variable_spec.rb": 2.718260529998588,9883 "spec/lib/gitlab/sql/intersect_spec.rb": 0.41103111100164824,9884 "spec/lib/banzai/reference_parser/external_issue_parser_spec.rb": 4.859090269001172,9885 "spec/models/legacy_diff_note_spec.rb": 1.5087566580004932,9886 "spec/lib/gitlab/ci/status/running_spec.rb": 0.3936562409999169,9887 "spec/lib/banzai/filter/front_matter_filter_spec.rb": 0.49306700700071815,9888 "spec/lib/gitlab/pipeline_scope_counts_spec.rb": 1.214249082000606,9889 "spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb": 0.2928751759991428,9890 "spec/services/groups/group_links/update_service_spec.rb": 1.6472025420007412,9891 "spec/lib/gitlab/metrics/subscribers/external_http_spec.rb": 0.5050006860001304,9892 "spec/tooling/danger/datateam_spec.rb": 0.3312802050004393,9893 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 1.9375973579990386,9894 "spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb": 3.5998917990000336,9895 "spec/services/users/unban_service_spec.rb": 1.8808052409985976,9896 "spec/models/concerns/has_user_type_spec.rb": 1.4361086410008284,9897 "spec/graphql/mutations/groups/update_spec.rb": 2.3641574880002736,9898 "spec/workers/deployments/link_merge_request_worker_spec.rb": 2.6696574430006876,9899 "spec/services/ci/create_pipeline_service/parallel_spec.rb": 2.642642774999331,9900 "spec/models/programming_language_spec.rb": 0.48227255799974955,9901 "spec/serializers/trigger_variable_entity_spec.rb": 2.4896377820005,9902 "spec/graphql/mutations/alert_management/update_alert_status_spec.rb": 1.6757438010008627,9903 "spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb": 0.8234137210001791,9904 "spec/models/concerns/integrations/reset_secret_fields_spec.rb": 0.5589699629999814,9905 "spec/views/shared/issuable/_sidebar.html.haml_spec.rb": 2.477729102000012,9906 "spec/workers/pages_domain_verification_cron_worker_spec.rb": 2.929142671000591,9907 "spec/helpers/breadcrumbs_helper_spec.rb": 0.22796661900065374,9908 "spec/services/feature_flags/destroy_service_spec.rb": 1.0551053800008958,9909 "spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb": 0.4449678290002339,9910 "spec/serializers/job_artifact_report_entity_spec.rb": 2.1728632069989544,9911 "spec/rubocop/cop/active_record_association_reload_spec.rb": 0.5157898649995332,9912 "spec/finders/milestones_finder_spec.rb": 1.796179265000319,9913 "spec/graphql/mutations/saved_replies/create_spec.rb": 0.48771692600166716,9914 "spec/lib/gitlab/diff/pair_selector_spec.rb": 0.3198649549995025,9915 "spec/services/projects/branches_by_mode_service_spec.rb": 1.2029106329991919,9916 "spec/workers/stuck_export_jobs_worker_spec.rb": 2.110874899999544,9917 "spec/presenters/dev_ops_report/metric_presenter_spec.rb": 0.2989612559995294,9918 "spec/lib/gitlab/ci/badge/pipeline/template_spec.rb": 0.887351387000308,9919 "spec/services/alert_management/metric_images/upload_service_spec.rb": 1.2613013089994638,9920 "spec/graphql/mutations/labels/create_spec.rb": 1.1811206939983094,9921 "spec/graphql/resolvers/tree_resolver_spec.rb": 1.5409846870006731,9922 "spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb": 0.21424827000009827,9923 "spec/workers/propagate_integration_project_worker_spec.rb": 1.4619412400006695,9924 "spec/lib/gitlab/bullet/exclusions_spec.rb": 0.4290707999989536,9925 "spec/views/projects/commits/_commit.html.haml_spec.rb": 2.847936543999822,9926 "spec/services/branches/validate_new_service_spec.rb": 1.98917717599943,9927 "spec/workers/purge_dependency_proxy_cache_worker_spec.rb": 0.762235194000823,9928 "spec/lib/gitlab/config/entry/boolean_spec.rb": 0.11584108399983961,9929 "spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb": 1.6401462129997526,9930 "spec/lib/gitlab/internal_post_receive/response_spec.rb": 0.4199694509989058,9931 "spec/lib/gitlab/ci/status/skipped_spec.rb": 0.4214483690011548,9932 "spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb": 0.4397505100005219,9933 "spec/db/production/create_base_work_item_types_spec.rb": 0.23634836900055234,9934 "spec/lib/banzai/filter/image_link_filter_spec.rb": 0.43165797899928293,9935 "spec/helpers/graph_helper_spec.rb": 1.4728702299998986,9936 "spec/serializers/test_report_entity_spec.rb": 1.5110708590000286,9937 "spec/workers/database/drop_detached_partitions_worker_spec.rb": 0.1322365539999737,9938 "spec/models/issue/email_spec.rb": 1.225235101999715,9939 "spec/policies/protected_branch_policy_spec.rb": 1.383626404000097,9940 "spec/serializers/test_case_entity_spec.rb": 0.838961190000191,9941 "spec/services/ci/create_pipeline_service/environment_spec.rb": 1.1813858250006888,9942 "spec/services/ide/base_config_service_spec.rb": 0.6346955400003935,9943 "spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb": 0.5388257150007121,9944 "spec/policies/alert_management/http_integration_policy_spec.rb": 1.3895686649993877,9945 "spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb": 0.454930007999792,9946 "spec/services/pod_logs/base_service_spec.rb": 0.9143237460011733,9947 "spec/graphql/resolvers/users/groups_resolver_spec.rb": 1.438490382000964,9948 "spec/services/packages/rubygems/metadata_extraction_service_spec.rb": 1.1084776970001258,9949 "spec/graphql/types/tree/type_enum_spec.rb": 0.15804947300057393,9950 "spec/routing/environments_spec.rb": 1.5619121359995916,9951 "spec/services/packages/generic/find_or_create_package_service_spec.rb": 1.3150458769996476,9952 "spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb": 1.2163410630000726,9953 "spec/views/groups/_home_panel.html.haml_spec.rb": 1.2813137499997538,9954 "spec/lib/gitlab/etag_caching/router_spec.rb": 0.17504947100132995,9955 "spec/support_specs/graphql/arguments_spec.rb": 0.3482221939993906,9956 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 1.2932648080004583,9957 "spec/lib/gitlab/container_repository/tags/cache_spec.rb": 0.6292693199993664,9958 "spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 1.1443363759990461,9959 "spec/services/ci/compare_codequality_reports_service_spec.rb": 1.1181788470003085,9960 "spec/views/help/index.html.haml_spec.rb": 0.333788193998771,9961 "spec/workers/bulk_imports/pipeline_worker_spec.rb": 0.8995043169998098,9962 "spec/lib/gitlab/config/entry/composable_array_spec.rb": 0.32301438500144286,9963 "spec/lib/gitlab/avatar_cache_spec.rb": 0.2932619259991043,9964 "spec/services/boards/destroy_service_spec.rb": 0.7608689939988835,9965 "spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb": 1.1496917250005936,9966 "spec/models/data_list_spec.rb": 1.3820738850008638,9967 "spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb": 0.25071984799978964,9968 "spec/serializers/merge_request_for_pipeline_entity_spec.rb": 1.1306527569995524,9969 "spec/initializers/settings_spec.rb": 0.26970216699919547,9970 "spec/lib/bitbucket_server/page_spec.rb": 0.3410670340017532,9971 "spec/services/jira_connect/sync_service_spec.rb": 0.64008603900038,9972 "spec/lib/gitlab/fogbugz_import/project_creator_spec.rb": 0.8392138700000942,9973 "spec/models/bulk_imports/configuration_spec.rb": 0.3560168630010594,9974 "spec/serializers/merge_request_sidebar_extras_entity_spec.rb": 0.677713428000061,9975 "spec/lib/gitlab/ci/config/entry/release/assets_spec.rb": 0.18751252100082638,9976 "spec/models/term_agreement_spec.rb": 0.5292015149989311,9977 "spec/lib/gitlab/database/type/json_pg_safe_spec.rb": 0.3867501719996653,9978 "spec/views/shared/milestones/_top.html.haml_spec.rb": 1.0039488120000897,9979 "spec/serializers/merge_request_sidebar_basic_entity_spec.rb": 1.0155051719993935,9980 "spec/lib/api/entities/deploy_keys_project_spec.rb": 0.6357485499993345,9981 "spec/experiments/force_company_trial_experiment_spec.rb": 0.4916862169993692,9982 "spec/models/project_tracing_setting_spec.rb": 0.8142937709999387,9983 "spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb": 0.41144281100059743,9984 "spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb": 0.6448194789991248,9985 "spec/finders/applications_finder_spec.rb": 0.664315138999882,9986 "spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb": 0.4195529999997234,9987 "spec/services/product_analytics/build_activity_graph_service_spec.rb": 0.7387379839983623,9988 "spec/models/instance_metadata/kas_spec.rb": 0.2159667299983994,9989 "spec/finders/bulk_imports/imports_finder_spec.rb": 0.7350698949994694,9990 "spec/lib/gitlab/external_authorization/cache_spec.rb": 0.2232610899991414,9991 "spec/lib/gitlab/ci/artifacts/metrics_spec.rb": 0.6013314709998667,9992 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 0.15877105300023686,9993 "spec/lib/api/entities/basic_project_details_spec.rb": 0.3920221409989608,9994 "spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb": 0.173585231999823,9995 "spec/lib/api/validations/validators/untrusted_regexp_spec.rb": 0.23720842900002026,9996 "spec/lib/api/entities/ci/job_artifact_file_spec.rb": 0.1269476540001051,9997 "spec/workers/file_hook_worker_spec.rb": 0.07532349699977203,9998 "spec/lib/gitlab/phabricator_import/conduit/maniphest_spec.rb": 0.23736901900156226,9999 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.40647341099975165,10000 "spec/serializers/project_mirror_serializer_spec.rb": 0.13771554400045716,10001 "spec/graphql/types/user_status_type_spec.rb": 0.12717182400047022,10002 "spec/lib/gitlab/kubernetes/kubeconfig/entry/user_spec.rb": 0.046008577999600675,10003 "spec/lib/gitlab/fogbugz_import/client_spec.rb": 0.21335333000024548,10004 "spec/lib/gitlab/ci/reports/security/link_spec.rb": 0.19346454100013943,10005 "spec/serializers/accessibility_reports_comparer_entity_spec.rb": 0.19197726099991996,10006 "spec/workers/project_service_worker_spec.rb": 0.1288516040003742,10007 "spec/lib/gitlab/git/bundle_file_spec.rb": 0.09204320500066387,10008 "spec/initializers/6_validations_spec.rb": 0.08137887599878013,10009 "spec/graphql/types/permission_types/merge_request_spec.rb": 0.08272556600059033,10010 "spec/workers/clusters/integrations/check_prometheus_health_worker_spec.rb": 0.16370095199999923,10011 "spec/graphql/types/ci_configuration/sast/analyzers_entity_type_spec.rb": 0.11518256399904203,10012 "spec/lib/api/entities/nuget/dependency_spec.rb": 0.196625941000093,10013 "spec/serializers/evidences/project_entity_spec.rb": 0.1202158039995993,10014 "spec/lib/gitlab/graphql_logger_spec.rb": 0.2514734779997525,10015 "spec/services/notes/render_service_spec.rb": 0.1847285109997756,10016 "spec/models/synthetic_note_spec.rb": 0.0960014760003105,10017 "spec/lib/gitlab/asciidoc/html5_converter_spec.rb": 0.11736133399972459,10018 "spec/lib/gitlab/graphql/copy_field_description_spec.rb": 0.22014774000126636,10019 "spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb": 0.1468025630001648,10020 "spec/lib/gitlab/diff/file_collection_sorter_spec.rb": 0.13682416300071054,10021 "spec/lib/gitlab/nav/top_nav_menu_item_spec.rb": 0.19957020999936503,10022 "spec/lib/forever_spec.rb": 0.0858194060001551410024Knapsack global time execution for tests: 29m 16s10025Pending: (Failures listed here are expected and do not affect your suite's status)10026 1) Ci::UnlockArtifactsService tag: false, ci_update_unlocked_job_artifacts: false #execute when running on a ref before a pipeline unlocks job artifact records10027 # No reason given10028 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(2)10029 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 2, but did not change10030 # ./spec/services/ci/unlock_artifacts_service_spec.rb:73:in `block (5 levels) in <top (required)>'10031 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'10032 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'10033 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'10034 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'10035 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'10036 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'10037 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'10038 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10039 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'10040 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10041 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10042 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10043 2) Ci::UnlockArtifactsService tag: false, ci_update_unlocked_job_artifacts: false #execute when running on just the ref unlocks job artifact records10044 # No reason given10045 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(8)10046 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 8, but did not change10047 # ./spec/services/ci/unlock_artifacts_service_spec.rb:107:in `block (5 levels) in <top (required)>'10048 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'10049 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'10050 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'10051 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'10052 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'10053 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'10054 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'10055 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10056 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'10057 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10058 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10059 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10060 3) Ci::UnlockArtifactsService tag: true, ci_update_unlocked_job_artifacts: false #execute when running on a ref before a pipeline unlocks job artifact records10061 # No reason given10062 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(2)10063 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 2, but did not change10064 # ./spec/services/ci/unlock_artifacts_service_spec.rb:73:in `block (5 levels) in <top (required)>'10065 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'10066 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'10067 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'10068 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'10069 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'10070 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'10071 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'10072 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10073 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'10074 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10075 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10076 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10077 4) Ci::UnlockArtifactsService tag: true, ci_update_unlocked_job_artifacts: false #execute when running on just the ref unlocks job artifact records10078 # No reason given10079 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(8)10080 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 8, but did not change10081 # ./spec/services/ci/unlock_artifacts_service_spec.rb:107:in `block (5 levels) in <top (required)>'10082 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'10083 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'10084 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'10085 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'10086 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'10087 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'10088 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'10089 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10090 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'10091 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10092 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10093 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10094Finished in 29 minutes 20 seconds (files took 1 minute 22.42 seconds to load)100954239 examples, 0 failures, 4 pending10096RSpec exited with 0.10097No examples to retry, congrats!10099Not uploading cache ruby-gems-bullseye-9-non_protected due to policy10100Not uploading cache gitaly-ruby-gems-bullseye-9-non_protected due to policy10102Uploading artifacts...10103coverage/: found 5 matching files and directories 10104crystalball/: found 2 matching files and directories 10105deprecations/: found 8 matching files and directories 10106knapsack/: found 3 matching files and directories 10107rspec/: found 8 matching files and directories 10108WARNING: tmp/capybara/: no matching files 10109log/*.log: found 18 matching files and directories 10110WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2391235416/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10111WARNING: Retrying... context=artifacts-uploader error=request redirected10112Uploading artifacts as "archive" to coordinator... 201 Created id=2391235416 responseStatus=201 Created token=RoQ41B6Y10113Uploading artifacts...10114rspec/junit_rspec.xml: found 1 matching files and directories 10115WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2391235416/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10116WARNING: Retrying... context=artifacts-uploader error=request redirected10117Uploading artifacts as "junit" to coordinator... 201 Created id=2391235416 responseStatus=201 Created token=RoQ41B6Y10119Job succeeded