rspec unit pg11 8/20
Passed Started
by
@nfriend
Nathan Friend
1Running with gitlab-runner 13.1.0-rc1 (b9d289ed)2 on prm-com-gitlab-org bd0915564Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...5Starting service postgres:11.6 ...6Pulling docker image postgres:11.6 ...7Using docker image sha256:2c963c0eb8c6efa49bb8352ea446f248d208d674cfc34fc9ea275b5f99f8dedd for postgres:11.6 ...8Starting service redis:alpine ...9Pulling docker image redis:alpine ...10Using docker image sha256:b546e82a6d0eceb411b424487643c8d5224cb12a74b6175469991ce2e78c42d1 for redis:alpine ...11Waiting for services to be up and running...12Authenticating with credentials from job payload (GitLab Registry)13Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...14Using docker image sha256:55544d55bdb13be6afb83ab069b8b15d9eed014ac57db466e7586e070f0cebff for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...16Running on runner-bd091556-project-278964-concurrent-0 via runner-bd091556-prm-1592411237-4a81b241...18$ eval "$CI_PRE_CLONE_SCRIPT"19Downloading archived master...20Connecting to storage.googleapis.com (172.217.203.128:443)21gitlab.tar.gz 34% |********** | 320M 0:00:01 ETA22gitlab.tar.gz 76% |************************ | 715M 0:00:00 ETA23gitlab.tar.gz 100% |********************************| 939M 0:00:00 ETA24Extracting tarball into /builds/gitlab-org/gitlab...25Fetching changes with git depth set to 20...26Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/27Created fresh repository.28Checking out 2d057e7a as refs/merge-requests/25668/merge...29Skipping Git submodules setup31Checking cache for rails-v1-3...32Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/rails-v1-3 33Successfully extracted cache35Downloading artifacts for compile-test-assets (599847029)...36Downloading artifacts from coordinator... ok id=599847029 responseStatus=200 OK token=Nm4Zox-E37Downloading artifacts for retrieve-tests-metadata (599847034)...38Downloading artifacts from coordinator... ok id=599847034 responseStatus=200 OK token=GZ748fBo39Downloading artifacts for setup-test-env (599847031)...40Downloading artifacts from coordinator... ok id=599847031 responseStatus=200 OK token=LPfzdszg41WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 43$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb44$ export GOPATH=$CI_PROJECT_DIR/.go45$ mkdir -p $GOPATH46$ source scripts/utils.sh47$ source scripts/prepare_build.sh48Bundler version 1.17.249$ bundle install --clean --without=production --jobs=2 --path=vendor --retry=3 --quiet50==> 'bundle install --clean --without=production --jobs=2 --path=vendor --retry=3 --quiet' succeeded in 1 seconds.51$ bundle check52Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.53The Gemfile's dependencies are satisfied54==> 'bundle check' succeeded in 1 seconds.55$ gem install knapsack --no-document56Successfully installed knapsack-1.18.0571 gem installed58==> 'gem install knapsack --no-document' succeeded in 2 seconds.59$ setup_db_user_only60CREATE ROLE61GRANT62==> 'setup_db_user_only' succeeded in 0 seconds.63$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee64Dropped database 'gitlabhq_test'65Created database 'gitlabhq_test'66Dropped database 'gitlabhq_geo_test'67Created database 'gitlabhq_geo_test'68==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 23 seconds.69$ run_timed_command "scripts/gitaly-test-build"70$ scripts/gitaly-test-build71cd _build && ./makegen > Makefile72fatal: No names found, cannot describe anything.732020/06/17 17:03:53 error obtaining version from git: git describe: exit status 128742020/06/17 17:03:53 Attempting to get the version from file75cd _build && make install INSTALL_DEST_DIR=/builds/gitlab-org/gitlab/tmp/tests/gitaly76make[1]: Entering directory '/builds/gitlab-org/gitlab/tmp/tests/gitaly/_build'77cd /builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby && bundle config # for debugging78Settings are listed in order of priority. The top value will be used.79retry80Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 381path82Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"83jobs84Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 485app_config86Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config"87gemfile88Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"89flags90Set via BUNDLE_FLAGS: "--jobs=4 --retry=3 --quiet --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby"91silence_root_warning92Set via BUNDLE_SILENCE_ROOT_WARNING: true93cd /builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby && bundle install --jobs=4 --retry=3 --quiet --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby94touch ../.ruby-bundle95# go install96mkdir -p /builds/gitlab-org/gitlab/tmp/tests/gitaly97cd bin && install gitaly gitaly-blackbox gitaly-debug gitaly-hooks gitaly-ssh gitaly-wrapper praefect /builds/gitlab-org/gitlab/tmp/tests/gitaly98make[1]: Leaving directory '/builds/gitlab-org/gitlab/tmp/tests/gitaly/_build'99Checking gitaly-ruby Gemfile...100Checking gitaly-ruby bundle...101Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.102The Gemfile's dependencies are satisfied103Trying to connect to gitaly: ....... OK104Trying to connect to praefect: ....... OK105==> 'scripts/gitaly-test-build' succeeded in 42 seconds.106$ run_timed_command "scripts/gitaly-test-spawn"107$ scripts/gitaly-test-spawn108Checking gitaly-ruby Gemfile...109Checking gitaly-ruby bundle...110Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.111The Gemfile's dependencies are satisfied112Trying to connect to gitaly: ....... OK113Trying to connect to praefect: ...... OK114==> 'scripts/gitaly-test-spawn' succeeded in 2 seconds.115$ source scripts/rspec_helpers.sh116$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"117KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,support_specs,tasks,uploaders,validators,views,workers,elastic_integration,tooling}{,/**/}*_spec.rb118Knapsack report generator started!119Run options:120 include {:focus=>true}121 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}122All examples were filtered out; ignoring {:focus=>true}123==> Setting up Gitaly...124 Gitaly set up in 0.110473522 seconds...125==> Setting up GitLab Workhorse...126 GitLab Workhorse set up in 0.000173341 seconds...127==> Setting up gitlab-test bare repository in /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare...128 /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.032863438 seconds...129==> Setting up GitLab Elasticsearch Indexer...130 GitLab Elasticsearch Indexer set up in 0.000283724 seconds...131Gitlab::ImportExport::Project::TreeRestorer132 enable ndjson import133 behaves like project tree restorer work properly134 restore project tree135 JSON136 restores models based on JSON137 restore correct project features138 has the project description139 has the same label associated to two issues140 has milestones associated to two separate issues141 creates a valid pipeline note142 pipeline has the correct user ID143 restores pipelines with missing ref144 restores pipeline for merge request145 restores pipelines based on ascending id order146 preserves updated_at on issues147 has multiple issue assignees148 restores timelogs for issues149 contains the merge access levels on a protected branch150 contains the push access levels on a protected branch151 contains the create access levels on a protected tag152 restores issue resource label events153 restores merge requests resource label events154 restores suggestion155 has the correct data for merge request diff files156 has the correct data for merge request diff commits157 has the correct data for merge request latest_merge_request_diff158 has labels associated to label links, associated to issues159 has project labels160 has no group labels161 has issue boards162 has lists associated with the issue board163 has a project feature164 has custom attributes165 has badges166 has snippets167 has award emoji for a snippet168 snippet has notes169 snippet has award emojis on notes170 restores `ci_cd_settings` : `group_runners_enabled` setting171 restores `auto_devops`172 restores the correct service173 restores zoom meetings174 restores sentry issues175 has award emoji for an issue176 has award emoji for a note in an issue177 restores container_expiration_policy178 restores error_tracking_setting179 restores external pull requests180 restores pipeline schedules181 restores releases with links182 when importing a project with cached_markdown_version and note_html183 for an Issue184 does not import note_html185 for a Merge Request186 does not import note_html187 merge request system note metadata188 restores title action for unmark wip189 restores commit action and commit count for pushing 3 commits190 event at forth level of the tree191 restores the event192 has the action193 event belongs to note, belongs to merge request, belongs to a project194 Merge requests195 always has the new project as a target196 has the same source project as originally if source/target are the same197 has the new project as target if source/target differ198 has no source if source/target differ199 has award emoji200 notes201 has award emoji202 tokens are regenerated203 has new CI trigger tokens204 has a new CI build token205 has restored the correct number of records206 has the correct number of merge requests207 only restores valid triggers208 has the correct number of pipelines and statuses209 when restoring hierarchy of pipeline, stages and jobs210 restores pipelines211 restores pipeline stages212 correctly restores association between stage and a pipeline213 restores statuses214 correctly restores association between a stage and a job215 correctly restores association between a pipeline and a job216 restores a Hash for CommitStatus options217 restores external pull request for the restored pipeline218 has no import failures219 project.json file access check220 does not read a symlink221 Light JSON222 with a simple project223 issue system note metadata restored successfully224 when there is an existing build with build token225 behaves like restores project successfully226 restores the project227 has labels228 has label priorities229 has milestones230 has issues231 has ci pipelines232 has external pull requests233 does not set params that are excluded from import_export settings234 records exact number of import failures235 when there is an existing build with build token236 behaves like restores project successfully237 restores the project238 has labels239 has label priorities240 has milestones241 has issues242 has ci pipelines243 has external pull requests244 does not set params that are excluded from import_export settings245 records exact number of import failures246 multiple pipelines reference the same external pull request247 restores external pull request for the restored pipelines248 behaves like restores project successfully249 restores the project250 has labels251 has label priorities252 has milestones253 has issues254 has ci pipelines255 has external pull requests256 does not set params that are excluded from import_export settings257 records exact number of import failures258 when post import action throw non-retriable exception259 report post import error260 when post import action throw retriable exception one time261 records the failures in the database262 behaves like restores project successfully263 restores the project264 has labels265 has label priorities266 has milestones267 has issues268 has ci pipelines269 has external pull requests270 does not set params that are excluded from import_export settings271 records exact number of import failures272 when the project has overridden params in import data273 handles string versions of visibility_level274 overwrites the params stored in the JSON275 does not allow setting params that are excluded from import_export settings276 overrides project feature access levels277 with a project that has a group278 restores issue states279 behaves like restores project successfully280 restores the project281 has labels282 has label priorities283 has milestones284 has issues285 has ci pipelines286 has external pull requests287 does not set params that are excluded from import_export settings288 records exact number of import failures289 behaves like restores group correctly290 has group label291 has group milestone292 has the correct visibility level293 with existing group models294 does not import any templated services295 does not import any instance services296 imports labels297 imports milestones298 with clashing milestones on IID299 preserves the project milestone IID300 with external authorization classification labels301 converts empty external classification authorization labels to nil302 preserves valid external classification authorization labels303 Minimal JSON304 no group visibility305 uses the project visibility306 with restricted internal visibility307 internal project308 uses private visibility309 with group visibility310 private group visibility311 uses the group visibility312 public group visibility313 uses the project visibility314 internal group visibility315 uses the group visibility316 with restricted internal visibility317 sets private visibility318 with project members319 restores project members320 JSON with invalid records321 when failures occur because a relation fails to be processed322 records the failures in the database323 behaves like restores project successfully324 restores the project325 has labels326 has label priorities327 has milestones328 has issues329 has ci pipelines330 has external pull requests331 does not set params that are excluded from import_export settings332 records exact number of import failures333 JSON with design management data334 restores project associations correctly335 behaves like restores project successfully336 restores the project337 has labels338 has label priorities339 has milestones340 has issues341 has ci pipelines342 has external pull requests343 does not set params that are excluded from import_export settings344 records exact number of import failures345 restores issue associations correctly346 index: 0, design_filenames: ["chirrido3.jpg", "jonathan_richman.jpg", "mariavontrap.jpeg"], version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"], events: ["creation", "creation", "creation", "modification", "modification", "deletion"], author_emails: ["user_1@gitlabexample.com", "user_1@gitlabexample.com", "user_2@gitlabexample.com"]347 is expected to contain exactly "user_1@gitlabexample.com", "user_1@gitlabexample.com", and "user_2@gitlabexample.com"348 index: 1, design_filenames: ["1 (1).jpeg", "2099743.jpg", "a screenshot (1).jpg", "chirrido3.jpg"], version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"], events: ["creation", "creation", "creation", "creation", "modification"], author_emails: ["user_1@gitlabexample.com", "user_2@gitlabexample.com", "user_2@gitlabexample.com"]349 is expected to contain exactly "user_1@gitlabexample.com", "user_2@gitlabexample.com", and "user_2@gitlabexample.com"350 restores design version associations correctly351 index: 0, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]352 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4" and "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"353 index: 1, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4"]354 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4"355 index: 2, version_shas: ["c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]356 is expected to contain exactly "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"357 index: 3, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]358 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"359 index: 4, version_shas: ["8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"]360 is expected to contain exactly "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"361 index: 5, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]362 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85" and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"363 index: 6, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85"]364 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85"365 behaves like project tree restorer work properly366 restore project tree367 JSON368 restores models based on JSON369 restore correct project features370 has the project description371 has the same label associated to two issues372 has milestones associated to two separate issues373 creates a valid pipeline note374 pipeline has the correct user ID375 restores pipelines with missing ref376 restores pipeline for merge request377 restores pipelines based on ascending id order378 preserves updated_at on issues379 has multiple issue assignees380 restores timelogs for issues381 contains the merge access levels on a protected branch382 contains the push access levels on a protected branch383 contains the create access levels on a protected tag384 restores issue resource label events385 restores merge requests resource label events386 restores suggestion387 has the correct data for merge request diff files388 has the correct data for merge request diff commits389 has the correct data for merge request latest_merge_request_diff390 has labels associated to label links, associated to issues391 has project labels392 has no group labels393 has issue boards394 has lists associated with the issue board395 has a project feature396 has custom attributes397 has badges398 has snippets399 has award emoji for a snippet400 snippet has notes401 snippet has award emojis on notes402 restores `ci_cd_settings` : `group_runners_enabled` setting403 restores `auto_devops`404 restores the correct service405 restores zoom meetings406 restores sentry issues407 has award emoji for an issue408 has award emoji for a note in an issue409 restores container_expiration_policy410 restores error_tracking_setting411 restores external pull requests412 restores pipeline schedules413 restores releases with links414 when importing a project with cached_markdown_version and note_html415 for an Issue416 does not import note_html417 for a Merge Request418 does not import note_html419 merge request system note metadata420 restores title action for unmark wip421 restores commit action and commit count for pushing 3 commits422 event at forth level of the tree423 restores the event424 has the action425 event belongs to note, belongs to merge request, belongs to a project426 Merge requests427 always has the new project as a target428 has the same source project as originally if source/target are the same429 has the new project as target if source/target differ430 has no source if source/target differ431 has award emoji432 notes433 has award emoji434 tokens are regenerated435 has new CI trigger tokens436 has a new CI build token437 has restored the correct number of records438 has the correct number of merge requests439 only restores valid triggers440 has the correct number of pipelines and statuses441 when restoring hierarchy of pipeline, stages and jobs442 restores pipelines443 restores pipeline stages444 correctly restores association between stage and a pipeline445 restores statuses446 correctly restores association between a stage and a job447 correctly restores association between a pipeline and a job448 restores a Hash for CommitStatus options449 restores external pull request for the restored pipeline450 has no import failures451 project.json file access check452 does not read a symlink453 Light JSON454 with a simple project455 issue system note metadata restored successfully456 when there is an existing build with build token457 behaves like restores project successfully458 restores the project459 has labels460 has label priorities461 has milestones462 has issues463 has ci pipelines464 has external pull requests465 does not set params that are excluded from import_export settings466 records exact number of import failures467 when there is an existing build with build token468 behaves like restores project successfully469 restores the project470 has labels471 has label priorities472 has milestones473 has issues474 has ci pipelines475 has external pull requests476 does not set params that are excluded from import_export settings477 records exact number of import failures478 multiple pipelines reference the same external pull request479 restores external pull request for the restored pipelines480 behaves like restores project successfully481 restores the project482 has labels483 has label priorities484 has milestones485 has issues486 has ci pipelines487 has external pull requests488 does not set params that are excluded from import_export settings489 records exact number of import failures490 when post import action throw non-retriable exception491 report post import error492 when post import action throw retriable exception one time493 records the failures in the database494 behaves like restores project successfully495 restores the project496 has labels497 has label priorities498 has milestones499 has issues500 has ci pipelines501 has external pull requests502 does not set params that are excluded from import_export settings503 records exact number of import failures504 when the project has overridden params in import data505 handles string versions of visibility_level506 overwrites the params stored in the JSON507 does not allow setting params that are excluded from import_export settings508 overrides project feature access levels509 with a project that has a group510 restores issue states511 behaves like restores project successfully512 restores the project513 has labels514 has label priorities515 has milestones516 has issues517 has ci pipelines518 has external pull requests519 does not set params that are excluded from import_export settings520 records exact number of import failures521 behaves like restores group correctly522 has group label523 has group milestone524 has the correct visibility level525 with existing group models526 does not import any templated services527 does not import any instance services528 imports labels529 imports milestones530 with clashing milestones on IID531 preserves the project milestone IID532 with external authorization classification labels533 converts empty external classification authorization labels to nil534 preserves valid external classification authorization labels535 Minimal JSON536 no group visibility537 uses the project visibility538 with restricted internal visibility539 internal project540 uses private visibility541 with group visibility542 private group visibility543 uses the group visibility544 public group visibility545 uses the project visibility546 internal group visibility547 uses the group visibility548 with restricted internal visibility549 sets private visibility550 with project members551 restores project members552 JSON with invalid records553 when failures occur because a relation fails to be processed554 records the failures in the database555 behaves like restores project successfully556 restores the project557 has labels558 has label priorities559 has milestones560 has issues561 has ci pipelines562 has external pull requests563 does not set params that are excluded from import_export settings564 records exact number of import failures565 JSON with design management data566 restores project associations correctly567 behaves like restores project successfully568 restores the project569 has labels570 has label priorities571 has milestones572 has issues573 has ci pipelines574 has external pull requests575 does not set params that are excluded from import_export settings576 records exact number of import failures577 restores issue associations correctly578 index: 0, design_filenames: ["chirrido3.jpg", "jonathan_richman.jpg", "mariavontrap.jpeg"], version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"], events: ["creation", "creation", "creation", "modification", "modification", "deletion"], author_emails: ["user_1@gitlabexample.com", "user_1@gitlabexample.com", "user_2@gitlabexample.com"]579 is expected to contain exactly "user_1@gitlabexample.com", "user_1@gitlabexample.com", and "user_2@gitlabexample.com"580 index: 1, design_filenames: ["1 (1).jpeg", "2099743.jpg", "a screenshot (1).jpg", "chirrido3.jpg"], version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"], events: ["creation", "creation", "creation", "creation", "modification"], author_emails: ["user_1@gitlabexample.com", "user_2@gitlabexample.com", "user_2@gitlabexample.com"]581 is expected to contain exactly "user_1@gitlabexample.com", "user_2@gitlabexample.com", and "user_2@gitlabexample.com"582 restores design version associations correctly583 index: 0, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]584 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4" and "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"585 index: 1, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4"]586 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4"587 index: 2, version_shas: ["c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]588 is expected to contain exactly "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"589 index: 3, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]590 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"591 index: 4, version_shas: ["8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"]592 is expected to contain exactly "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"593 index: 5, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]594 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85" and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"595 index: 6, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85"]596 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85"597 disable ndjson import598 behaves like project tree restorer work properly599 restore project tree600 JSON601 restores models based on JSON602 restore correct project features603 has the project description604 has the same label associated to two issues605 has milestones associated to two separate issues606 creates a valid pipeline note607 pipeline has the correct user ID608 restores pipelines with missing ref609 restores pipeline for merge request610 restores pipelines based on ascending id order611 preserves updated_at on issues612 has multiple issue assignees613 restores timelogs for issues614 contains the merge access levels on a protected branch615 contains the push access levels on a protected branch616 contains the create access levels on a protected tag617 restores issue resource label events618 restores merge requests resource label events619 restores suggestion620 has the correct data for merge request diff files621 has the correct data for merge request diff commits622 has the correct data for merge request latest_merge_request_diff623 has labels associated to label links, associated to issues624 has project labels625 has no group labels626 has issue boards627 has lists associated with the issue board628 has a project feature629 has custom attributes630 has badges631 has snippets632 has award emoji for a snippet633 snippet has notes634 snippet has award emojis on notes635 restores `ci_cd_settings` : `group_runners_enabled` setting636 restores `auto_devops`637 restores the correct service638 restores zoom meetings639 restores sentry issues640 has award emoji for an issue641 has award emoji for a note in an issue642 restores container_expiration_policy643 restores error_tracking_setting644 restores external pull requests645 restores pipeline schedules646 restores releases with links647 when importing a project with cached_markdown_version and note_html648 for an Issue649 does not import note_html650 for a Merge Request651 does not import note_html652 merge request system note metadata653 restores title action for unmark wip654 restores commit action and commit count for pushing 3 commits655 event at forth level of the tree656 restores the event657 has the action658 event belongs to note, belongs to merge request, belongs to a project659 Merge requests660 always has the new project as a target661 has the same source project as originally if source/target are the same662 has the new project as target if source/target differ663 has no source if source/target differ664 has award emoji665 notes666 has award emoji667 tokens are regenerated668 has new CI trigger tokens669 has a new CI build token670 has restored the correct number of records671 has the correct number of merge requests672 only restores valid triggers673 has the correct number of pipelines and statuses674 when restoring hierarchy of pipeline, stages and jobs675 restores pipelines676 restores pipeline stages677 correctly restores association between stage and a pipeline678 restores statuses679 correctly restores association between a stage and a job680 correctly restores association between a pipeline and a job681 restores a Hash for CommitStatus options682 restores external pull request for the restored pipeline683 has no import failures684 project.json file access check685 does not read a symlink686 Light JSON687 with a simple project688 issue system note metadata restored successfully689 when there is an existing build with build token690 behaves like restores project successfully691 restores the project692 has labels693 has label priorities694 has milestones695 has issues696 has ci pipelines697 has external pull requests698 does not set params that are excluded from import_export settings699 records exact number of import failures700 when there is an existing build with build token701 behaves like restores project successfully702 restores the project703 has labels704 has label priorities705 has milestones706 has issues707 has ci pipelines708 has external pull requests709 does not set params that are excluded from import_export settings710 records exact number of import failures711 multiple pipelines reference the same external pull request712 restores external pull request for the restored pipelines713 behaves like restores project successfully714 restores the project715 has labels716 has label priorities717 has milestones718 has issues719 has ci pipelines720 has external pull requests721 does not set params that are excluded from import_export settings722 records exact number of import failures723 when post import action throw non-retriable exception724 report post import error725 when post import action throw retriable exception one time726 records the failures in the database727 behaves like restores project successfully728 restores the project729 has labels730 has label priorities731 has milestones732 has issues733 has ci pipelines734 has external pull requests735 does not set params that are excluded from import_export settings736 records exact number of import failures737 when the project has overridden params in import data738 handles string versions of visibility_level739 overwrites the params stored in the JSON740 does not allow setting params that are excluded from import_export settings741 overrides project feature access levels742 with a project that has a group743 restores issue states744 behaves like restores project successfully745 restores the project746 has labels747 has label priorities748 has milestones749 has issues750 has ci pipelines751 has external pull requests752 does not set params that are excluded from import_export settings753 records exact number of import failures754 behaves like restores group correctly755 has group label756 has group milestone757 has the correct visibility level758 with existing group models759 does not import any templated services760 does not import any instance services761 imports labels762 imports milestones763 with clashing milestones on IID764 preserves the project milestone IID765 with external authorization classification labels766 converts empty external classification authorization labels to nil767 preserves valid external classification authorization labels768 Minimal JSON769 no group visibility770 uses the project visibility771 with restricted internal visibility772 internal project773 uses private visibility774 with group visibility775 private group visibility776 uses the group visibility777 public group visibility778 uses the project visibility779 internal group visibility780 uses the group visibility781 with restricted internal visibility782 sets private visibility783 with project members784 restores project members785 JSON with invalid records786 when failures occur because a relation fails to be processed787 records the failures in the database788 behaves like restores project successfully789 restores the project790 has labels791 has label priorities792 has milestones793 has issues794 has ci pipelines795 has external pull requests796 does not set params that are excluded from import_export settings797 records exact number of import failures798 JSON with design management data799 restores project associations correctly800 behaves like restores project successfully801 restores the project802 has labels803 has label priorities804 has milestones805 has issues806 has ci pipelines807 has external pull requests808 does not set params that are excluded from import_export settings809 records exact number of import failures810 restores issue associations correctly811 index: 0, design_filenames: ["chirrido3.jpg", "jonathan_richman.jpg", "mariavontrap.jpeg"], version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"], events: ["creation", "creation", "creation", "modification", "modification", "deletion"], author_emails: ["user_1@gitlabexample.com", "user_1@gitlabexample.com", "user_2@gitlabexample.com"]812 is expected to contain exactly "user_1@gitlabexample.com", "user_1@gitlabexample.com", and "user_2@gitlabexample.com"813 index: 1, design_filenames: ["1 (1).jpeg", "2099743.jpg", "a screenshot (1).jpg", "chirrido3.jpg"], version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"], events: ["creation", "creation", "creation", "creation", "modification"], author_emails: ["user_1@gitlabexample.com", "user_2@gitlabexample.com", "user_2@gitlabexample.com"]814 is expected to contain exactly "user_1@gitlabexample.com", "user_2@gitlabexample.com", and "user_2@gitlabexample.com"815 restores design version associations correctly816 index: 0, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]817 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4" and "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"818 index: 1, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4"]819 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4"820 index: 2, version_shas: ["c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]821 is expected to contain exactly "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"822 index: 3, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]823 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"824 index: 4, version_shas: ["8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"]825 is expected to contain exactly "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"826 index: 5, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]827 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85" and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"828 index: 6, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85"]829 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85"830Repository831 #branch_names_contains832 is expected to include "master"833 is expected not to include "feature"834 is expected not to include "fix"835 when storage is broken836 raises a storage error837 #tag_names_contains838 is expected to include "v1.1.0"839 is expected not to include "v1.0.0"840 tags_sorted_by841 name_desc842 is expected to eq ["v1.1.0", "v1.0.0"]843 name_asc844 is expected to eq ["v1.0.0", "v1.1.0"]845 updated846 desc847 is expected to eq ["v1.0.0", "v1.1.0"]848 asc849 is expected to eq ["v1.1.0", "v1.0.0"]850 annotated tag pointing to a blob851 is expected to eq ["v1.1.0", "v1.0.0", "annotated-tag"]852 #ref_name_for_sha853 returns the ref854 #ref_exists?855 when ref exists856 returns true857 when ref does not exist858 returns false859 when ref format is incorrect860 returns false861 #list_last_commits_for_tree862 returns the last commits for every entry in the current path863 returns the last commits for every entry in the current path starting from the offset864 returns a limited number of last commits for every entry in the current path starting from the offset865 returns an empty hash when offset is out of bounds866 with a commit with invalid UTF-8 path867 does not raise an error868 #last_commit_for_path869 is expected to eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"870 when storage is broken871 raises a storage error872 #last_commit_id_for_path873 returns last commit id for a given path874 caches last commit id for a given path875 when storage is broken876 raises a storage error877 #commits878 when neither the all flag nor a ref are specified879 returns every commit from default branch880 when ref is passed881 returns every commit from the specified ref882 when all883 returns every commit from the repository884 with path885 sets follow when it is a single path886 does not set follow when it is multiple paths887 without path888 does not set follow889 when 'author' is set890 returns commits from that author891 doesn't returns commits from an unknown author892 when 'all' flag is set893 returns every commit from the repository894 when 'order' flag is set895 passes order option to perform the query896 #new_commits897 when there are no new commits898 returns an empty array899 when new commits are found900 returns the commits901 #commits_by902 finds each commit903 returns only Commit instances904 when some commits are not found905 returns only found commits906 when no oids are passed907 does not call #batch_by_oid908 #find_commits_by_message909 returns commits with messages containing a given string910 is case insensitive911 when storage is broken912 raises a storage error913 #blob_at914 blank sha915 is expected to be nil916 regular blob917 is expected to be an instance of Blob918 readme blob on HEAD919 is expected to be an instance of ReadmeBlob920 readme blob not on HEAD921 is expected to be an instance of Blob922 #merged_to_root_ref?923 merged branch without ff924 is expected to be truthy925 merged with ff926 is expected to be truthy927 not merged branch928 is expected to be falsey929 default branch930 is expected to be falsey931 non merged branch932 is expected to be falsey933 non existent branch934 is expected to be nil935 #root_ref_sha936 is expected to eq "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"937 #merged_branch_names938 is expected to eq #<Set: {"definitely_merged"}>939 is expected to be a kind of Set940 cache expiry941 is expired when the branches caches are expired942 is expired when the repository caches are expired943 cache is empty944 is expected to eq #<Set: {"definitely_merged"}>945 cache values946 writes the values to redis947 matches the supplied hash948 cache is not empty949 is expected to eq #<Set: {"definitely_merged"}>950 doesn't fetch from the disk951 cache is partially complete952 is expected to eq #<Set: {"definitely_merged"}>953 does fetch from the disk954 requested branches array is empty955 is expected to eq #<Set: {"definitely_merged"}>956 #can_be_merged?957 mergeable branches958 is expected to be truthy959 non-mergeable branches without conflict sides missing960 is expected to be falsey961 non-mergeable branches with conflict sides missing962 is expected to be falsey963 submodule changes that confuse rugged964 is expected to be falsey965 #commit966 when ref exists967 returns commit object968 when ref does not exist969 returns nil970 when ref is not specified971 is using a root ref972 when ref is not valid973 when preceding tree element exists974 returns nil975 when preceding tree element does not exist976 returns nil977 #create_dir978 commits a change that creates a new directory979 when committing to another project980 creates a fork and commit to the forked project981 when an author is specified982 uses the given email/name to set the commit's author983 #create_file984 commits new file successfully985 creates new file and dir when file_path has a forward slash986 respects the autocrlf setting987 when an author is specified988 uses the given email/name to set the commit's author989 #update_file990 updates file successfully991 updates filename successfully992 when an author is specified993 uses the given email/name to set the commit's author994 #delete_file995 removes file successfully996 when an author is specified997 uses the given email/name to set the commit's author998 search_files_by_content999 is expected to be a kind of Array1000 regex-escapes the query string1001 properly handles an unmatched parenthesis1002 properly handles when query is not present1003 properly handles query when repo is empty1004 when storage is broken1005 raises a storage error1006 result1007 is expected to be a kind of String1008 is expected to eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"1009 search_files_by_name1010 returns result1011 ignores leading slashes1012 properly handles when query is only slashes1013 properly handles when query is not present1014 properly handles query when repo is empty1015 when storage is broken1016 raises a storage error1017 #async_remove_remote1018 when worker is scheduled successfully1019 returns job_id1020 when worker does not schedule successfully1021 returns nil1022 #fetch_ref1023 when storage is broken1024 raises a storage error1025 #get_raw_changes1026 with non-UTF8 bytes in paths1027 returns the changes1028 #create_ref1029 redirects the call to write_ref1030 #changelog1031 accepts changelog1032 accepts news instead of changelog1033 accepts history instead of changelog1034 accepts changes instead of changelog1035 is case-insensitive1036 #license_blob1037 handles when HEAD points to non-existent ref1038 looks in the root_ref only1039 detects license file with no recognizable open-source license content1040 detects 'LICENSE'1041 detects 'LICENCE'1042 detects 'LiCensE'1043 detects 'LICENSE.md'1044 detects 'LICENSE.foo'1045 detects 'COPYING'1046 detects 'COPYING.md'1047 #license_key1048 returns nil when no license is detected1049 returns nil when the repository does not exist1050 returns nil when the content is not recognizable1051 returns nil when the commit SHA does not exist1052 returns nil when master does not exist1053 returns the license key1054 #license1055 returns nil when no license is detected1056 returns nil when the repository does not exist1057 returns nil when the content is not recognizable1058 returns the license1059 #gitlab_ci_yml1060 returns valid file1061 returns nil if not exists1062 returns nil for empty repository1063 #ambiguous_ref?1064 when ref is ambiguous1065 is true1066 when ref is not ambiguous1067 is false1068 #expand_ref1069 when ref is not tag or branch name1070 returns nil1071 when ref is tag name1072 returns the tag ref1073 when ref is branch name1074 returns the branch ref1075 #add_branch1076 calls Gitaly's OperationService1077 creates_the_branch1078 with a non-existing target1079 returns false and doesn't create the branch1080 #exists?1081 returns true when a repository exists1082 returns false if no full path can be constructed1083 with broken storage1084 raises a storage error1085 behaves like asymmetric cached method1086 asymmetric caching1087 when it returns true1088 caches the output in RequestStore1089 caches the output in RepositoryCache1090 when it returns false1091 caches the output in RequestStore1092 does NOT cache the output in RepositoryCache1093 #has_visible_content?1094 delegates to raw_repository when true1095 delegates to raw_repository when false1096 behaves like asymmetric cached method1097 asymmetric caching1098 when it returns true1099 caches the output in RequestStore1100 caches the output in RepositoryCache1101 when it returns false1102 caches the output in RequestStore1103 does NOT cache the output in RepositoryCache1104 #branch_exists?1105 delegates to branch_names when the cache is empty1106 uses redis set caching when the cache is filled1107 #tag_exists?1108 delegates to tag_names when the cache is empty1109 uses redis set caching when the cache is filled1110 #branch_names1111 gets cached across Repository instances1112 #empty?1113 returns true for an empty repository1114 returns false for a non-empty repository1115 caches the output1116 #blobs_at1117 returns empty array for an empty repository1118 returns blob array for a non-empty repository1119 #root_ref1120 returns a branch name1121 caches the output1122 returns nil if the repository does not exist1123 behaves like asymmetric cached method1124 asymmetric caching1125 when it returns true1126 caches the output in RequestStore1127 caches the output in RepositoryCache1128 when it returns false1129 caches the output in RequestStore1130 does NOT cache the output in RepositoryCache1131 #expire_root_ref_cache1132 expires the root reference cache1133 #expire_branch_cache1134 expires the cache for all branches1135 expires the cache for all branches when the root branch is given1136 expires the cache for a specific branch1137 #expire_emptiness_caches1138 expires the caches for an empty repository1139 does not expire the cache for a non-empty repository1140 expires the memoized repository cache1141 skip_merges option1142 is expected not to include "e56497bb5f03a90a51293fc6d516788730953899"1143 #merge1144 merges the code and returns the commit id1145 sets the `in_progress_merge_commit_sha` flag for the given merge request1146 removes carriage returns from commit message1147 #merge_to_ref1148 writes merge of source SHA and first parent ref to MR merge_ref_path1149 #ff_merge1150 merges the code and return the commit id1151 sets the `in_progress_merge_commit_sha` flag for the given merge request1152 #rebase1153 executes the new Gitaly RPC1154 behaves like a method that can rebase successfully1155 returns the rebase commit sha1156 sets the `rebase_commit_sha` for the given merge request1157 rolling back the `rebase_commit_sha`1158 does not rollback when there are no errors1159 does rollback when a PreReceiveError is encountered in the second step1160 does rollback when a GitError is encountered in the second step1161 #revert1162 when there is a conflict1163 raises an error1164 when commit was already reverted1165 raises an error1166 when commit can be reverted1167 reverts the changes1168 reverting a merge commit1169 reverts the changes1170 #cherry_pick1171 when there is a conflict1172 raises an error1173 when commit was already cherry-picked1174 raises an error1175 when commit can be cherry-picked1176 cherry-picks the changes1177 cherry-picking a merge commit1178 cherry-picks the changes1179 #before_delete1180 when a repository does not exist1181 does not flush caches that depend on repository data1182 flushes the tags cache1183 flushes the branches cache1184 flushes the root ref cache1185 flushes the emptiness caches1186 flushes the exists cache1187 when a repository exists1188 flushes the tags cache1189 flushes the branches cache1190 flushes the root ref cache1191 flushes the emptiness caches1192 #before_change_head1193 flushes the branch cache1194 flushes the root ref cache1195 #after_change_head1196 flushes the method caches1197 #expires_caches_for_tags1198 flushes the cache1199 #before_push_tag1200 logs an event1201 #after_push_commit1202 expires statistics caches1203 #after_create_branch1204 expires the branch caches1205 does not expire the branch caches when specified1206 #after_remove_branch1207 expires the branch caches1208 does not expire the branch caches when specified1209 #after_create1210 calls expire_status_cache1211 logs an event1212 #expire_status_cache1213 flushes the exists cache1214 flushes the root ref cache1215 flushes the emptiness caches1216 #copy_gitattributes1217 returns true with a valid ref1218 returns false with an invalid ref1219 #before_remove_tag1220 flushes the tag cache1221 #branch_count1222 returns the number of branches1223 #tag_count1224 returns the number of tags1225 #expire_branches_cache1226 expires the cache1227 #expire_tags_cache1228 expires the cache1229 #add_tag1230 with a valid target1231 creates the tag1232 returns a Gitlab::Git::Tag object1233 with an invalid target1234 returns false1235 #rm_branch1236 removes a branch1237 when pre hooks failed1238 gets an error and does not delete the branch1239 #rm_tag1240 removes a tag1241 #avatar1242 returns nil if repo does not exist1243 returns the first avatar file found in the repository1244 caches the output1245 #expire_exists_cache1246 expires the cache1247 expires the request store cache1248 #xcode_project?1249 when the root contains a *.xcodeproj directory1250 returns true1251 when the root contains a *.xcworkspace directory1252 returns true1253 when the root contains no Xcode config directory1254 returns false1255 #contribution_guide1256 returns and caches the output1257 #gitignore1258 returns and caches the output1259 #readme1260 with a non-existing repository1261 returns nil1262 with an existing repository1263 when no README exists1264 returns nil1265 when a README exists1266 returns the README1267 #readme_path1268 with a non-existing repository1269 returns nil1270 with an existing repository1271 when no README exists1272 returns nil1273 when a README exists1274 returns the README1275 caches the response1276 #expire_statistics_caches1277 expires the caches1278 #expire_all_method_caches1279 expires the caches of all methods1280 all cache_method definitions are in the lists of method caches1281 #file_on_head1282 with a non-existing repository1283 returns nil1284 with a repository that has no blobs1285 returns nil1286 with an existing repository1287 returns a Gitlab::Git::Tree1288 #head_tree1289 with an existing repository1290 returns a Tree1291 with a non-existing repository1292 returns nil1293 behaves like #tree1294 using a non-existing repository1295 returns nil1296 returns nil when using a path1297 using an existing repository1298 returns a Tree1299 #tree? with Rugged enabled1300 behaves like #tree1301 using a non-existing repository1302 returns nil1303 returns nil when using a path1304 using an existing repository1305 returns a Tree1306 #size1307 with a non-existing repository1308 returns 01309 with an existing repository1310 returns the repository size as a Float1311 #local_branches1312 returns the local branches1313 #commit_count1314 with a non-existing repository1315 returns 01316 with an existing repository1317 returns the commit count1318 #commit_count_for_ref1319 with a non-existing repository1320 returns 01321 with empty repository1322 returns 01323 when searching for the root ref1324 returns the same count as #commit_count1325 #refresh_method_caches1326 refreshes the caches of the given types1327 #gitlab_ci_yml_for1328 when there is a .gitlab-ci.yml at the commit1329 returns the content1330 when there is no .gitlab-ci.yml at the commit1331 returns nil1332 #route_map_for1333 when there is a .gitlab/route-map.yml at the commit1334 returns the content1335 when there is no .gitlab/route-map.yml at the commit1336 returns nil1337 #ancestor? with Gitaly enabled1338 behaves like #ancestor?1339 is an ancestor1340 is not an ancestor1341 returns false on nil-values1342 returns false for invalid commit IDs1343 caching1344 only calls out to Gitaly once1345 returns the value from the request store1346 returns the value from the redis cache1347 #ancestor? with Rugged enabled1348 calls out to the Rugged implementation1349 behaves like #ancestor?1350 is an ancestor1351 is not an ancestor1352 returns false on nil-values1353 returns false for invalid commit IDs1354 #archive_metadata1355 with hashed storage disabled1356 uses the project path to generate the filename1357 with hashed storage enabled1358 uses the project path to generate the filename1359 commit cache1360 caches based on SHA1361 caches nil values1362 #raw_repository1363 returns a Gitlab::Git::Repository representation of the repository1364 with a wiki repository1365 creates a Gitlab::Git::Repository with the proper attributes1366 #contributors1367 returns the array of Gitlab::Contributor for the repository1368 order_by email1369 asc1370 returns all the contributors ordered by email asc case insensitive1371 desc1372 returns all the contributors ordered by email desc case insensitive1373 order_by name1374 asc1375 returns all the contributors ordered by name asc case insensitive1376 desc1377 returns all the contributors ordered by name desc case insensitive1378 order_by commits1379 asc1380 returns all the contributors ordered by commits asc1381 desc1382 returns all the contributors ordered by commits desc1383 invalid ordering1384 returns the contributors unsorted1385 invalid sorting1386 returns the contributors unsorted1387 #merge_base1388 only makes one gitaly call1389 #create_if_not_exists1390 creates the repository if it did not exist1391 returns true1392 calls out to the repository client to create a repo1393 it does nothing if the repository already existed1394 does nothing if the repository already existed1395 returns nil1396 when the repository exists but the cache is not up to date1397 does not raise errors1398 returns nil1399 #create_from_bundle1400 calls out to the raw_repository to create a repo from bundle1401 calls after_create1402 when exception is raised1403 after_create is not executed1404 #blobs_metadata1405 returns blob metadata in batch for HEAD1406 returns blob metadata for a specified ref1407 performs a single gitaly call1408 #submodule_links1409 returns an instance of Gitlab::SubmoduleLinks1410 #lfs_enabled?1411 for a project repository1412 returns true when LFS is enabled1413 returns false when LFS is disabled1414 for a project wiki repository1415 returns true when LFS is enabled1416 returns false when LFS is disabled1417 for a project snippet repository1418 returns false when LFS is enabled1419 for a personal snippet repository1420 returns false when LFS is enabled1421 for a design repository1422 returns true when LFS is enabled1423 returns false when LFS is disabled1424Projects::CreateService#execute1425 creates labels on Project creation if there are templates1426 calls the passed block1427 writes project full path to .git/config1428 user namespace1429 is expected to eq #<Namespace id: 1128, name: "John Doe1066", path: "user1090", owner_id: 1059, created_at: "2020-06-17...on: nil, unlock_membership_to_ldap: nil, max_personal_access_token_lifetime: nil, push_rule_id: nil>1430 after create actions1431 invalidate personal_projects_count caches1432 builds associated project settings1433 admin creates project with other user's namespace_id1434 sets the correct permissions1435 group namespace1436 is expected to include #<Project id:686 group70/gitlab>>1437 group sharing1438 updates authorization1439 membership overrides1440 membership is higher from group hierarchy1441 updates authorization1442 membership is higher from group share1443 share max access level is not limiting1444 updates authorization1445 share max access level is limiting1446 updates authorization1447 error handling1448 handles invalid options1449 sets invalid service as inactive1450 wiki_enabled creates repository directory1451 wiki_enabled true creates wiki repository directory1452 is expected to be truthy1453 wiki_enabled false does not create wiki repository directory1454 is expected to be falsey1455 import data1456 stores import data and URL1457 builds_enabled global setting1458 global builds_enabled false does not enable CI by default1459 is expected to be falsey1460 global builds_enabled true does enable CI by default1461 is expected to be truthy1462 default visibility level1463 creates a private project1464 restricted visibility level1465 when visibility is project based1466 does not allow a restricted visibility level for non-admins1467 allows a restricted visibility level for admins1468 when visibility is overridden1469 does not allow a restricted visibility level for non-admins1470 allows a restricted visibility level for admins1471 when visibility is misspelled1472 does not restrict project creation1473 repository creation1474 synchronously creates the repository1475 when another repository already exists on disk1476 with legacy storage1477 does not allow to create a project when path matches existing repository on disk1478 does not allow to import project when path matches existing repository on disk1479 with hashed storage1480 does not allow to create a project when path matches existing repository on disk1481 when readme initialization is requested1482 creates README.md1483 create service for the project1484 when there is an active instance-level and an active template integration1485 creates a service from the instance-level integration1486 when there is an active service template1487 creates a service from the template1488 when there is an invalid integration1489 creates an inactive service1490 when skip_disk_validation is used1491 sets the project attribute1492 when project has access to shared service1493 Prometheus application is shared via group cluster1494 creates PrometheusService record1495 Prometheus application is shared via instance cluster1496 creates PrometheusService record1497 cleans invalid record and logs warning1498 shared Prometheus application is not available1499 does not persist PrometheusService record1500 with external authorization enabled1501 does not save the project with an error if the service denies access1502 saves the project when the user has access to the label1503 does not save the project when the user has no access to the default label and no label is provided1504 behaves like measurable service1505 when measurement is enabled1506 measure service execution with Gitlab::Utils::Measuring1507 when measurement is disabled1508 does not measure service execution1509 with specialized_project_authorization_workers1510 updates authorization for current_user1511 schedules authorization update for users with access to group1512 when feature is disabled1513 updates authorization for current_user1514 uses AuthorizedProjectsWorker1515Ci::JobArtifact1516 is expected to respond to #file1517 is expected to respond to #created_at1518 is expected to respond to #updated_at1519 is expected to delegate #open to the #file object1520 is expected to delegate #exists? to the #file object1521 Associations1522 is expected to belong to project required:1523 is expected to belong to job required:1524 behaves like having unique enum values1525 has unique values in "file_type"1526 has unique values in "file_format"1527 has unique values in "file_location"1528 behaves like UpdateProjectStatistics1529 is expected to be a new record1530 when creating1531 updates the project statistics1532 schedules a namespace statistics worker1533 when updating1534 updates project statistics1535 schedules a namespace statistics worker1536 avoids N + 1 queries1537 when destroying1538 updates the project statistics1539 schedules a namespace statistics worker1540 when it is destroyed from the project level1541 does not update the project statistics1542 does not schedule a namespace statistics worker1543 .not_expired1544 returns artifacts that have not expired1545 .with_reports1546 is expected to be empty1547 when there are reports1548 is expected to eq [#<Ci::JobArtifact id: 14, project_id: 734, job_id: 99, file_type: "junit", size: 568, created_at: "2...lity.json", file_store: 1, file_sha256: nil, file_format: "raw", file_location: nil, locked: false>]1549 .test_reports1550 when there is a test report1551 is expected to eq [#<Ci::JobArtifact id: 16, project_id: 736, job_id: 101, file_type: "junit", size: 568, created_at: "...t.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil, locked: false>]1552 when there are no test reports1553 is expected to be empty1554 .accessibility_reports1555 when there is an accessibility report1556 is expected to eq [#<Ci::JobArtifact id: 18, project_id: 738, job_id: 103, file_type: "accessibility", size: 5977, crea...rors.json", file_store: 1, file_sha256: nil, file_format: "raw", file_location: nil, locked: false>]1557 when there are no accessibility report1558 is expected to be empty1559 .coverage_reports1560 when there is a coverage report1561 is expected to eq [#<Ci::JobArtifact id: 19, project_id: 739, job_id: 104, file_type: "cobertura", size: 576, created_a...e.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil, locked: false>]1562 when there are no coverage reports1563 is expected to be empty1564 .terraform_reports1565 when there is a terraform report1566 return the job artifact1567 when there are no terraform reports1568 return the an empty array1569 .erasable1570 when there is an erasable artifact1571 is expected to eq [#<Ci::JobArtifact id: 22, project_id: 742, job_id: 107, file_type: "junit", size: 568, created_at: "...t.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil, locked: false>]1572 when there are no erasable artifacts1573 is expected to be empty1574 .downloadable1575 filters for downloadable artifacts1576 .archived_trace_exists_for?1577 when the specified job_id exists1578 is expected to be truthy1579 when the job does have archived trace1580 is expected to be falsy1581 when the specified job_id does not exist1582 is expected to be falsy1583 .for_sha1584 returns job artifacts for a given pipeline sha1585 .for_ref1586 returns job artifacts for a given pipeline ref1587 .for_job_name1588 returns job artifacts for a given job name1589 callbacks1590 #schedule_background_upload1591 when object storage is disabled1592 does not schedule the migration1593 when object storage is enabled1594 when background upload is enabled1595 schedules the model for migration1596 when background upload is disabled1597 schedules the model for migration1598 creating the artifact1599 sets the size from the file size1600 updating the artifact file1601 updates the artifact size1602 validates if file format is supported1603 when license_management is supported1604 is expected to be valid1605 when license_management is not supported1606 is expected not to be valid1607 validates file format1608 when archive type with zip format1609 is expected to be valid1610 when archive type without format specification1611 is expected not to be valid1612 when archive type with other formats1613 is expected not to be valid1614 is expected not to be valid1615 when metadata type with gzip format1616 is expected to be valid1617 when metadata type without format specification1618 is expected not to be valid1619 when metadata type with other formats1620 is expected not to be valid1621 is expected not to be valid1622 when junit type with gzip format1623 is expected to be valid1624 when junit type without format specification1625 is expected not to be valid1626 when junit type with other formats1627 is expected not to be valid1628 is expected not to be valid1629 when metrics type with gzip format1630 is expected to be valid1631 when metrics type without format specification1632 is expected not to be valid1633 when metrics type with other formats1634 is expected not to be valid1635 is expected not to be valid1636 when metrics_referee type with gzip format1637 is expected to be valid1638 when metrics_referee type without format specification1639 is expected not to be valid1640 when metrics_referee type with other formats1641 is expected not to be valid1642 is expected not to be valid1643 when network_referee type with gzip format1644 is expected to be valid1645 when network_referee type without format specification1646 is expected not to be valid1647 when network_referee type with other formats1648 is expected not to be valid1649 is expected not to be valid1650 when dotenv type with gzip format1651 is expected to be valid1652 when dotenv type without format specification1653 is expected not to be valid1654 when dotenv type with other formats1655 is expected not to be valid1656 is expected not to be valid1657 when cobertura type with gzip format1658 is expected to be valid1659 when cobertura type without format specification1660 is expected not to be valid1661 when cobertura type with other formats1662 is expected not to be valid1663 is expected not to be valid1664 when cluster_applications type with gzip format1665 is expected to be valid1666 when cluster_applications type without format specification1667 is expected not to be valid1668 when cluster_applications type with other formats1669 is expected not to be valid1670 is expected not to be valid1671 when lsif type with zip format1672 is expected to be valid1673 when lsif type without format specification1674 is expected not to be valid1675 when lsif type with other formats1676 is expected not to be valid1677 is expected not to be valid1678 when accessibility type with raw format1679 is expected to be valid1680 when accessibility type without format specification1681 is expected not to be valid1682 when accessibility type with other formats1683 is expected not to be valid1684 is expected not to be valid1685 when codequality type with raw format1686 is expected to be valid1687 when codequality type without format specification1688 is expected not to be valid1689 when codequality type with other formats1690 is expected not to be valid1691 is expected not to be valid1692 when sast type with raw format1693 is expected to be valid1694 when sast type without format specification1695 is expected not to be valid1696 when sast type with other formats1697 is expected not to be valid1698 is expected not to be valid1699 when secret_detection type with raw format1700 is expected to be valid1701 when secret_detection type without format specification1702 is expected not to be valid1703 when secret_detection type with other formats1704 is expected not to be valid1705 is expected not to be valid1706 when dependency_scanning type with raw format1707 is expected to be valid1708 when dependency_scanning type without format specification1709 is expected not to be valid1710 when dependency_scanning type with other formats1711 is expected not to be valid1712 is expected not to be valid1713 when container_scanning type with raw format1714 is expected to be valid1715 when container_scanning type without format specification1716 is expected not to be valid1717 when container_scanning type with other formats1718 is expected not to be valid1719 is expected not to be valid1720 when dast type with raw format1721 is expected to be valid1722 when dast type without format specification1723 is expected not to be valid1724 when dast type with other formats1725 is expected not to be valid1726 is expected not to be valid1727 when license_management type with raw format1728 is expected to be valid1729 when license_management type without format specification1730 is expected not to be valid1731 when license_management type with other formats1732 is expected not to be valid1733 is expected not to be valid1734 when license_scanning type with raw format1735 is expected to be valid1736 when license_scanning type without format specification1737 is expected not to be valid1738 when license_scanning type with other formats1739 is expected not to be valid1740 is expected not to be valid1741 when performance type with raw format1742 is expected to be valid1743 when performance type without format specification1744 is expected not to be valid1745 when performance type with other formats1746 is expected not to be valid1747 is expected not to be valid1748 when terraform type with raw format1749 is expected to be valid1750 when terraform type without format specification1751 is expected not to be valid1752 when terraform type with other formats1753 is expected not to be valid1754 is expected not to be valid1755 when requirements type with raw format1756 is expected to be valid1757 when requirements type without format specification1758 is expected not to be valid1759 when requirements type with other formats1760 is expected not to be valid1761 is expected not to be valid1762 validates DEFAULT_FILE_NAMES1763 expects archive to be included1764 expects metadata to be included1765 expects trace to be included1766 expects junit to be included1767 expects sast to be included1768 expects dependency_scanning to be included1769 expects container_scanning to be included1770 expects dast to be included1771 expects codequality to be included1772 expects license_management to be included1773 expects license_scanning to be included1774 expects performance to be included1775 expects metrics to be included1776 expects metrics_referee to be included1777 expects network_referee to be included1778 expects lsif to be included1779 expects dotenv to be included1780 expects cobertura to be included1781 expects terraform to be included1782 expects accessibility to be included1783 expects cluster_applications to be included1784 expects secret_detection to be included1785 expects requirements to be included1786 validates TYPE_AND_FORMAT_PAIRS1787 expects archive to be included1788 expects metadata to be included1789 expects trace to be included1790 expects junit to be included1791 expects sast to be included1792 expects dependency_scanning to be included1793 expects container_scanning to be included1794 expects dast to be included1795 expects codequality to be included1796 expects license_management to be included1797 expects license_scanning to be included1798 expects performance to be included1799 expects metrics to be included1800 expects metrics_referee to be included1801 expects network_referee to be included1802 expects lsif to be included1803 expects dotenv to be included1804 expects cobertura to be included1805 expects terraform to be included1806 expects accessibility to be included1807 expects cluster_applications to be included1808 expects secret_detection to be included1809 expects requirements to be included1810 #file1811 the uploader api1812 is expected to respond to #store_dir1813 is expected to respond to #cache_dir1814 is expected to respond to #work_dir1815 #each_blob1816 when file format is gzip1817 when gzip file contains one file1818 iterates blob once1819 when gzip file contains three files1820 iterates blob three times1821 when file format is raw1822 iterates blob once1823 when there are no adapters for the file format1824 raises an error1825 expired?1826 when expire_at is nil1827 returns false1828 when expire_at is in the past1829 returns true1830 when expire_at is in the future1831 returns false1832 #expiring?1833 when expire_at is nil1834 returns false1835 when expire_at is in the past1836 returns false1837 when expire_at is in the future1838 returns true1839 #expire_in1840 is expected to be nil1841 when expire_at is specified1842 is expected to be within 5 of 604799.9989778971843 #expire_in=1844 when assigning valid duration1845 when assigning invalid duration1846 when resetting value1847 when setting to 01848 file is being stored1849 when existing object has local store1850 is stored locally1851 when direct upload is enabled1852 when file is stored1853 is stored remotely1854MergeRequests::MergeabilityCheckService1855 #async_execute1856 enqueues MergeRequestMergeabilityCheckWorker1857 when read only DB1858 behaves like no job is enqueued1859 does not enqueue MergeRequestMergeabilityCheckWorker1860 when merge_status is already checking1861 behaves like no job is enqueued1862 does not enqueue MergeRequestMergeabilityCheckWorker1863 #execute1864 behaves like mergeable merge request1865 updates or keeps merge status as can_be_merged1866 update diff discussion positions1867 updates the merge ref1868 returns ServiceResponse.success1869 ServiceResponse has merge_ref_head payload1870 when merge_ref_head_comments is disabled1871 does not update diff discussion positions1872 when lock is disabled1873 behaves like mergeable merge request1874 updates or keeps merge status as can_be_merged1875 update diff discussion positions1876 updates the merge ref1877 returns ServiceResponse.success1878 ServiceResponse has merge_ref_head payload1879 when merge_ref_head_comments is disabled1880 does not update diff discussion positions1881 when concurrent calls1882 waits first lock and returns "cached" result in subsequent calls1883 writes the merge-ref once1884 resets one merge request upon execution1885 when retry_lease flag is false1886 the first call succeeds, subsequent concurrent calls get a lock error response1887 disabled merge ref sync feature flag1888 returns error and no payload1889 ignores merge-ref and updates merge status1890 when broken1891 returns ServiceResponse.error1892 behaves like unmergeable merge request1893 updates or keeps merge status as cannot_be_merged1894 does not change the merge ref HEAD1895 returns ServiceResponse.error1896 when it cannot be merged on git1897 returns ServiceResponse.error1898 behaves like unmergeable merge request1899 updates or keeps merge status as cannot_be_merged1900 does not change the merge ref HEAD1901 returns ServiceResponse.error1902 when MR cannot be merged and has no merge ref1903 returns ServiceResponse.error1904 behaves like unmergeable merge request1905 updates or keeps merge status as cannot_be_merged1906 does not change the merge ref HEAD1907 returns ServiceResponse.error1908 when MR cannot be merged and has outdated merge ref1909 returns ServiceResponse.error1910 behaves like unmergeable merge request1911 updates or keeps merge status as cannot_be_merged1912 does not change the merge ref HEAD1913 returns ServiceResponse.error1914 when merge request is not given1915 returns ServiceResponse.error1916 when read only DB1917 returns ServiceResponse.error1918 when fails to update the merge-ref1919 returns ServiceResponse.error1920 behaves like unmergeable merge request1921 updates or keeps merge status as cannot_be_merged1922 does not change the merge ref HEAD1923 returns ServiceResponse.error1924 recheck enforced1925 when MR is mergeable and merge-ref auto-sync is disabled1926 returns ServiceResponse.error1927 merge status is not changed1928 when MR is marked as mergeable, but repo is not mergeable and MR is not opened1929 returns ServiceResponse.error1930 does not change the merge status1931 when MR is mergeable but merge-ref does not exists1932 behaves like mergeable merge request1933 updates or keeps merge status as can_be_merged1934 update diff discussion positions1935 updates the merge ref1936 returns ServiceResponse.success1937 ServiceResponse has merge_ref_head payload1938 when merge_ref_head_comments is disabled1939 does not update diff discussion positions1940 when MR is mergeable but merge-ref is already updated1941 returns ServiceResponse.success1942 does not recreate the merge-ref1943NotePolicy1944 #rules1945 when the noteable is a deleted commit1946 allows to read1947 when the noteable is a commit1948 when the project is private1949 behaves like a discussion with a private noteable1950 when the note author can no longer see the noteable1951 can not edit nor read the note1952 when the note author can still see the noteable1953 can edit the note1954 when the project is public1955 when repository access level is private1956 behaves like a discussion with a private noteable1957 when the note author can no longer see the noteable1958 can not edit nor read the note1959 when the note author can still see the noteable1960 can edit the note1961 when the noteable is a personal snippet1962 can edit note1963 when it is private1964 can not edit nor read the note1965 when the project is public1966 when the note author is not a project member1967 can edit a note1968 when the noteable is a project snippet1969 can edit note1970 when it is private1971 behaves like a discussion with a private noteable1972 when the note author can no longer see the noteable1973 can not edit nor read the note1974 when the note author can still see the noteable1975 can edit the note1976 when a discussion is confidential1977 behaves like a discussion with a private noteable1978 when the note author can no longer see the noteable1979 can not edit nor read the note1980 when the note author can still see the noteable1981 can edit the note1982 when a discussion is locked1983 when the note author is a project member1984 can edit a note1985 when the note author is not a project member1986 can not edit a note1987 can read a note1988 for discussions1989 allows the author to manage the discussion1990 when the user does not have access to the noteable1991 behaves like a discussion with a private noteable1992 when the note author can no longer see the noteable1993 can not edit nor read the note1994 when the note author can still see the noteable1995 can edit the note1996 when it is a system note1997 when noteable is a public issue1998 when user is project member1999 behaves like user can read the note2000 allows the user to read the note2001 behaves like user can act on the note2002 allows the user to read the note2003 when user is not project member2004 behaves like user can read the note2005 allows the user to read the note2006 when user is anonymous2007 behaves like user can read the note2008 allows the user to read the note2009 when it is a system note referencing a confidential issue2010 when user is project member2011 behaves like user can read the note2012 allows the user to read the note2013 behaves like user can act on the note2014 allows the user to read the note2015 when user is not project member2016 behaves like user cannot read or act on the note2017 allows user to read the note2018 when user is anonymous2019 behaves like user cannot read or act on the note2020 allows user to read the note2021 with confidential notes2022 for issues2023 allows noteable assignees to read all notes2024 behaves like confidential notes permissions2025 does not allow non members to read confidential notes and replies2026 does not allow guests to read confidential notes and replies2027 allows reporter to read all notes but not resolve and admin them2028 allows developer to read and resolve all notes2029 allows maintainers to read all notes and admin them2030 allows noteable author to read and resolve all notes2031 when admin mode is enabled2032 allows admins to read all notes and admin them2033 when admin mode is disabled2034 does not allow non members to read confidential notes and replies2035 for merge requests2036 allows noteable assignees to read all notes2037 behaves like confidential notes permissions2038 does not allow non members to read confidential notes and replies2039 does not allow guests to read confidential notes and replies2040 allows reporter to read all notes but not resolve and admin them2041 allows developer to read and resolve all notes2042 allows maintainers to read all notes and admin them2043 allows noteable author to read and resolve all notes2044 when admin mode is enabled2045 allows admins to read all notes and admin them2046 when admin mode is disabled2047 does not allow non members to read confidential notes and replies2048 for project snippets2049 behaves like confidential notes permissions2050 does not allow non members to read confidential notes and replies2051 does not allow guests to read confidential notes and replies2052 allows reporter to read all notes but not resolve and admin them2053 allows developer to read and resolve all notes2054 allows maintainers to read all notes and admin them2055 allows noteable author to read and resolve all notes2056 when admin mode is enabled2057 allows admins to read all notes and admin them2058 when admin mode is disabled2059 does not allow non members to read confidential notes and replies2060 for personal snippets2061 allows snippet author to read and resolve all notes2062 does not allow maintainers to read confidential notes and replies2063AutoMerge::BaseService2064 #execute2065 sets properies to the merge request2066 yields block2067 returns activated strategy name2068 when merge parameters are given2069 sets merge parameters2070 when strategy is merge when pipeline succeeds2071 sets the auto merge strategy2072 returns activated strategy name2073 calls AutoMergeProcessWorker2074 when failed to save merge request2075 does not yield block2076 returns failed2077 tracks the exception2078 when exception happens in yield block2079 returns failed status2080 rollback the transaction2081 tracks the exception2082 #update2083 when merge params are specified2084 updates merge params2085 #cancel2086 behaves like Canceled or Dropped2087 removes properies from the merge request2088 yields block2089 returns success status2090 when merge params are set2091 removes merge parameters2092 when failed to save2093 does not yield block2094 when failed to save merge request2095 returns error status2096 when exception happens in yield block2097 returns error2098 rollback the transaction2099 tracks the exception2100 #abort2101 behaves like Canceled or Dropped2102 removes properies from the merge request2103 yields block2104 returns success status2105 when merge params are set2106 removes merge parameters2107 when failed to save2108 does not yield block2109 when failed to save2110 returns error status2111 when exception happens in yield block2112 returns error2113 rollback the transaction2114 tracks the exception2115Ci::BuildPolicy2116 #rules2117 when user does not have access to the project2118 when public builds are enabled2119 does not include ability to read build2120 when public builds are disabled2121 does not include ability to read build2122 when anonymous user has access to the project2123 when public builds are enabled2124 includes ability to read build2125 when public builds are disabled2126 does not include ability to read build2127 when team member has access to the project2128 team member is a guest2129 when public builds are enabled2130 includes ability to read build2131 when public builds are disabled2132 does not include ability to read build2133 team member is a reporter2134 when public builds are enabled2135 includes ability to read build2136 when public builds are disabled2137 does not include ability to read build2138 when maintainer is allowed to push to pipeline branch2139 enables update_build if user is maintainer2140 rules for protected ref2141 when no one can push or merge to the branch2142 does not include ability to update build2143 when developers can push to the branch2144 includes ability to update build2145 when no one can create the tag2146 does not include ability to update build2147 when no one can create the tag but it is not a tag2148 includes ability to update build2149 rules for erase build2150 when a developer erases a build2151 when developers can push to the branch2152 when the build was created by the developer2153 when the build was created for a protected ref2154 is expected to be disallowed :erase_build2155 when the build was created for an unprotected ref2156 is expected to be allowed :erase_build2157 when the build was created by the other2158 is expected to be disallowed :erase_build2159 when no one can push or merge to the branch2160 is expected to be disallowed :erase_build2161 when a maintainer erases a build2162 when maintainers can push to the branch2163 when the build was created by the maintainer2164 is expected to be allowed :erase_build2165 when the build was created by the other2166 is expected to be allowed :erase_build2167 when no one can push or merge to the branch2168 is expected to be disallowed :erase_build2169 manage a web ide terminal2170 when create_web_ide_terminal access enabled2171 with admin2172 when admin mode enabled2173 is expected to be allowed :create_build_service_proxy2174 when admin mode disabled2175 is expected not to be allowed :create_build_service_proxy2176 when build is not from a webide pipeline2177 is expected not to be allowed :create_build_service_proxy2178 when build has no runner terminal2179 when admin mode enabled2180 is expected to be allowed :update_web_ide_terminal2181 is expected not to be allowed :create_build_service_proxy2182 when admin mode disabled2183 is expected not to be allowed :update_web_ide_terminal2184 is expected not to be allowed :create_build_service_proxy2185 feature flag "build_service_proxy" is disabled2186 is expected not to be allowed :create_build_service_proxy2187 with owner2188 behaves like allowed build owner access2189 is expected not to be allowed :create_build_service_proxy2190 when user is the owner of the job2191 is expected to be allowed :create_build_service_proxy2192 with maintainer2193 behaves like allowed build owner access2194 is expected not to be allowed :create_build_service_proxy2195 when user is the owner of the job2196 is expected to be allowed :create_build_service_proxy2197 with developer2198 behaves like forbidden access2199 is expected not to be allowed :create_build_service_proxy2200 when user is the owner of the job2201 is expected not to be allowed :create_build_service_proxy2202 with reporter2203 behaves like forbidden access2204 is expected not to be allowed :create_build_service_proxy2205 when user is the owner of the job2206 is expected not to be allowed :create_build_service_proxy2207 with guest2208 behaves like forbidden access2209 is expected not to be allowed :create_build_service_proxy2210 when user is the owner of the job2211 is expected not to be allowed :create_build_service_proxy2212 with non member2213 behaves like forbidden access2214 is expected not to be allowed :create_build_service_proxy2215 when user is the owner of the job2216 is expected not to be allowed :create_build_service_proxy2217MergeRequests::RebaseService2218 #execute2219 when another rebase is already in progress2220 saves the error message2221 returns an error2222 clears rebase_jid2223 behaves like sequence of failure and success2224 properly clears the error message2225 when unexpected error occurs2226 saves a generic error message2227 returns an error2228 logs the error2229 with git command failure2230 saves a generic error message2231 returns an error2232 valid params2233 behaves like a service that can execute a successful rebase2234 rebases source branch2235 records the new SHA on the merge request2236 logs correct author and committer2237 when skip_ci flag is set2238 behaves like a service that can execute a successful rebase2239 rebases source branch2240 records the new SHA on the merge request2241 logs correct author and committer2242 fork2243 successful fork rebase2244 rebases source branch2245Notes::QuickActionsService2246 .noteable_update_service2247 returns Issues::UpdateService for a note on an issue2248 returns MergeRequests::UpdateService for a note on a merge request2249 returns Commits::TagService for a note on a commit2250 .supported?2251 with a note on an issue2252 returns true2253 with a note on a commit2254 returns false2255 #supported?2256 delegates to the class method2257 #execute2258 behaves like note on noteable that supports quick actions2259 note with only command2260 /close, /label, /assign & /milestone2261 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2262 /reopen2263 opens the noteable, and leave no note2264 /spend2265 updates the spent time on the noteable2266 note with command & text2267 /close, /label, /assign & /milestone2268 closes noteable, sets labels, assigns, and sets milestone to noteable2269 /reopen2270 opens the noteable2271 behaves like note on noteable that supports quick actions2272 note with only command2273 /close, /label, /assign & /milestone2274 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2275 /reopen2276 opens the noteable, and leave no note2277 /spend2278 updates the spent time on the noteable2279 note with command & text2280 /close, /label, /assign & /milestone2281 closes noteable, sets labels, assigns, and sets milestone to noteable2282 /reopen2283 opens the noteable2284 CE restriction for issue assignees2285 /assign2286 adds only one assignee from the list2287Users::DestroyService2288 Deletes a user and all their personal projects2289 no options are given2290 deletes the user2291 deletes user associations in batches2292 does not include snippets when deleting in batches2293 will delete the project2294 calls the bulk snippet destroy service for the user personal snippets2295 calls the bulk snippet destroy service with hard delete option if it is present2296 does not delete project snippets that the user is the author of2297 when an error is raised deleting snippets2298 does not delete user2299 projects in pending_delete2300 destroys a project in pending_delete2301 a deleted user's issues2302 for an issue the user was assigned to2303 does not delete issues the user is assigned to2304 migrates the issue so that it is "Unassigned"2305 a deleted user's merge_requests2306 for an merge request the user was assigned to2307 does not delete merge requests the user is assigned to2308 migrates the merge request so that it is "Unassigned"2309 solo owned groups present2310 returns the user with attached errors2311 does not delete the user2312 deletions with solo owned groups2313 deletes solo owned groups2314 deletes the user2315 deletion permission checks2316 does not delete the user when user is not an admin2317 allows admins to delete anyone2318 allows users to delete their own account2319 migrating associated records2320 delegates to the `MigrateToGhostUser` service to move associated records to the ghost user2321 does not run `MigrateToGhostUser` if hard_delete option is given2322 user personal's repository removal2323 storages2324 legacy storage2325 removes repository2326 hashed storage2327 removes repository2328 repository removal status is taken into account2329 raises exception2330 calls the before/after callbacks2331 of project_members2332 of group_members2333JiraImportState2334 associations2335 is expected to belong to project required:2336 is expected to belong to user required:2337 is expected to belong to label required:2338 modules2339 is expected to includes the AfterCommitQueue module2340 validations2341 is expected to validate that :project cannot be empty/falsy2342 is expected to validate that :jira_project_key cannot be empty/falsy2343 is expected to validate that :jira_project_name cannot be empty/falsy2344 is expected to validate that :jira_project_xid cannot be empty/falsy2345 when trying to run multiple imports2346 when project has an initial jira_import2347 behaves like multiple running imports not allowed2348 returns not valid2349 when project has a scheduled jira_import2350 behaves like multiple running imports not allowed2351 returns not valid2352 when project has a started jira_import2353 behaves like multiple running imports not allowed2354 returns not valid2355 when project has a failed jira_import2356 returns valid2357 when project has a finished jira_import2358 returns valid2359 #in_progress?2360 statuses that return in progress2361 behaves like in progress2362 returns true2363 behaves like in progress2364 returns true2365 statuses that return not in progress2366 behaves like not in progress2367 returns false2368 behaves like not in progress2369 returns false2370 behaves like not in progress2371 returns false2372 states transition flow2373 when jira import is in initial state2374 behaves like can transition2375 returns true2376 returns true2377 behaves like cannot transition2378 returns false2379 returns false2380 when jira import is in scheduled state2381 behaves like can transition2382 returns true2383 returns true2384 behaves like cannot transition2385 returns false2386 when jira import is in started state2387 behaves like can transition2388 returns true2389 returns true2390 behaves like cannot transition2391 returns false2392 when jira import is in failed state2393 behaves like cannot transition2394 returns false2395 returns false2396 returns false2397 when jira import is in finished state2398 behaves like cannot transition2399 returns false2400 returns false2401 returns false2402 after transition to scheduled2403 triggers the import job2404 after transition to finished2405 triggers the import job2406 triggers the import job2407 updates the record with imported issues counts2408 ensure error_message size on save2409 when jira import has no error_message2410 does not run the callback2411 when jira import error_message does not exceed the limit2412 does not run the callback2413 when error_message exceeds limit2414 truncates error_message to the limit2415PipelineEntity2416 #as_json2417 when pipeline is empty2418 contains required fields2419 excludes coverage data when disabled2420 contains details2421 contains flags2422 when pipeline is retryable2423 does not serialize stage builds2424 user has ability to retry pipeline2425 contains retry path2426 user does not have ability to retry pipeline2427 does not contain retry path2428 when pipeline is cancelable2429 does not serialize stage builds2430 user has ability to cancel pipeline2431 contains cancel path2432 user does not have ability to cancel pipeline2433 does not contain cancel path2434 delete path2435 user has ability to delete pipeline2436 contains delete path2437 user does not have ability to delete pipeline2438 does not contain delete path2439 when pipeline ref is empty2440 does not generate branch path2441 when pipeline has a failure reason set2442 has a correct failure reason2443 when pipeline is detached merge request pipeline2444 makes detached flag true2445 does not expose source sha and target sha2446 when user is a developer2447 has merge request information2448 when user is an external user2449 has no merge request information2450 when pipeline is merge request pipeline2451 makes detached flag false2452 makes atached flag true2453 exposes source sha and target sha2454 exposes merge request event type2455 when pipeline has failed builds2456 when the user can retry the pipeline2457 exposes these failed builds2458 when the user cannot retry the pipeline2459 is nil2460Ci::Runner2461 behaves like having unique enum values2462 has unique values in "access_level"2463 has unique values in "runner_type"2464 validation2465 is expected to validate that :access_level cannot be empty/falsy2466 is expected to validate that :runner_type cannot be empty/falsy2467 when runner is not allowed to pick untagged jobs2468 when runner does not have tags2469 is not valid2470 when runner has tags2471 is valid2472 #exactly_one_group2473 disallows assigning group if already assigned to a group2474 runner_type validations2475 disallows assigning group to project_type runner2476 disallows assigning group to instance_type runner2477 disallows assigning project to group_type runner2478 disallows assigning project to instance_type runner2479 fails to save a group assigned to a project runner even if the runner is already saved2480 cost factors validations2481 dissalows :private_projects_minutes_cost_factor being nil2482 dissalows :public_projects_minutes_cost_factor being nil2483 dissalows :private_projects_minutes_cost_factor being negative2484 dissalows :public_projects_minutes_cost_factor being negative2485 constraints2486 .UPDATE_CONTACT_COLUMN_EVERY2487 #access_level2488 when creating new runner and access_level is nil2489 object is invalid2490 when creating new runner and access_level is defined in enum2491 object is valid2492 when creating new runner and access_level is not defined in enum2493 raises an error2494 .instance_type2495 returns only shared runners2496 .belonging_to_project2497 returns the specific project runner2498 .belonging_to_parent_group_of_project2499 returns the specific group runner2500 with a parent group with a runner2501 returns the group runner from the parent group2502 .owned_or_instance_wide2503 returns a globally shared, a project specific and a group specific runner2504 #display_name2505 returns the description if it has a value2506 returns the token if it does not have a description2507 returns the token if the description is an empty string2508 #assign_to2509 with shared_runner2510 transitions shared runner to project runner and assigns project2511 with group runner2512 raises an error2513 .online2514 is expected to eq [#<Ci::Runner id: 23, token: nil, created_at: "2020-06-17 17:14:43", updated_at: "2020-06-17 17:14:43...public_projects_minutes_cost_factor: 0.0, private_projects_minutes_cost_factor: 1.0, tag_list: nil>]2515 #online?2516 no cache value2517 never contacted2518 is expected to be falsey2519 contacted long time ago time2520 is expected to be falsey2521 contacted 1s ago2522 is expected to be truthy2523 with cache value2524 contacted long time ago time2525 is expected to be falsey2526 contacted 1s ago2527 is expected to be truthy2528 .offline2529 is expected to eq [#<Ci::Runner id: 29, token: nil, created_at: "2020-06-17 17:14:43", updated_at: "2020-06-17 17:14:43...public_projects_minutes_cost_factor: 0.0, private_projects_minutes_cost_factor: 1.0, tag_list: nil>]2530 #can_pick?2531 a different runner2532 cannot handle builds2533 when runner does not have tags2534 can handle builds without tags2535 cannot handle build with tags2536 when runner has tags2537 when runner can pick untagged jobs2538 can handle builds without tags2539 behaves like tagged build picker2540 can handle build with matching tags2541 cannot handle build without matching tags2542 when runner cannot pick untagged jobs2543 cannot handle builds without tags2544 behaves like tagged build picker2545 can handle build with matching tags2546 cannot handle build without matching tags2547 when runner is shared2548 can handle builds2549 when runner is locked2550 can handle builds2551 when runner is not shared2552 when runner is assigned to a project2553 can handle builds2554 when runner is assigned to another project2555 cannot handle builds2556 when runner is assigned to a group2557 can handle builds2558 when access_level of runner is not_protected2559 when build is protected2560 is expected to be truthy2561 when build is unprotected2562 is expected to be truthy2563 when access_level of runner is ref_protected2564 when build is protected2565 is expected to be truthy2566 when build is unprotected2567 is expected to be falsey2568 #status2569 never connected2570 is expected to eq :not_connected2571 contacted 1s ago2572 is expected to eq :online2573 contacted long time ago2574 is expected to eq :offline2575 inactive2576 is expected to eq :paused2577 #tick_runner_queue2578 returns a new last_update value2579 #ensure_runner_queue_value2580 sets a new last_update value when it is called the first time2581 does not change if it is not expired and called again2582 updates runner queue after changing editable value2583 sets a new last_update value2584 does not update runner value after save2585 has an old last_update value2586 #heartbeat2587 when database was updated recently2588 updates cache2589 when database was not updated recently2590 updates redis cache and database2591 with invalid runner2592 still updates redis cache and database2593 #destroy2594 when there is a tick in the queue2595 cleans up the queue2596 .assignable_for2597 with already assigned project2598 is expected to be empty2599 with a different project2600 is expected to include #<Ci::Runner id: 66, token: nil, created_at: "2020-06-17 17:14:46", updated_at: "2020-06-17 17:14:46"... public_projects_minutes_cost_factor: 0.0, private_projects_minutes_cost_factor: 1.0, tag_list: nil>2601 is expected not to include #<Ci::Runner id: 72, token: nil, created_at: "2020-06-17 17:14:47", updated_at: "2020-06-17 17:14:47"... public_projects_minutes_cost_factor: 0.0, private_projects_minutes_cost_factor: 1.0, tag_list: nil>2602 is expected not to include #<Ci::Runner id: 75, token: nil, created_at: "2020-06-17 17:14:47", updated_at: "2020-06-17 17:14:47"... public_projects_minutes_cost_factor: 0.0, private_projects_minutes_cost_factor: 1.0, tag_list: nil>2603 is expected not to include #<Ci::Runner id: 81, token: nil, created_at: "2020-06-17 17:14:48", updated_at: "2020-06-17 17:14:48"... public_projects_minutes_cost_factor: 0.0, private_projects_minutes_cost_factor: 1.0, tag_list: nil>2604 belongs_to_one_project?2605 returns false if there are two projects runner assigned to2606 returns true2607 #has_tags?2608 when runner has tags2609 is expected to have tags2610 when runner does not have tags2611 is expected not to have tags2612 .search2613 returns runners with a matching token2614 returns runners with a partially matching token2615 returns runners with a matching token regardless of the casing2616 returns runners with a matching description2617 returns runners with a partially matching description2618 returns runners with a matching description regardless of the casing2619 #assigned_to_group?2620 when project runner2621 is expected to be falsey2622 when shared runner2623 is expected to be falsey2624 when group runner2625 is expected to be truthy2626 #assigned_to_project?2627 when group runner2628 is expected to be falsey2629 when shared runner2630 is expected to be falsey2631 when project runner2632 is expected to be truthy2633 #pick_build!2634 runner can pick the build2635 calls #tick_runner_queue2636 runner cannot pick the build2637 does not call #tick_runner_queue2638 project runner without projects is destroyable2639 does not have projects2640 can be destroyed2641 .order_by2642 supports ordering by the contact date2643 supports ordering by the creation date2644 #uncached_contacted_at2645 is expected to eq 2020-06-17 16:14:50.000000000 +00002646 .belonging_to_group2647 returns the specific group runner2648 runner belonging to parent group2649 when include_parent option is passed2650 returns the group runner from the parent group2651 when include_parent option is not passed2652 does not return the group runner from the parent group2653Git::WikiPushService2654 #execute2655 calls log_error for every event we cannot create2656 the push contains more than the permitted number of changes2657 creates only MAX_CHANGES events2658 default_branch collides with a tag2659 creates only one event2660 successfully creating events2661 creates one event for every wiki action2662 handles all known actions2663 two pages have been created2664 creates two events2665 creates two metadata records2666 creates appropriate events2667 a non-page file as been added2668 does not create events, or WikiPage metadata2669 one page, and one non-page have been created2670 creates a wiki page creation event2671 creates one metadata record2672 one page has been added, and then updated2673 creates just a single event2674 creates just one metadata record2675 creates a new wiki page creation event2676 when a page we already know about has been updated2677 does not create a new meta-data record2678 creates a new event2679 adds an update event2680 when a page we do not know about has been updated2681 creates a new meta-data record2682 creates a new event2683 adds an update event2684 when a page we do not know about has been deleted2685 create a new meta-data record2686 creates a new event2687 adds an update event2688 feature flags2689 the wiki_events feature is disabled2690 behaves like a no-op push2691 does not create any events2692 does not even look for events to process2693 the wiki_events_on_git_push feature is disabled2694 behaves like a no-op push2695 does not create any events2696 does not even look for events to process2697 but is enabled for a given project2698 creates events2699MergeRequestDiffCommit2700 behaves like a BulkInsertSafe model2701 when calling class methods directly2702 raises an error when method is not bulk-insert safe2703 does not raise an error when method is bulk-insert safe2704 does not raise an error when the call is triggered by belongs_to2705 .bulk_insert!2706 when all items are valid2707 inserts them all2708 returns an empty array2709 when some items are invalid2710 does not insert any of them and raises an error2711 inserts them anyway when bypassing validations2712 #to_hash2713 returns the same results as Commit#to_hash, except for parent_ids2714 .create_bulk2715 inserts the commits into the database en masse2716 with dates larger than the DB limit2717 uses a sanitized date2718Gitlab::Cache::Ci::ProjectPipelineStatus2719 .load_for_project2720 loads the status2721 loading in batches2722 .load_in_batch_for_projects2723 loads pipeline_status on projects2724 loads 10 projects without hitting Gitaly call limit2725 .update_for_pipeline2726 refreshes the cache if nescessary2727 #has_status?2728 is false when the status wasn't loaded yet2729 is true when all status information was loaded2730 #load_status2731 loads the status from the cache when there is one2732 loads the status from the project commit when there is no cache2733 stores the status in the cache when it loading it from the project2734 sets the state to loaded2735 only loads the status once2736 handles Gitaly unavailable exceptions gracefully2737 handles Gitaly timeout exceptions gracefully2738 #load_from_project2739 reads the status from the pipeline for the commit2740 doesn't fail for an empty project2741 #store_in_cache2742 sets the object in caching2743 #store_in_cache_if_needed2744 stores the state in the cache when the sha is the HEAD of the project2745 doesn't store the status in redis_cache when the sha is not the head of the project2746 deletes the cache if the repository doesn't have a head commit2747 with a status in caching2748 #load_from_cache2749 reads the status from redis_cache2750 when status is empty string2751 reads the status as nil2752 #has_cache?2753 knows the status is cached2754 #delete_from_cache2755 deletes values from redis_cache2756Gitlab::Database::WithLockRetries2757 #run2758 requires block2759 when DISABLE_LOCK_RETRIES is set2760 executes the passed block without retrying2761 when lock retry is enabled2762 lock_fiber2763 acquires lock successfully2764 after 3 iterations2765 behaves like retriable exclusive lock on `projects`2766 succeeds executing the given block2767 after the retries, without setting lock_timeout2768 behaves like retriable exclusive lock on `projects`2769 succeeds executing the given block2770 when statement timeout is reached2771 raises QueryCanceled error2772 restore local database variables2773 is expected not to change `ActiveRecord::Base.connection.execute("SHOW lock_timeout").to_a`2774 is expected not to change `ActiveRecord::Base.connection.execute("SHOW idle_in_transaction_session_timeout").to_a`2775 casting durations correctly2776 executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds2777 calls `sleep` after the first iteration fails, using the configured sleep time2778Snippets::CreateService2779 #execute2780 when ProjectSnippet2781 behaves like a service that creates a snippet2782 creates a snippet with the provided attributes2783 behaves like public visibility level restrictions apply2784 when user is not an admin2785 responds with an error2786 does not create a public snippet2787 when user is an admin2788 responds with success2789 creates a public snippet2790 when visibility level is passed as a string2791 assigns the correct visibility level2792 behaves like snippets spam check is performed2793 when allow_possible_spam flag is true2794 behaves like marked as spam2795 marks a snippet as spam2796 invalidates the snippet2797 creates a new spam_log2798 assigns a spam_log to an issue2799 when allow_possible_spam flag is false2800 behaves like marked as spam2801 marks a snippet as spam2802 invalidates the snippet2803 creates a new spam_log2804 assigns a spam_log to an issue2805 when allow_possible_spam flag is nil2806 behaves like marked as spam2807 marks a snippet as spam2808 invalidates the snippet2809 creates a new spam_log2810 assigns a spam_log to an issue2811 behaves like snippet create data is tracked2812 increments count when create succeeds2813 when create fails2814 does not increment count2815 behaves like an error service response when save fails2816 responds with an error2817 does not create the snippet2818 behaves like creates repository and files2819 creates repository2820 commits the files to the repository2821 when repository creation action fails2822 does not create the snippet2823 returns a generic creation error2824 does not return a snippet with an id2825 when repository creation fails with invalid file name2826 returns an appropriate error2827 when the commit action fails2828 does not create the snippet2829 destroys the created repository2830 destroys the snippet_repository2831 logs the error2832 returns a generic error2833 when snippet creation fails2834 does not create repository2835 behaves like after_save callback to store_mentions2836 when mentionable attributes change2837 saves mentions2838 when mentionable attributes do not change2839 does not call store_mentions2840 when save fails2841 does not call store_mentions2842 behaves like when snippet_files param is present2843 creates a snippet with the provided attributes2844 commit the files to the repository2845 when content or file_name params are present2846 a validation error is raised2847 when snippet_files param is invalid2848 a validation error is raised2849 when uploaded files are passed to the service2850 does not move uploaded files to the snippet2851 when PersonalSnippet2852 behaves like a service that creates a snippet2853 creates a snippet with the provided attributes2854 behaves like public visibility level restrictions apply2855 when user is not an admin2856 responds with an error2857 does not create a public snippet2858 when user is an admin2859 responds with success2860 creates a public snippet2861 when visibility level is passed as a string2862 assigns the correct visibility level2863 behaves like snippets spam check is performed2864 when allow_possible_spam flag is true2865 behaves like marked as spam2866 marks a snippet as spam2867 invalidates the snippet2868 creates a new spam_log2869 assigns a spam_log to an issue2870 when allow_possible_spam flag is false2871 behaves like marked as spam2872 marks a snippet as spam2873 invalidates the snippet2874 creates a new spam_log2875 assigns a spam_log to an issue2876 when allow_possible_spam flag is nil2877 behaves like marked as spam2878 marks a snippet as spam2879 invalidates the snippet2880 creates a new spam_log2881 assigns a spam_log to an issue2882 behaves like snippet create data is tracked2883 increments count when create succeeds2884 when create fails2885 does not increment count2886 behaves like an error service response when save fails2887 responds with an error2888 does not create the snippet2889 behaves like creates repository and files2890 creates repository2891 commits the files to the repository2892 when repository creation action fails2893 does not create the snippet2894 returns a generic creation error2895 does not return a snippet with an id2896 when repository creation fails with invalid file name2897 returns an appropriate error2898 when the commit action fails2899 does not create the snippet2900 destroys the created repository2901 destroys the snippet_repository2902 logs the error2903 returns a generic error2904 when snippet creation fails2905 does not create repository2906 behaves like after_save callback to store_mentions2907 when mentionable attributes change2908 saves mentions2909 when mentionable attributes do not change2910 does not call store_mentions2911 when save fails2912 does not call store_mentions2913 behaves like when snippet_files param is present2914 creates a snippet with the provided attributes2915 commit the files to the repository2916 when content or file_name params are present2917 a validation error is raised2918 when snippet_files param is invalid2919 a validation error is raised2920 when the snippet description contains files2921 stores the snippet description correctly2922 when there is a validation error2923 does not move uploaded files to the snippet2924AvatarUploader2925 behaves like builds correct paths2926 #store_dir2927 behaves like matches the method pattern2928 is expected to match /uploads\/-\/system\/user\/avatar\//2929 #cache_dir2930 behaves like matches the method pattern2931 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2932 #work_dir2933 behaves like matches the method pattern2934 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2935 #upload_path2936 behaves like matches the method pattern2937 is expected to match /uploads\/-\/system\/user\/avatar\//2938 #relative_path2939 is relative (PENDING: Path not set, skipping.)2940 .absolute_path2941 behaves like matches the method pattern2942 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/user\/avatar\//2943 .base_dir2944 behaves like matches the method pattern2945 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2946 object_store is REMOTE2947 behaves like builds correct paths2948 #store_dir2949 behaves like matches the method pattern2950 is expected to match /user\/avatar\//2951 #cache_dir2952 behaves like matches the method pattern2953 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2954 #work_dir2955 behaves like matches the method pattern2956 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2957 #upload_path2958 behaves like matches the method pattern2959 is expected to match /user\/avatar\//2960 #relative_path2961 is relative (PENDING: Path not set, skipping.)2962 .absolute_path2963 behaves like matches the method pattern2964 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2965 .base_dir2966 behaves like matches the method pattern2967 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2968 with a file2969 sets the right absolute path2970 behaves like migrates2971 returns corresponding file type2972 does nothing when migrating to the current store2973 migrate to the specified store2974 removes the original file after the migration2975 can access to the original file during migration2976 when migrate! is not occupied by another process2977 executes migrate!2978 executes use_file2979 when migrate! is occupied by another process2980 does not execute migrate!2981 does not execute use_file2982 migration is unsuccessful2983 when the store is not supported2984 does not update the object_store2985 does not delete the original file2986 upon a fog failure2987 does not update the object_store2988 does not delete the original file2989 upon a database failure2990 does not update the object_store2991 does not delete the original file2992 behaves like migrates2993 returns corresponding file type2994 does nothing when migrating to the current store2995 migrate to the specified store2996 removes the original file after the migration2997 can access to the original file during migration2998 when migrate! is not occupied by another process2999 executes migrate!3000 executes use_file3001 when migrate! is occupied by another process3002 does not execute migrate!3003 does not execute use_file3004 migration is unsuccessful3005 when the store is not supported3006 does not update the object_store3007 does not delete the original file3008 upon a fog failure3009 does not update the object_store3010 does not delete the original file3011 upon a database failure3012 does not update the object_store3013 does not delete the original file3014 accept whitelist file content type3015 mime_type: "image/png"3016 behaves like accepted carrierwave upload3017 will accept upload3018 will cache uploaded file3019 mime_type: "image/jpeg"3020 behaves like accepted carrierwave upload3021 will accept upload3022 will cache uploaded file3023 mime_type: "image/gif"3024 behaves like accepted carrierwave upload3025 will accept upload3026 will cache uploaded file3027 mime_type: "image/bmp"3028 behaves like accepted carrierwave upload3029 will accept upload3030 will cache uploaded file3031 mime_type: "image/tiff"3032 behaves like accepted carrierwave upload3033 will accept upload3034 will cache uploaded file3035 mime_type: "image/vnd.microsoft.icon"3036 behaves like accepted carrierwave upload3037 will accept upload3038 will cache uploaded file3039 upload non-whitelisted file content type3040 behaves like denied carrierwave upload3041 will deny upload3042 upload misnamed non-whitelisted file content type3043 behaves like denied carrierwave upload3044 will deny upload3045Gitlab::ImportExport::AfterExportStrategies::WebUploadStrategy3046 validations3047 only POST and PUT method allowed3048 onyl allow urls as upload urls3049 #execute3050 removes the exported project file after the upload3051 when upload fails3052 stores the export error3053ProjectAPICompatibility3054 converts build_git_strategy=fetch to build_allow_git_fetch=true3055 converts build_git_strategy=clone to build_allow_git_fetch=false3056 #auto_devops_enabled3057 initial: :missing, final: nil3058 sets the correct value3059 initial: :missing, final: false3060 sets the correct value3061 initial: :missing, final: true3062 sets the correct value3063 initial: nil, final: nil3064 sets the correct value3065 initial: nil, final: false3066 sets the correct value3067 initial: nil, final: true3068 sets the correct value3069 initial: false, final: nil3070 sets the correct value3071 initial: false, final: false3072 sets the correct value3073 initial: false, final: true3074 sets the correct value3075 initial: true, final: nil3076 sets the correct value3077 initial: true, final: false3078 sets the correct value3079 initial: true, final: true3080 sets the correct value3081 #auto_devops_deploy_strategy3082 initial: :missing, final: "continuous"3083 sets the correct value3084 initial: :missing, final: "manual"3085 sets the correct value3086 initial: :missing, final: "timed_incremental"3087 sets the correct value3088 initial: "continuous", final: "continuous"3089 sets the correct value3090 initial: "continuous", final: "manual"3091 sets the correct value3092 initial: "continuous", final: "timed_incremental"3093 sets the correct value3094 initial: "manual", final: "continuous"3095 sets the correct value3096 initial: "manual", final: "manual"3097 sets the correct value3098 initial: "manual", final: "timed_incremental"3099 sets the correct value3100 initial: "timed_incremental", final: "continuous"3101 sets the correct value3102 initial: "timed_incremental", final: "manual"3103 sets the correct value3104 initial: "timed_incremental", final: "timed_incremental"3105 sets the correct value3106MergeRequests::Conflicts::ListService3107 #can_be_resolved_in_ui?3108 returns a falsey value when the MR can be merged without conflicts3109 returns a falsey value when the MR is marked as having conflicts, but has none3110 returns a falsey value when one of the MR branches is missing3111 returns a falsey value when the MR does not support new diff notes3112 returns a falsey value when the conflicts contain a large file3113 returns a falsey value when the conflicts contain a binary file3114 returns a falsey value when the conflicts contain a file edited in one branch and deleted in another3115 returns a truthy value when the conflicts are resolvable in the UI3116 returns a truthy value when the conflicts have to be resolved in an editor3117 returns a falsey value when the MR has a missing ref after a force push3118 returns a falsey value when the MR has a missing revision after a force push3119 returns a falsey value when the conflict is in a submodule revision3120Blob3121 .decorate3122 returns NilClass when given nil3123 .lazy3124 with project3125 behaves like .lazy checks3126 does not fetch blobs when none are accessed3127 fetches all blobs for the same repository when one is accessed3128 does not include blobs from previous requests in later requests3129 with personal snippet3130 behaves like .lazy checks3131 does not fetch blobs when none are accessed3132 fetches all blobs for the same repository when one is accessed3133 does not include blobs from previous requests in later requests3134 with project snippet3135 behaves like .lazy checks3136 does not fetch blobs when none are accessed3137 fetches all blobs for the same repository when one is accessed3138 does not include blobs from previous requests in later requests3139 #data3140 with project3141 behaves like #data checks3142 using a binary blob3143 returns the data as-is3144 using a text blob3145 converts the data to UTF-83146 with personal snippet3147 behaves like #data checks3148 using a binary blob3149 returns the data as-is3150 using a text blob3151 converts the data to UTF-83152 with project snippet3153 behaves like #data checks3154 using a binary blob3155 returns the data as-is3156 using a text blob3157 converts the data to UTF-83158 #external_storage_error?3159 if the blob is stored in LFS3160 when LFS is enabled3161 is expected to be falsy3162 when LFS is not enabled3163 is expected to be truthy3164 if the blob is not stored in LFS3165 is expected to be falsy3166 #stored_externally?3167 if the blob is stored in LFS3168 when LFS is enabled3169 is expected to be truthy3170 when LFS is not enabled3171 is expected to be falsy3172 if the blob is not stored in LFS3173 is expected to be falsy3174 #binary?3175 an lfs object3176 filename: "file.pdf", is_binary: true3177 is expected to eq true3178 filename: "file.md", is_binary: false3179 is expected to eq false3180 filename: "file.txt", is_binary: false3181 is expected to eq false3182 filename: "file.ics", is_binary: false3183 is expected to eq false3184 filename: "file.rb", is_binary: false3185 is expected to eq false3186 filename: "file.exe", is_binary: true3187 is expected to eq true3188 filename: "file.ini", is_binary: false3189 is expected to eq false3190 filename: "file.wtf", is_binary: true3191 is expected to eq true3192 a non-lfs object3193 delegates to binary_in_repo?3194 #extension3195 returns the extension3196 #file_type3197 returns the file type3198 #simple_viewer3199 when the blob is empty3200 returns an empty viewer3201 when the file represented by the blob is binary3202 returns a download viewer3203 when the file represented by the blob is text-based3204 returns a text viewer3205 #rich_viewer3206 when the blob has an external storage error3207 returns nil3208 when the blob is empty3209 returns nil3210 when the blob is stored externally3211 returns a matching viewer3212 when the blob is binary3213 returns a matching binary viewer3214 when the blob is text-based3215 returns a matching text-based viewer3216 when the blob is video3217 returns a video viewer3218 when the blob is audio3219 returns an audio viewer3220 #auxiliary_viewer3221 when the blob has an external storage error3222 returns nil3223 when the blob is empty3224 returns nil3225 when the blob is stored externally3226 returns a matching viewer3227 when the blob is binary3228 returns nil3229 when the blob is text-based3230 returns a matching text-based viewer3231 #rendered_as_text?3232 when ignoring errors3233 when the simple viewer is text-based3234 is expected to be truthy3235 when the simple viewer is binary3236 is expected to be falsy3237 when not ignoring errors3238 when the viewer has render errors3239 is expected to be falsy3240 when the viewer doesn't have render errors3241 is expected to be truthy3242 policy3243 works with policy3244 when project is nil3245 does not err3246DroneCiService3247 associations3248 is expected to belong to project required:3249 is expected to have one service_hook3250 validations3251 active3252 is expected to validate that :token cannot be empty/falsy3253 is expected to validate that :drone_url cannot be empty/falsy3254 behaves like issue tracker service URL attribute3255 is expected to allow :drone_url to be ‹"https://example.com"›3256 is expected not to allow :drone_url to be ‹"example.com"›3257 is expected not to allow :drone_url to be ‹"ftp://example.com"›3258 is expected not to allow :drone_url to be ‹"herp-and-derp"›3259 inactive3260 is expected not to validate that :token cannot be empty/falsy3261 is expected not to validate that :drone_url cannot be empty/falsy3262 service page/path methods3263 is expected to eq "http://drone.example.com/gitlab/namespace1392/project/redirect/commits/2ab7834c?branch=dev"3264 is expected to eq "http://drone.example.com/gitlab/namespace1393/project/commits/2ab7834c?branch=dev&access_token=secret"3265 #commit_status3266 returns the contents of the reactive cache3267 #calculate_reactive_cache3268 #commit_status3269 sets commit status to :error when status is 5003270 sets commit status to :error when status is 4043271 sets commit status to :error with a SocketError error3272 sets commit status to :error with a OpenSSL::SSL::SSLError error3273 sets commit status to :error with a OpenSSL::OpenSSLError error3274 sets commit status to :error with a Errno::ECONNRESET error3275 sets commit status to :error with a Errno::ECONNREFUSED error3276 sets commit status to :error with a Errno::EHOSTUNREACH error3277 sets commit status to :error with a Net::OpenTimeout error3278 sets commit status to :error with a Net::ReadTimeout error3279 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3280 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3281 sets commit status to :canceled when returned status is "killed"3282 sets commit status to :failed when returned status is "failure"3283 sets commit status to :failed when returned status is "error"3284 sets commit status to "success" when returned status is "success"3285 execute3286 is expected to receive service_hook(*(any args)) 1 time3287Clusters::ClusterPolicy3288 rules3289 when developer3290 is expected to be disallowed :update_cluster3291 is expected to be disallowed :admin_cluster3292 when maintainer3293 is expected to be allowed :update_cluster3294 is expected to be allowed :admin_cluster3295 group cluster3296 when group developer3297 is expected to be disallowed :update_cluster3298 is expected to be disallowed :admin_cluster3299 when group maintainer3300 is expected to be allowed :update_cluster3301 is expected to be allowed :admin_cluster3302 when project maintainer3303 is expected to be disallowed :update_cluster3304 is expected to be disallowed :admin_cluster3305 when project developer3306 is expected to be disallowed :update_cluster3307 is expected to be disallowed :admin_cluster3308 instance cluster3309 when user3310 is expected to be disallowed :update_cluster3311 is expected to be disallowed :admin_cluster3312 when admin3313 when admin mode is enabled3314 is expected to be allowed :update_cluster3315 is expected to be allowed :admin_cluster3316 when admin mode is disabled3317 is expected to be disallowed :update_cluster3318 is expected to be disallowed :admin_cluster3319Search::GlobalService3320 #execute3321 unauthenticated3322 returns public projects only3323 authenticated3324 returns public, internal and private projects3325 returns only public & internal projects3326 project name is searchable3327 does not return archived projects3328Route3329 relationships3330 is expected to belong to source required:3331 validations3332 is expected to validate that :source cannot be empty/falsy3333 is expected to validate that :path cannot be empty/falsy3334 is expected to validate that :path is case-insensitively unique3335 callbacks3336 before validation3337 calls #delete_conflicting_orphaned_routes3338 after update3339 calls #create_redirect_for_old_path3340 calls #delete_conflicting_redirects3341 after create3342 calls #delete_conflicting_redirects3343 .inside_path3344 returns correct routes3345 #rename_descendants3346 path update3347 when route name is set3348 updates children routes with new path3349 when route name is nil3350 does not fail3351 when conflicting redirects exist3352 deletes the conflicting redirects3353 name update3354 updates children routes with new path3355 handles a rename from nil3356 #create_redirect_for_old_path3357 if the path changed3358 creates a RedirectRoute for the old path3359 #create_redirect3360 creates a RedirectRoute with the same source3361 when the source is a Project3362 creates a RedirectRoute3363 when the source is not a project3364 creates a RedirectRoute3365 #delete_conflicting_redirects3366 deletes the redirect3367 when a redirect route with the same path exists3368 when the redirect route has matching case3369 deletes the redirect3370 when redirect routes with paths descending from the route path exists3371 deletes all redirects with paths that descend from the route path3372 when the redirect route is differently cased3373 deletes the redirect3374 #conflicting_redirects3375 returns an ActiveRecord::Relation3376 returns the redirect routes3377 when a redirect route with the same path exists3378 when the redirect route has matching case3379 returns the redirect route3380 when redirect routes with paths descending from the route path exists3381 returns the redirect routes3382 when the redirect route is differently cased3383 returns the redirect route3384 #delete_conflicting_orphaned_routes3385 when there is a conflicting route3386 when the route is orphaned3387 deletes the orphaned route3388 passes validation, as usual3389 when the route is not orphaned3390 does not delete the conflicting route3391 fails validation, as usual3392 when there are no conflicting routes3393 does not delete any routes3394 passes validation, as usual3395Gitlab::ImportExport::Project::ObjectBuilder3396 request store is not active3397 ignore cache initialize3398 request store is active3399 initialize cache in memory3400 cache object when first time find the object3401 read from cache when object has been cached3402 labels3403 finds the existing group label3404 finds the existing group label in root ancestor3405 creates a new label3406 milestones3407 finds the existing group milestone3408 finds the existing group milestone in root ancestor3409 creates a new milestone3410 merge_request3411 finds the existing merge_request3412 creates a new merge_request3413Gitlab::GithubImport::Importer::ReleasesImporter3414 #execute3415 imports the releases in bulk3416 imports draft releases3417 #build_releases3418 returns an Array containing release rows3419 does not create releases that already exist3420 uses a default release description if none is provided3421 #build3422 returns the attributes of the release as a Hash3423 the returned Hash3424 includes the tag name3425 includes the release description3426 includes the project ID3427 includes the created timestamp3428 includes the updated timestamp3429 includes the release name3430 #each_release3431 returns an Enumerator3432 yields every release to the Enumerator3433 #description_for3434 returns the description when present3435 returns a generated description when one is not present3436Gitlab::Verify::Uploads3437 behaves like Gitlab::Verify::BatchVerifier subclass3438 batching3439 iterates through objects in batches3440 allows the starting ID to be specified3441 allows the finishing ID to be specified3442 #run_batches3443 passes uploads with the correct file3444 fails uploads with a missing file3445 fails uploads with a mismatched checksum3446 fails uploads with a missing precalculated checksum3447 with remote files3448 returned hash object3449 passes uploads in object storage that exist3450 fails uploads in object storage that do not exist3451 performance3452 avoids N+1 queries3453RemoveExpiredGroupLinksWorker3454 #perform3455 ProjectGroupLinks3456 removes expired group links3457 leaves group links that expire in the future3458 leaves group links that do not expire at all3459 removes project authorization3460 GroupGroupLinks3461 expired GroupGroupLink exists3462 calls Groups::GroupLinks::DestroyService3463 removes project authorization3464 expired GroupGroupLink does not exist3465 does not call Groups::GroupLinks::DestroyService3466ProjectNoteEntity3467 exposes project-specific elements3468 behaves like note entity3469 basic note3470 exposes correct elements3471 does not expose elements for specific notes cases3472 exposes author correctly3473 does not expose web_url for author3474 when note was edited3475 exposes last_edited_at and last_edited_by elements3476 when note is a system note3477 exposes system_note_icon_name element3478 when note is part of resolvable discussion3479 exposes paths to resolve note3480Mutations::MergeRequests::SetWip3481 is expected to require graphql authorizations :update_merge_request3482 #resolve3483 raises an error if the resource is not accessible to the user3484 when the user can update the merge request3485 returns the merge request as a wip3486 returns errors merge request could not be updated3487 when passing wip as false3488 removes `wip` from the title3489 does not do anything if the title did not start with wip3490Gitlab::ImportExport::LfsRestorer3491 #restore3492 when the archive contains lfs files3493 succeeds3494 does not create a new `LfsObject` records, as one already exists3495 creates new `LfsObjectsProject` records in order to link the project to the existing `LfsObject`3496 restores the correct `LfsObject` records3497 restores the correct `LfsObjectsProject` records for the project3498 assigns the file correctly3499 when there is not an existing `LfsObject`3500 creates a new lfs object3501 stores the upload3502 when there is no lfs-objects.json file3503 restores the correct `LfsObject` records3504 restores a single `LfsObjectsProject` record for the project with "project" for the `repository_type`3505 without any LFS-objects3506 succeeds3507Gitlab::SlashCommands::IssueMove3508 #match3509 behaves like move command3510 can be parsed to extract the needed fields3511 behaves like move command3512 can be parsed to extract the needed fields3513 behaves like move command3514 can be parsed to extract the needed fields3515 behaves like move command3516 can be parsed to extract the needed fields3517 behaves like move command3518 can be parsed to extract the needed fields3519 behaves like move command3520 can be parsed to extract the needed fields3521 #execute3522 when the user can move the issue3523 when the move fails3524 returns the error message3525 when the move succeeds3526 moves the issue to the new destination3527 returns the new issue3528 mentions the old issue3529 when the issue does not exist3530 returns not found3531 when the target project does not exist3532 returns not found3533 when the user cannot see the target project3534 returns not found3535 when the user does not have the required permissions on the target project3536 returns the error message3537MergeRequests::ReloadDiffsService3538 #execute3539 creates new merge request diff3540 calls update_diff_discussion_positions with correct params3541 does not change existing merge request diff3542 cache clearing3543 clears the cache for older diffs on the merge request3544 avoids N+1 queries3545projects/commit/branches.html.haml3546 when branches and tags are available3547 shows default branch3548 shows js expand link3549 shows branch and tag links3550 when branches are available but no tags3551 shows branches3552 shows js expand link3553 shows limit exceeded message for tags3554 when tags are available but no branches (just default)3555 shows default branch3556 shows js expand link3557 shows tags3558 shows limit exceeded for branches3559 when branches and tags are not available3560 shows default branch3561 shows js expand link3562 shows too many to search3563Projects::HashedStorage::RollbackAttachmentsService3564 #execute3565 works even when project validation fails3566 when succeeds3567 moves attachments to legacy storage layout3568 returns true3569 sets skipped to false3570 when original folder does not exist anymore3571 skips moving folders and go to next3572 returns true3573 sets skipped to true3574 when target folder already exists3575 raises AttachmentCannotMoveError3576 #old_disk_path3577 returns old disk_path for project3578 #new_disk_path3579 returns new disk_path for project3580CommitWithPipeline3581 #last_pipeline3582 returns last pipeline3583 #latest_pipeline3584 without ref argument3585 behaves like fetching latest pipeline3586 returns the latest pipeline for the project3587 returns the memoized pipeline for the key of3588 when a particular ref is specified3589 behaves like fetching latest pipeline3590 returns the latest pipeline for the project3591 returns the memoized pipeline for the key of master3592 #latest_pipeline_for_project3593 returns the latest pipeline of the commit for the given ref and project3594 #set_latest_pipeline_for_ref3595 sets the latest pipeline for a given reference3596 #status3597 returns the status of the latest pipeline for the given ref3598 returns nil when latest pipeline is not present for the given ref3599 returns the status of the latest pipeline when no ref is given3600ProjectGroupLink3601 Associations3602 is expected to belong to group required:3603 is expected to belong to project required:3604 Validation3605 is expected to validate that :project_id cannot be empty/falsy3606 is expected to validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure3607 is expected to validate that :group cannot be empty/falsy3608 is expected to validate that :group_access cannot be empty/falsy3609 doesn't allow a project to be shared with the group it is in3610 doesn't allow a project to be shared with an ancestor of the group it is in3611 scopes3612 .non_guests3613 returns all records which are greater than Guests access3614 search by group name3615 is expected to eq [#<ProjectGroupLink id: 23, project_id: 1617, group_id: 2868, created_at: "2020-06-17 17:16:59", updated_at: "2020-06-17 17:16:59", group_access: 30, expires_at: nil>]3616 is expected to be empty3617Ci::ResourceGroup3618 validation3619 valids when key includes allowed character3620 invalids when key includes invalid character3621 #ensure_resource3622 creates one resource when resource group is created3623 #assign_resource_to3624 retains resource for the build3625 when there are no free resources3626 fails to retain resource3627 when the build has already retained a resource3628 fails to retain resource3629 #release_resource_from3630 when the build has already retained a resource3631 releases resource from the build3632 when the build has already released a resource3633 fails to release resource3634BoardPolicy3635 group board3636 user has access3637 is expected to be allowed :read_issue3638 user does not have access3639 is expected not to be allowed :read_issue3640 project board3641 user has access3642 is expected to be allowed :read_issue3643 user does not have access3644 is expected not to be allowed :read_issue3645 create_non_backlog_issues3646 for project boards3647 when user can admin project issues3648 allows to add non backlog issues from issue board3649 when user cannot admin project issues3650 does not allow to add non backlog issues from issue board3651 for group boards3652 when user is at least reporter in one of the child projects3653 allows to add non backlog issues from issue board3654 when user is not a reporter from any child projects3655 does not allow to add non backlog issues from issue board3656PipelineScheduleWorker3657 when the schedule is runnable by the user3658 when there is a scheduled pipeline within next_run_at3659 behaves like successful scheduling3660 creates a new pipeline3661 when the latest commit contains [ci skip]3662 behaves like successful scheduling3663 creates a new pipeline3664 when the schedule is deactivated3665 does not creates a new pipeline3666 when gitlab-ci.yml is corrupted3667 does not creates a new pipeline3668 when the schedule is not runnable by the user3669 does not deactivate the schedule3670 does not create a pipeline3671 does not raise an exception3672 when .gitlab-ci.yml is missing in the project3673 does not create a pipeline3674 does not raise an exception3675Gitlab::ImportExport::SnippetsRepoRestorer3676 bundle a snippet Git repo3677 when export has no snippet repository bundle3678 behaves like imports snippet repositories3679 is expected not to be empty3680 when export has snippet repository bundles and snippets without them3681 behaves like imports snippet repositories3682 is expected not to be empty3683 when export has only snippet bundles3684 behaves like imports snippet repositories3685 is expected not to be empty3686 when any of the snippet repositories cannot be created3687 continues processing other snippets and returns false3688Projects::DeployTokens::CreateService3689 behaves like a deploy token creation service3690 #execute3691 when the deploy token is valid3692 creates a new DeployToken3693 creates a new ProjectDeployToken3694 returns a DeployToken3695 when expires at date is not passed3696 sets Forever.date3697 when username is empty string3698 converts it to nil3699 when username is provided3700 keeps the provided username3701 when the deploy token is invalid3702 does not create a new DeployToken3703 does not create a new ProjectDeployToken3704DeployKeysProjectPolicy3705 updating a deploy_keys_project3706 when a project maintainer3707 tries to update private deploy key attached to project3708 is expected to be disallowed :update_deploy_keys_project3709 tries to update public deploy key attached to project3710 is expected to be allowed :update_deploy_keys_project3711 when a non-maintainer project member3712 tries to update private deploy key attached to project3713 is expected to be disallowed :update_deploy_keys_project3714 tries to update public deploy key attached to project3715 is expected to be disallowed :update_deploy_keys_project3716 when a user is not a project member3717 tries to update public deploy key attached to project3718 is expected to be disallowed :update_deploy_keys_project3719PrometheusAlert3720 .distinct_projects3721 returns a count of all distinct projects which have an alert3722 operators3723 contains the correct equality operator3724 associations3725 is expected to belong to project required:3726 is expected to belong to environment required:3727 project validations3728 is expected to validate that :environment cannot be empty/falsy3729 is expected to validate that :project cannot be empty/falsy3730 is expected to validate that :prometheus_metric cannot be empty/falsy3731 when environment and metric belongs same project3732 is expected to be valid3733 when environment belongs to different project3734 is expected not to be valid3735 when metric belongs to different project3736 is expected not to be valid3737 when metric is common3738 is expected to be valid3739 #full_query3740 returns the concatenated query3741 #to_param3742 returns the params of the prometheus alert3743DiffFileEntity3744 when there is no merge request3745 behaves like diff file entity3746 exposes correct attributes3747 includes viewer3748 behaves like diff file base entity3749 exposes essential attributes3750 when diff file does not have a blob and content sha3751 exposes some attributes as nil3752 diff files3753 when diff_view is parallel3754 contains only the parallel diff lines3755 when diff_view is parallel3756 contains only the inline diff lines3757 when the `single_mr_diff_view` feature is disabled3758 contains both kinds of diffs3759 when there is a merge request3760 exposes additional attributes3761 points all urls to merge request target project3762 exposes load_collapsed_diff_url if the file viewer is collapsed3763 behaves like diff file entity3764 exposes correct attributes3765 includes viewer3766 behaves like diff file base entity3767 exposes essential attributes3768 when diff file does not have a blob and content sha3769 exposes some attributes as nil3770 diff files3771 when diff_view is parallel3772 contains only the parallel diff lines3773 when diff_view is parallel3774 contains only the inline diff lines3775 when the `single_mr_diff_view` feature is disabled3776 contains both kinds of diffs3777 #parallel_diff_lines3778 exposes parallel diff lines correctly3779ResourceAccessTokens::CreateService3780 #execute3781 when resource is a project3782 behaves like fails when user does not have the permission to create a Resource Bot3783 returns error3784 behaves like fails when flag is disabled3785 returns nil3786 user with valid permission3787 behaves like allows creation of bot with valid params3788 is expected to change `User.count` by 13789 creates resource bot user3790 adds the bot user as a maintainer in the resource3791 bot name3792 when no value is passed3793 uses default value3794 when user provides value3795 overrides the default value3796 personal access token3797 is expected to change `PersonalAccessToken.count` by 13798 when user does not provide scope3799 has default scopes3800 when user provides scope explicitly3801 overrides the default value3802 expires_at3803 when no value is passed3804 uses default value3805 when user provides value3806 overrides the default value3807 when invalid scope is passed3808 returns error3809 when access provisioning fails3810 returns error3811NamespaceFileUploader3812 behaves like builds correct paths3813 #store_dir3814 behaves like matches the method pattern3815 is expected to match /uploads\/-\/system\/namespace\/\d+/3816 #cache_dir3817 behaves like matches the method pattern3818 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3819 #work_dir3820 behaves like matches the method pattern3821 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3822 #upload_path3823 behaves like matches the method pattern3824 is expected to match /\h+\/\S+/3825 #relative_path3826 is relative (PENDING: Path not set, skipping.)3827 .absolute_path3828 behaves like matches the method pattern3829 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/namespace\/\d+\/(?-mix:\h+\/\S+)/3830 .base_dir3831 behaves like matches the method pattern3832 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3833 object_store is REMOTE3834 behaves like builds correct paths3835 #store_dir3836 behaves like matches the method pattern3837 is expected to match /namespace\/\d+\/\h+/3838 #cache_dir3839 behaves like matches the method pattern3840 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3841 #work_dir3842 behaves like matches the method pattern3843 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3844 #upload_path3845 behaves like matches the method pattern3846 is expected to match /\h+\/\S+/3847 #relative_path3848 is relative (PENDING: Path not set, skipping.)3849 .absolute_path3850 behaves like matches the method pattern3851 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3852 .base_dir3853 behaves like matches the method pattern3854 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3855 .base_dir3856 returns local storage base_dir without store param3857 returns local storage base_dir when store param is Store::LOCAL3858 returns remote base_dir when store param is Store::REMOTE3859 #workhorse_local_upload_path3860 returns the correct path in uploads directory3861 #migrate!3862 behaves like migrates3863 returns corresponding file type3864 does nothing when migrating to the current store3865 migrate to the specified store3866 removes the original file after the migration3867 can access to the original file during migration3868 when migrate! is not occupied by another process3869 executes migrate!3870 executes use_file3871 when migrate! is occupied by another process3872 does not execute migrate!3873 does not execute use_file3874 migration is unsuccessful3875 when the store is not supported3876 does not update the object_store3877 does not delete the original file3878 upon a fog failure3879 does not update the object_store3880 does not delete the original file3881 upon a database failure3882 does not update the object_store3883 does not delete the original file3884 behaves like migrates3885 returns corresponding file type3886 does nothing when migrating to the current store3887 migrate to the specified store3888 removes the original file after the migration3889 can access to the original file during migration3890 when migrate! is not occupied by another process3891 executes migrate!3892 executes use_file3893 when migrate! is occupied by another process3894 does not execute migrate!3895 does not execute use_file3896 migration is unsuccessful3897 when the store is not supported3898 does not update the object_store3899 does not delete the original file3900 upon a fog failure3901 does not update the object_store3902 does not delete the original file3903 upon a database failure3904 does not update the object_store3905 does not delete the original file3906 copy_to3907 files are stored locally3908 generates a new secret3909 creates new upload correctly3910 copies the file3911 copies the file to the correct location3912 files are stored remotely3913 generates a new secret3914 creates new upload correctly3915 copies the file3916 copies the file to the correct location3917FileMover3918 #execute3919 local storage3920 when move and field update successful3921 updates the description correctly3922 updates existing upload record3923 schedules a background migration3924 when update_markdown fails3925 does not update the description3926 does not change the upload record3927 when tmp uploader is not local storage3928 when move and field update successful3929 updates the description correctly3930 creates new target upload record an delete the old upload3931 when update_markdown fails3932 does not update the description3933 does not change the upload record3934 security3935 when relative path is involved3936 does not trigger move if path is outside designated directory3937 when symlink is involved3938 does not trigger move if path is outside designated directory3939Types::IssueType3940 is expected to expose permissions using Types::PermissionTypes::Issue3941 is expected to eq "Issue"3942 is expected to require graphql authorizations :read_issue3943 is expected to include Types::Notes::NoteableType3944 has specific fields3945 issue notes3946 query issue notes3947 when user signed in3948 behaves like does not include private notes3949 does not return private notes3950 when user member of the project3951 behaves like includes private notes3952 returns all notes3953 when user is anonymous3954 behaves like does not include private notes3955 does not return private notes3956Discussions::CaptureDiffNotePositionService3957 image note on diff3958 is note affected by the service3959 when empty paths are passed as a param3960 does not calculate positons3961 when position tracer returned nil position3962 does not create diff note position3963Suggestion3964 associations3965 is expected to belong to note required:3966 validations3967 is expected to validate that :note cannot be empty/falsy3968 when suggestion is applied3969 is expected to validate that :commit_id cannot be empty/falsy3970 #diff_lines3971 returns parsed diff lines3972 #appliable?3973 when patch is already applied3974 returns false3975 when merge request is not opened3976 returns false3977Gitlab::ImportExport::FileImporter3978 normal run3979 removes symlinks in root folder3980 removes hidden symlinks in root folder3981 removes evil symlinks in root folder3982 removes symlinks in subfolders3983 removes symlinks without any file permissions3984 does not remove a valid file3985 does not change a valid file permissions3986 creates the file in the right subfolder3987 error3988 removes symlinks in root folder3989 removes hidden symlinks in root folder3990 removes symlinks in subfolders3991 does not remove a valid file3992Mutations::Issues::SetConfidential3993 is expected to require graphql authorizations :update_issue3994 #resolve3995 raises an error if the resource is not accessible to the user3996 when the user can update the issue3997 returns the issue as confidential3998 when passing confidential as false3999 updates the issue confidentiality to false4000Projects::HashedStorage::BaseAttachmentService4001 #old_disk_path4002 is expected to respond to #old_disk_path4003 #new_disk_path4004 is expected to respond to #new_disk_path4005 #skipped?4006 is expected to respond to #skipped?4007 #target_path_discardable?4008 returns false4009 #discard_path!4010 renames target path adding a timestamp at the end4011 #move_folder!4012 when old_path is not a directory4013 adds information to the logger and returns true4014Gitlab::Git::KeepAround4015 does not fail if we attempt to reference bad commit4016 stores a reference to the specified commit sha so it isn't garbage collected4017 attempting to call keep around on truncated ref does not fail4018 for multiple SHAs4019 skips non-existent SHAs4020 skips already-kept-around SHAs4021MergeRequests::AssignsMergeParams4022 raises an error when used from an instance that does not respond to #current_user4023 #assign_allowed_merge_params4024 only assigns known parameters to the merge request4025 returns a hash without the known merge params4026 the force_remove_source_branch param4027 assigns the param if the user is allowed to do that4028 only removes the param if the user is not allowed to do that4029Gitlab::Serverless::Service4030 exposes methods extracting data from the attributes hash4031 returns nil for missing attributes4032 #description4033 extracts the description in knative 7 format if available4034 extracts the description in knative 5/6 format if 7 is not available4035 #url4036 returns proxy URL if cluster has serverless domain4037 returns the URL from the knative 6/7 format4038 returns the URL from the knative 5 format4039WebHookLogPresenter4040 #details_path4041 project hook4042 is expected to eq "/namespace1665/project1435/hooks/1/hook_logs/1"4043 service hook4044 is expected to eq "/namespace1666/project1436/-/services/drone_ci/hook_logs/2"4045 #retry_path4046 project hook4047 is expected to eq "/namespace1667/project1437/hooks/4/hook_logs/3/retry"4048 service hook4049 is expected to eq "/namespace1668/project1438/-/services/drone_ci/hook_logs/4/retry"4050ErrorTracking::ListProjectsService4051 #execute4052 with authorized user4053 set model attributes to new values4054 uses new api_url and token4055 masked param token4056 uses database token4057 with invalid url4058 returns error4059 when list_sentry_projects returns projects4060 returns the projects4061 with unauthorized user4062 returns error4063 with error tracking disabled4064 ignores enabled flag4065 error_tracking_setting is nil4066 builds a new error_tracking_setting4067Gitlab::SlashCommands::IssueShow4068 #execute4069 the issue exists4070 returns the issue4071 when its reference is given4072 shows the issue4073 the issue does not exist4074 returns not found4075 .match4076 matches the iid4077 accepts a reference4078Gitlab::SlashCommands::Presenters::Deploy4079 #present4080 is expected to have key :text4081 is expected to have key :response_type4082 is expected to have key :status4083 is expected not to have key :attachments4084 messages the channel of the deploy4085 #action_not_found4086 is expected to have key :text4087 is expected to have key :response_type4088 is expected to have key :status4089 is expected not to have key :attachments4090 tells the user there is no action4091Tags::DestroyService4092 #execute4093 removes the tag4094 when there is an associated release on the tag4095 destroys the release4096MergeRequests::PushedBranchesService4097 when branches pushed4098 returns only branches which have a merge request4099 when tags pushed4100 returns empty result without any SQL query performed4101AuditEventService4102 #security_event4103 creates an event and logs to a file4104 formats from and to fields4105 #log_security_event_to_file4106 logs security event to file4107Users::LastPushEventService4108 #cache_last_push_event4109 caches the event for the event's project and current user4110 caches the event for the origin project when pushing to a fork4111 #last_event_for_user4112 returns the last push event for the current user4113 returns nil when no push event could be found4114 #last_event_for_project4115 returns the last push event for the given project4116 returns nil when no push event could be found4117 #find_cached_event4118 with a non-existing cache key4119 returns nil4120 with an existing cache key4121 returns a PushEvent when no merge requests exist for the event4122 removes the cache key when no event could be found and returns nil4123RepositoryRemoveRemoteWorker4124 #perform4125 returns nil when project does not exist4126 when project exists4127 does not remove remote when cannot obtain lease4128 removes remote from repository when obtain a lease4129AnalyticsIssueEntity4130 generic entity4131 contains the entity URL4132 contains the author4133 does not contain sensitive information4134UserCalloutsHelper4135 .show_gke_cluster_integration_callout?4136 when user can create a cluster4137 when user has not dismissed4138 is expected to equal true4139 when user dismissed4140 is expected to equal false4141 when user can not create a cluster4142 is expected to equal false4143 .show_admin_integrations_moved?4144 when user has not dismissed4145 is expected to equal true4146 when user dismissed4147 is expected to equal false4148 .render_flash_user_callout4149 renders the flash_user_callout partial4150Ci::CancelUserPipelinesService4151 #execute4152 when user has running CI pipelines4153 cancels all running pipelines and related jobs4154Projects::EnableDeployKeyService4155 enables the key4156 trying to add an unaccessable key4157 returns nil if the key cannot be added4158 add the same key twice4159 returns existing key4160projects/ci/jobs/_build4161 won't include a column with a link to its pipeline by default4162 can include a column with a link to its pipeline4163DesignManagement::GenerateImageVersionsService4164 #execute4165 generates the image4166 skips generating image versions if the mime type is not whitelisted4167 skips generating image versions if the design file size is too large4168 returns the status4169 returns the version4170 logs if the raw image cannot be found4171 when an error is encountered when generating the image versions4172 logs the error4173 tracks the error4174Gitlab::JiraImport::IssueSerializer4175 #execute4176 attributes setting4177 sets the basic attributes4178 creates a hash for valid issue4179 labels4180 creates all missing labels (on project level)4181 when there are no new labels4182 assigns the labels to the Issue hash4183 does not create new labels4184 author4185 when reporter maps to a valid GitLab user4186 sets the issue author to the mapped user4187 when reporter does not map to a valid Gitlab user4188 defaults the issue author to project creator4189 when reporter field is empty4190 defaults the issue author to project creator4191 when reporter field is missing email address4192 defaults the issue author to project creator4193 assignee4194 when assignee maps to a valid GitLab user4195 sets the issue assignees to the mapped user4196 when assignee does not map to a valid GitLab user4197 leaves the assignee empty4198 when assginee field is empty4199 leaves the assignee empty4200 when assginee field is missing email address4201 leaves the assignee empty4202 with done status4203 maps the status to closed4204 without the iid4205 does not set the iid4206Groups::GroupLinks::UpdateService#execute4207 updates existing link4208 updates project permissions4209 executes UserProjectAccessChangedService4210 with only param not requiring authorization refresh4211 does not execute UserProjectAccessChangedService4212Gitlab::VisibilityLevel4213 .level_value4214 converts "public" to integer value4215 converts string integer to integer value4216 defaults to PRIVATE when string value is not valid4217 defaults to PRIVATE when integer value is not valid4218 .levels_for_user4219 returns all levels for an admin4220 returns INTERNAL and PUBLIC for internal users4221 returns PUBLIC for external users4222 returns PUBLIC when no user is given4223 .allowed_levels4224 only includes the levels that arent restricted4225 returns all levels when no visibility level was set4226 .closest_allowed_level4227 picks INTERNAL instead of PUBLIC if public is restricted4228 picks PRIVATE if nothing is available4229 .valid_level?4230 returns true when visibility is valid4231 .restricted_level?, .non_restricted_level?, and .public_level_restricted?4232 visibility_levels: nil, expected_status: false4233 returns the expected status4234 visibility_levels: [0], expected_status: false4235 returns the expected status4236 visibility_levels: [0, 10], expected_status: false4237 returns the expected status4238 visibility_levels: [20], expected_status: true4239 returns the expected status4240 visibility_levels: [20, 10], expected_status: true4241 returns the expected status4242 #visibility_level_decreased?4243 when visibility level decreases4244 returns true4245 when visibility level does not decrease4246 returns false4247ObjectPool::JoinWorker4248 #perform4249 when the pool is not joinable4250 doesn't raise an error4251 when the pool has been joined before4252 succeeds in joining4253Types::DesignManagement::DesignCollectionType4254 is expected to require graphql authorizations :read_design4255 has the expected fields4256Knapsack report was generated. Preview:4257{4258 "spec/lib/gitlab/import_export/project/tree_restorer_spec.rb": 174.51182341575623,4259 "spec/models/repository_spec.rb": 89.54857468605042,4260 "spec/services/projects/create_service_spec.rb": 53.780908823013306,4261 "spec/models/ci/job_artifact_spec.rb": 31.0442636013031,4262 "spec/services/merge_requests/mergeability_check_service_spec.rb": 29.51486372947693,4263 "spec/policies/note_policy_spec.rb": 28.79721975326538,4264 "spec/services/auto_merge/base_service_spec.rb": 18.283504724502563,4265 "spec/policies/ci/build_policy_spec.rb": 20.08905267715454,4266 "spec/services/merge_requests/rebase_service_spec.rb": 16.22593665122986,4267 "spec/services/notes/quick_actions_service_spec.rb": 11.482621669769287,4268 "spec/services/users/destroy_service_spec.rb": 14.976886749267578,4269 "spec/models/jira_import_state_spec.rb": 11.548362255096436,4270 "spec/serializers/pipeline_entity_spec.rb": 14.423226833343506,4271 "spec/models/ci/runner_spec.rb": 9.648602485656738,4272 "spec/services/git/wiki_push_service_spec.rb": 8.260429859161377,4273 "spec/models/merge_request_diff_commit_spec.rb": 9.89645791053772,4274 "spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb": 6.721765756607056,4275 "spec/lib/gitlab/database/with_lock_retries_spec.rb": 8.286276817321777,4276 "spec/services/snippets/create_service_spec.rb": 7.04601788520813,4277 "spec/uploaders/avatar_uploader_spec.rb": 6.652441501617432,4278 "spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb": 5.638544082641602,4279 "spec/models/concerns/project_api_compatibility_spec.rb": 5.243228197097778,4280 "spec/services/merge_requests/conflicts/list_service_spec.rb": 5.134979248046875,4281 "spec/models/blob_spec.rb": 4.930874586105347,4282 "spec/models/project_services/drone_ci_service_spec.rb": 3.9325826168060303,4283 "spec/policies/clusters/cluster_policy_spec.rb": 3.9550704956054688,4284 "spec/services/search/global_service_spec.rb": 3.912050247192383,4285 "spec/models/route_spec.rb": 3.5190696716308594,4286 "spec/lib/gitlab/import_export/project/object_builder_spec.rb": 3.1691768169403076,4287 "spec/lib/gitlab/github_import/importer/releases_importer_spec.rb": 2.7869694232940674,4288 "spec/lib/gitlab/verify/uploads_spec.rb": 4.078507423400879,4289 "spec/workers/remove_expired_group_links_worker_spec.rb": 3.665560245513916,4290 "spec/serializers/project_note_entity_spec.rb": 2.619535207748413,4291 "spec/graphql/mutations/merge_requests/set_wip_spec.rb": 3.0058200359344482,4292 "spec/lib/gitlab/import_export/lfs_restorer_spec.rb": 2.3267266750335693,4293 "spec/lib/gitlab/slash_commands/issue_move_spec.rb": 2.6475722789764404,4294 "spec/services/merge_requests/reload_diffs_service_spec.rb": 2.429682731628418,4295 "spec/views/projects/commit/branches.html.haml_spec.rb": 3.385237693786621,4296 "spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb": 2.4639089107513428,4297 "spec/models/commit_with_pipeline_spec.rb": 2.0410797595977783,4298 "spec/models/project_group_link_spec.rb": 2.348768472671509,4299 "spec/models/ci/resource_group_spec.rb": 2.7107903957366943,4300 "spec/policies/board_policy_spec.rb": 2.249695062637329,4301 "spec/workers/pipeline_schedule_worker_spec.rb": 2.356782913208008,4302 "spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb": 1.8097176551818848,4303 "spec/services/projects/deploy_tokens/create_service_spec.rb": 2.835341691970825,4304 "spec/policies/deploy_keys_project_policy_spec.rb": 1.8123383522033691,4305 "spec/models/prometheus_alert_spec.rb": 1.5655174255371094,4306 "spec/serializers/diff_file_entity_spec.rb": 1.954195499420166,4307 "spec/services/resource_access_tokens/create_service_spec.rb": 2.561292886734009,4308 "spec/uploaders/namespace_file_uploader_spec.rb": 1.099574327468872,4309 "spec/uploaders/file_mover_spec.rb": 1.5102574825286865,4310 "spec/graphql/types/issue_type_spec.rb": 1.6585333347320557,4311 "spec/services/discussions/capture_diff_note_position_service_spec.rb": 1.3459632396697998,4312 "spec/models/suggestion_spec.rb": 1.2982053756713867,4313 "spec/lib/gitlab/import_export/file_importer_spec.rb": 1.4659829139709473,4314 "spec/graphql/mutations/issues/set_confidential_spec.rb": 1.6333458423614502,4315 "spec/services/projects/hashed_storage/base_attachment_service_spec.rb": 2.0742299556732178,4316 "spec/lib/gitlab/git/keep_around_spec.rb": 1.0602078437805176,4317 "spec/services/concerns/merge_requests/assigns_merge_params_spec.rb": 0.771573543548584,4318 "spec/lib/gitlab/serverless/service_spec.rb": 0.821479320526123,4319 "spec/presenters/web_hook_log_presenter_spec.rb": 1.0526411533355713,4320 "spec/services/error_tracking/list_projects_service_spec.rb": 0.8978853225708008,4321 "spec/lib/gitlab/slash_commands/issue_show_spec.rb": 0.8381633758544922,4322 "spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb": 1.0288500785827637,4323 "spec/services/tags/destroy_service_spec.rb": 0.6080505847930908,4324 "spec/services/merge_requests/pushed_branches_service_spec.rb": 0.848095178604126,4325 "spec/services/audit_event_service_spec.rb": 0.6115505695343018,4326 "spec/services/users/last_push_event_service_spec.rb": 0.4718496799468994,4327 "spec/workers/repository_remove_remote_worker_spec.rb": 0.5387258529663086,4328 "spec/serializers/analytics_issue_entity_spec.rb": 0.7119872570037842,4329 "spec/helpers/user_callouts_helper_spec.rb": 1.0155484676361084,4330 "spec/services/ci/cancel_user_pipelines_service_spec.rb": 0.5893542766571045,4331 "spec/services/projects/enable_deploy_key_service_spec.rb": 0.697141170501709,4332 "spec/views/projects/jobs/_build.html.haml_spec.rb": 0.6479277610778809,4333 "spec/services/design_management/generate_image_versions_service_spec.rb": 0.5995447635650635,4334 "spec/lib/gitlab/jira_import/issue_serializer_spec.rb": 0.8767590522766113,4335 "spec/services/groups/group_links/update_service_spec.rb": 0.6866199970245361,4336 "spec/lib/gitlab/visibility_level_spec.rb": 0.756744384765625,4337 "spec/workers/object_pool/join_worker_spec.rb": 1.2019097805023193,4338 "spec/graphql/types/design_management/design_collection_type_spec.rb": 0.0080344676971435554339}4340Knapsack global time execution for tests: 11m 33s4341Pending: (Failures listed here are expected and do not affect your suite's status)4342 1) AvatarUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 4343 # No pattern provided, skipping.4344 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84345 2) AvatarUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 4346 # No pattern provided, skipping.4347 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84348 3) AvatarUploader behaves like builds correct paths #relative_path is relative4349 # Path not set, skipping.4350 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:394351 4) AvatarUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 4352 # No pattern provided, skipping.4353 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84354 5) AvatarUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 4355 # No pattern provided, skipping.4356 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84357 6) AvatarUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 4358 # No pattern provided, skipping.4359 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84360 7) AvatarUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative4361 # Path not set, skipping.4362 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:394363 8) AvatarUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 4364 # No pattern provided, skipping.4365 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84366 9) AvatarUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 4367 # No pattern provided, skipping.4368 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84369 10) NamespaceFileUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 4370 # No pattern provided, skipping.4371 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84372 11) NamespaceFileUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 4373 # No pattern provided, skipping.4374 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84375 12) NamespaceFileUploader behaves like builds correct paths #relative_path is relative4376 # Path not set, skipping.4377 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:394378 13) NamespaceFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 4379 # No pattern provided, skipping.4380 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84381 14) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 4382 # No pattern provided, skipping.4383 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84384 15) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 4385 # No pattern provided, skipping.4386 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84387 16) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative4388 # Path not set, skipping.4389 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:394390 17) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 4391 # No pattern provided, skipping.4392 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84393 18) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 4394 # No pattern provided, skipping.4395 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84396Finished in 12 minutes 35 seconds (files took 45.4 seconds to load)43972361 examples, 0 failures, 18 pending4398Wed Jun 17 17:18:09 UTC 20204400Not uploading cache rails-v1-3 due to policy4402Uploading artifacts...4403coverage/: found 5 matching files and directories 4404knapsack/: found 3 matching files and directories 4405rspec_flaky/: found 4 matching files and directories 4406rspec_profiling/: found 1 matching files and directories 4407WARNING: tmp/capybara/: no matching files 4408tmp/memory_test/: found 2 matching files and directories 4409log/*.log: found 17 matching files and directories 4410Uploading artifacts as "archive" to coordinator... ok id=599847108 responseStatus=201 Created token=WkwXq8zG4411Uploading artifacts...4412junit_rspec.xml: found 1 matching files and directories 4413Uploading artifacts as "junit" to coordinator... ok id=599847108 responseStatus=201 Created token=WkwXq8zG4414Job succeeded