rspec unit pg13 single-db-ci-connection 12/28
Passed Started
by
@fabiopitino
Fabio Pitino
1/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here2/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION3/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here4/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE5/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here6/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS7/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here8Run options: exclude {:quarantine=>true, :level=>"background_migration"}9Test environment set up in 0.807013975 seconds10Gitlab::RelativePositioning::Mover11 #move_to_end12 all positions are taken13 raises an error when placing a new item14 index: 015 behaves like able to move existing items to the end16 can move any existing item17 index: 118 behaves like able to move existing items to the end19 can move any existing item20 index: 221 behaves like able to move existing items to the end22 can move any existing item23 index: 324 behaves like able to move existing items to the end25 can move any existing item26 index: 427 behaves like able to move existing items to the end28 can move any existing item29 there are no siblings30 behaves like able to place a new item at the end31 can place any new item32 there is only one sibling33 pos: 10134 behaves like able to place a new item at the end35 can place any new item36 behaves like able to move existing items to the end37 can move any existing item38 pos: 10239 behaves like able to place a new item at the end40 can place any new item41 behaves like able to move existing items to the end42 can move any existing item43 pos: 10344 behaves like able to place a new item at the end45 can place any new item46 behaves like able to move existing items to the end47 can move any existing item48 pos: 10449 behaves like able to place a new item at the end50 can place any new item51 behaves like able to move existing items to the end52 can move any existing item53 pos: 10554 behaves like able to place a new item at the end55 can place any new item56 behaves like able to move existing items to the end57 can move any existing item58 at least one position is free59 free_space: 101, index: 060 behaves like able to place a new item at the end61 can place any new item62 behaves like able to move existing items to the end63 can move any existing item64 free_space: 101, index: 165 behaves like able to place a new item at the end66 can place any new item67 behaves like able to move existing items to the end68 can move any existing item69 free_space: 101, index: 270 behaves like able to place a new item at the end71 can place any new item72 behaves like able to move existing items to the end73 can move any existing item74 free_space: 101, index: 375 behaves like able to place a new item at the end76 can place any new item77 behaves like able to move existing items to the end78 can move any existing item79 free_space: 102, index: 080 behaves like able to place a new item at the end81 can place any new item82 behaves like able to move existing items to the end83 can move any existing item84 free_space: 102, index: 185 behaves like able to place a new item at the end86 can place any new item87 behaves like able to move existing items to the end88 can move any existing item89 free_space: 102, index: 290 behaves like able to place a new item at the end91 can place any new item92 behaves like able to move existing items to the end93 can move any existing item94 free_space: 102, index: 395 behaves like able to place a new item at the end96 can place any new item97 behaves like able to move existing items to the end98 can move any existing item99 free_space: 103, index: 0100 behaves like able to place a new item at the end101 can place any new item102 behaves like able to move existing items to the end103 can move any existing item104 free_space: 103, index: 1105 behaves like able to place a new item at the end106 can place any new item107 behaves like able to move existing items to the end108 can move any existing item109 free_space: 103, index: 2110 behaves like able to place a new item at the end111 can place any new item112 behaves like able to move existing items to the end113 can move any existing item114 free_space: 103, index: 3115 behaves like able to place a new item at the end116 can place any new item117 behaves like able to move existing items to the end118 can move any existing item119 free_space: 104, index: 0120 behaves like able to place a new item at the end121 can place any new item122 behaves like able to move existing items to the end123 can move any existing item124 free_space: 104, index: 1125 behaves like able to place a new item at the end126 can place any new item127 behaves like able to move existing items to the end128 can move any existing item129 free_space: 104, index: 2130 behaves like able to place a new item at the end131 can place any new item132 behaves like able to move existing items to the end133 can move any existing item134 free_space: 104, index: 3135 behaves like able to place a new item at the end136 can place any new item137 behaves like able to move existing items to the end138 can move any existing item139 free_space: 105, index: 0140 behaves like able to place a new item at the end141 can place any new item142 behaves like able to move existing items to the end143 can move any existing item144 free_space: 105, index: 1145 behaves like able to place a new item at the end146 can place any new item147 behaves like able to move existing items to the end148 can move any existing item149 free_space: 105, index: 2150 behaves like able to place a new item at the end151 can place any new item152 behaves like able to move existing items to the end153 can move any existing item154 free_space: 105, index: 3155 behaves like able to place a new item at the end156 can place any new item157 behaves like able to move existing items to the end158 can move any existing item159 #move_to_start160 all positions are taken161 raises an error when placing a new item162 index: 0163 behaves like able to move existing items to the start164 can move any existing item165 index: 1166 behaves like able to move existing items to the start167 can move any existing item168 index: 2169 behaves like able to move existing items to the start170 can move any existing item171 index: 3172 behaves like able to move existing items to the start173 can move any existing item174 index: 4175 behaves like able to move existing items to the start176 can move any existing item177 there are no siblings178 behaves like able to place a new item at the start179 can place any new item180 there is only one sibling181 pos: 101182 behaves like able to place a new item at the start183 can place any new item184 behaves like able to move existing items to the start185 can move any existing item186 pos: 102187 behaves like able to place a new item at the start188 can place any new item189 behaves like able to move existing items to the start190 can move any existing item191 pos: 103192 behaves like able to place a new item at the start193 can place any new item194 behaves like able to move existing items to the start195 can move any existing item196 pos: 104197 behaves like able to place a new item at the start198 can place any new item199 behaves like able to move existing items to the start200 can move any existing item201 pos: 105202 behaves like able to place a new item at the start203 can place any new item204 behaves like able to move existing items to the start205 can move any existing item206 at least one position is free207 free_space: 101, index: 0208 behaves like able to place a new item at the start209 can place any new item210 behaves like able to move existing items to the start211 can move any existing item212 free_space: 101, index: 1213 behaves like able to place a new item at the start214 can place any new item215 behaves like able to move existing items to the start216 can move any existing item217 free_space: 101, index: 2218 behaves like able to place a new item at the start219 can place any new item220 behaves like able to move existing items to the start221 can move any existing item222 free_space: 101, index: 3223 behaves like able to place a new item at the start224 can place any new item225 behaves like able to move existing items to the start226 can move any existing item227 free_space: 102, index: 0228 behaves like able to place a new item at the start229 can place any new item230 behaves like able to move existing items to the start231 can move any existing item232 free_space: 102, index: 1233 behaves like able to place a new item at the start234 can place any new item235 behaves like able to move existing items to the start236 can move any existing item237 free_space: 102, index: 2238 behaves like able to place a new item at the start239 can place any new item240 behaves like able to move existing items to the start241 can move any existing item242 free_space: 102, index: 3243 behaves like able to place a new item at the start244 can place any new item245 behaves like able to move existing items to the start246 can move any existing item247 free_space: 103, index: 0248 behaves like able to place a new item at the start249 can place any new item250 behaves like able to move existing items to the start251 can move any existing item252 free_space: 103, index: 1253 behaves like able to place a new item at the start254 can place any new item255 behaves like able to move existing items to the start256 can move any existing item257 free_space: 103, index: 2258 behaves like able to place a new item at the start259 can place any new item260 behaves like able to move existing items to the start261 can move any existing item262 free_space: 103, index: 3263 behaves like able to place a new item at the start264 can place any new item265 behaves like able to move existing items to the start266 can move any existing item267 free_space: 104, index: 0268 behaves like able to place a new item at the start269 can place any new item270 behaves like able to move existing items to the start271 can move any existing item272 free_space: 104, index: 1273 behaves like able to place a new item at the start274 can place any new item275 behaves like able to move existing items to the start276 can move any existing item277 free_space: 104, index: 2278 behaves like able to place a new item at the start279 can place any new item280 behaves like able to move existing items to the start281 can move any existing item282 free_space: 104, index: 3283 behaves like able to place a new item at the start284 can place any new item285 behaves like able to move existing items to the start286 can move any existing item287 free_space: 105, index: 0288 behaves like able to place a new item at the start289 can place any new item290 behaves like able to move existing items to the start291 can move any existing item292 free_space: 105, index: 1293 behaves like able to place a new item at the start294 can place any new item295 behaves like able to move existing items to the start296 can move any existing item297 free_space: 105, index: 2298 behaves like able to place a new item at the start299 can place any new item300 behaves like able to move existing items to the start301 can move any existing item302 free_space: 105, index: 3303 behaves like able to place a new item at the start304 can place any new item305 behaves like able to move existing items to the start306 can move any existing item307 #move308 all positions are taken309 idx_a: 0, idx_b: 1310 raises an error when placing a new item anywhere311 index: 0312 behaves like able to move an existing item313 can place any item betwen two others314 can place any item after another315 can place any item before another316 index: 1317 behaves like able to move an existing item318 can place any item betwen two others319 can place any item after another320 can place any item before another321 index: 2322 behaves like able to move an existing item323 can place any item betwen two others324 can place any item after another325 can place any item before another326 index: 3327 behaves like able to move an existing item328 can place any item betwen two others329 can place any item after another330 can place any item before another331 index: 4332 behaves like able to move an existing item333 can place any item betwen two others334 can place any item after another335 can place any item before another336 idx_a: 0, idx_b: 2337 raises an error when placing a new item anywhere338 index: 0339 behaves like able to move an existing item340 can place any item betwen two others341 can place any item after another342 can place any item before another343 index: 1344 behaves like able to move an existing item345 can place any item betwen two others346 can place any item after another347 can place any item before another348 index: 2349 behaves like able to move an existing item350 can place any item betwen two others351 can place any item after another352 can place any item before another353 index: 3354 behaves like able to move an existing item355 can place any item betwen two others356 can place any item after another357 can place any item before another358 index: 4359 behaves like able to move an existing item360 can place any item betwen two others361 can place any item after another362 can place any item before another363 idx_a: 0, idx_b: 3364 raises an error when placing a new item anywhere365 index: 0366 behaves like able to move an existing item367 can place any item betwen two others368 can place any item after another369 can place any item before another370 index: 1371 behaves like able to move an existing item372 can place any item betwen two others373 can place any item after another374 can place any item before another375 index: 2376 behaves like able to move an existing item377 can place any item betwen two others378 can place any item after another379 can place any item before another380 index: 3381 behaves like able to move an existing item382 can place any item betwen two others383 can place any item after another384 can place any item before another385 index: 4386 behaves like able to move an existing item387 can place any item betwen two others388 can place any item after another389 can place any item before another390 idx_a: 0, idx_b: 4391 raises an error when placing a new item anywhere392 index: 0393 behaves like able to move an existing item394 can place any item betwen two others395 can place any item after another396 can place any item before another397 index: 1398 behaves like able to move an existing item399 can place any item betwen two others400 can place any item after another401 can place any item before another402 index: 2403 behaves like able to move an existing item404 can place any item betwen two others405 can place any item after another406 can place any item before another407 index: 3408 behaves like able to move an existing item409 can place any item betwen two others410 can place any item after another411 can place any item before another412 index: 4413 behaves like able to move an existing item414 can place any item betwen two others415 can place any item after another416 can place any item before another417 idx_a: 1, idx_b: 2418 raises an error when placing a new item anywhere419 index: 0420 behaves like able to move an existing item421 can place any item betwen two others422 can place any item after another423 can place any item before another424 index: 1425 behaves like able to move an existing item426 can place any item betwen two others427 can place any item after another428 can place any item before another429 index: 2430 behaves like able to move an existing item431 can place any item betwen two others432 can place any item after another433 can place any item before another434 index: 3435 behaves like able to move an existing item436 can place any item betwen two others437 can place any item after another438 can place any item before another439 index: 4440 behaves like able to move an existing item441 can place any item betwen two others442 can place any item after another443 can place any item before another444 idx_a: 1, idx_b: 3445 raises an error when placing a new item anywhere446 index: 0447 behaves like able to move an existing item448 can place any item betwen two others449 can place any item after another450 can place any item before another451 index: 1452 behaves like able to move an existing item453 can place any item betwen two others454 can place any item after another455 can place any item before another456 index: 2457 behaves like able to move an existing item458 can place any item betwen two others459 can place any item after another460 can place any item before another461 index: 3462 behaves like able to move an existing item463 can place any item betwen two others464 can place any item after another465 can place any item before another466 index: 4467 behaves like able to move an existing item468 can place any item betwen two others469 can place any item after another470 can place any item before another471 idx_a: 1, idx_b: 4472 raises an error when placing a new item anywhere473 index: 0474 behaves like able to move an existing item475 can place any item betwen two others476 can place any item after another477 can place any item before another478 index: 1479 behaves like able to move an existing item480 can place any item betwen two others481 can place any item after another482 can place any item before another483 index: 2484 behaves like able to move an existing item485 can place any item betwen two others486 can place any item after another487 can place any item before another488 index: 3489 behaves like able to move an existing item490 can place any item betwen two others491 can place any item after another492 can place any item before another493 index: 4494 behaves like able to move an existing item495 can place any item betwen two others496 can place any item after another497 can place any item before another498 idx_a: 2, idx_b: 3499 raises an error when placing a new item anywhere500 index: 0501 behaves like able to move an existing item502 can place any item betwen two others503 can place any item after another504 can place any item before another505 index: 1506 behaves like able to move an existing item507 can place any item betwen two others508 can place any item after another509 can place any item before another510 index: 2511 behaves like able to move an existing item512 can place any item betwen two others513 can place any item after another514 can place any item before another515 index: 3516 behaves like able to move an existing item517 can place any item betwen two others518 can place any item after another519 can place any item before another520 index: 4521 behaves like able to move an existing item522 can place any item betwen two others523 can place any item after another524 can place any item before another525 idx_a: 2, idx_b: 4526 raises an error when placing a new item anywhere527 index: 0528 behaves like able to move an existing item529 can place any item betwen two others530 can place any item after another531 can place any item before another532 index: 1533 behaves like able to move an existing item534 can place any item betwen two others535 can place any item after another536 can place any item before another537 index: 2538 behaves like able to move an existing item539 can place any item betwen two others540 can place any item after another541 can place any item before another542 index: 3543 behaves like able to move an existing item544 can place any item betwen two others545 can place any item after another546 can place any item before another547 index: 4548 behaves like able to move an existing item549 can place any item betwen two others550 can place any item after another551 can place any item before another552 idx_a: 3, idx_b: 4553 raises an error when placing a new item anywhere554 index: 0555 behaves like able to move an existing item556 can place any item betwen two others557 can place any item after another558 can place any item before another559 index: 1560 behaves like able to move an existing item561 can place any item betwen two others562 can place any item after another563 can place any item before another564 index: 2565 behaves like able to move an existing item566 can place any item betwen two others567 can place any item after another568 can place any item before another569 index: 3570 behaves like able to move an existing item571 can place any item betwen two others572 can place any item after another573 can place any item before another574 index: 4575 behaves like able to move an existing item576 can place any item betwen two others577 can place any item after another578 can place any item before another579 there are no siblings580 raises an ArgumentError when both first and last are nil581 there are a couple of siblings582 pos_movable: 101, pos_a: 102, pos_b: 103583 behaves like able to move a new item584 can place any new item betwen two others585 can place any new item after another586 can place any new item before another587 behaves like able to move an existing item588 can place any item betwen two others589 can place any item after another590 can place any item before another591 pos_movable: 101, pos_a: 102, pos_b: 104592 behaves like able to move a new item593 can place any new item betwen two others594 can place any new item after another595 can place any new item before another596 behaves like able to move an existing item597 can place any item betwen two others598 can place any item after another599 can place any item before another600 pos_movable: 101, pos_a: 102, pos_b: 105601 behaves like able to move a new item602 can place any new item betwen two others603 can place any new item after another604 can place any new item before another605 behaves like able to move an existing item606 can place any item betwen two others607 can place any item after another608 can place any item before another609 pos_movable: 101, pos_a: 103, pos_b: 104610 behaves like able to move a new item611 can place any new item betwen two others612 can place any new item after another613 can place any new item before another614 behaves like able to move an existing item615 can place any item betwen two others616 can place any item after another617 can place any item before another618 pos_movable: 101, pos_a: 103, pos_b: 105619 behaves like able to move a new item620 can place any new item betwen two others621 can place any new item after another622 can place any new item before another623 behaves like able to move an existing item624 can place any item betwen two others625 can place any item after another626 can place any item before another627 pos_movable: 101, pos_a: 104, pos_b: 105628 behaves like able to move a new item629 can place any new item betwen two others630 can place any new item after another631 can place any new item before another632 behaves like able to move an existing item633 can place any item betwen two others634 can place any item after another635 can place any item before another636 pos_movable: 102, pos_a: 101, pos_b: 103637 behaves like able to move a new item638 can place any new item betwen two others639 can place any new item after another640 can place any new item before another641 behaves like able to move an existing item642 can place any item betwen two others643 can place any item after another644 can place any item before another645 pos_movable: 102, pos_a: 101, pos_b: 104646 behaves like able to move a new item647 can place any new item betwen two others648 can place any new item after another649 can place any new item before another650 behaves like able to move an existing item651 can place any item betwen two others652 can place any item after another653 can place any item before another654 pos_movable: 102, pos_a: 101, pos_b: 105655 behaves like able to move a new item656 can place any new item betwen two others657 can place any new item after another658 can place any new item before another659 behaves like able to move an existing item660 can place any item betwen two others661 can place any item after another662 can place any item before another663 pos_movable: 102, pos_a: 103, pos_b: 104664 behaves like able to move a new item665 can place any new item betwen two others666 can place any new item after another667 can place any new item before another668 behaves like able to move an existing item669 can place any item betwen two others670 can place any item after another671 can place any item before another672 pos_movable: 102, pos_a: 103, pos_b: 105673 behaves like able to move a new item674 can place any new item betwen two others675 can place any new item after another676 can place any new item before another677 behaves like able to move an existing item678 can place any item betwen two others679 can place any item after another680 can place any item before another681 pos_movable: 102, pos_a: 104, pos_b: 105682 behaves like able to move a new item683 can place any new item betwen two others684 can place any new item after another685 can place any new item before another686 behaves like able to move an existing item687 can place any item betwen two others688 can place any item after another689 can place any item before another690 pos_movable: 103, pos_a: 101, pos_b: 102691 behaves like able to move a new item692 can place any new item betwen two others693 can place any new item after another694 can place any new item before another695 behaves like able to move an existing item696 can place any item betwen two others697 can place any item after another698 can place any item before another699 pos_movable: 103, pos_a: 101, pos_b: 104700 behaves like able to move a new item701 can place any new item betwen two others702 can place any new item after another703 can place any new item before another704 behaves like able to move an existing item705 can place any item betwen two others706 can place any item after another707 can place any item before another708 pos_movable: 103, pos_a: 101, pos_b: 105709 behaves like able to move a new item710 can place any new item betwen two others711 can place any new item after another712 can place any new item before another713 behaves like able to move an existing item714 can place any item betwen two others715 can place any item after another716 can place any item before another717 pos_movable: 103, pos_a: 102, pos_b: 104718 behaves like able to move a new item719 can place any new item betwen two others720 can place any new item after another721 can place any new item before another722 behaves like able to move an existing item723 can place any item betwen two others724 can place any item after another725 can place any item before another726 pos_movable: 103, pos_a: 102, pos_b: 105727 behaves like able to move a new item728 can place any new item betwen two others729 can place any new item after another730 can place any new item before another731 behaves like able to move an existing item732 can place any item betwen two others733 can place any item after another734 can place any item before another735 pos_movable: 103, pos_a: 104, pos_b: 105736 behaves like able to move a new item737 can place any new item betwen two others738 can place any new item after another739 can place any new item before another740 behaves like able to move an existing item741 can place any item betwen two others742 can place any item after another743 can place any item before another744 pos_movable: 104, pos_a: 101, pos_b: 102745 behaves like able to move a new item746 can place any new item betwen two others747 can place any new item after another748 can place any new item before another749 behaves like able to move an existing item750 can place any item betwen two others751 can place any item after another752 can place any item before another753 pos_movable: 104, pos_a: 101, pos_b: 103754 behaves like able to move a new item755 can place any new item betwen two others756 can place any new item after another757 can place any new item before another758 behaves like able to move an existing item759 can place any item betwen two others760 can place any item after another761 can place any item before another762 pos_movable: 104, pos_a: 101, pos_b: 105763 behaves like able to move a new item764 can place any new item betwen two others765 can place any new item after another766 can place any new item before another767 behaves like able to move an existing item768 can place any item betwen two others769 can place any item after another770 can place any item before another771 pos_movable: 104, pos_a: 102, pos_b: 103772 behaves like able to move a new item773 can place any new item betwen two others774 can place any new item after another775 can place any new item before another776 behaves like able to move an existing item777 can place any item betwen two others778 can place any item after another779 can place any item before another780 pos_movable: 104, pos_a: 102, pos_b: 105781 behaves like able to move a new item782 can place any new item betwen two others783 can place any new item after another784 can place any new item before another785 behaves like able to move an existing item786 can place any item betwen two others787 can place any item after another788 can place any item before another789 pos_movable: 104, pos_a: 103, pos_b: 105790 behaves like able to move a new item791 can place any new item betwen two others792 can place any new item after another793 can place any new item before another794 behaves like able to move an existing item795 can place any item betwen two others796 can place any item after another797 can place any item before another798 pos_movable: 105, pos_a: 101, pos_b: 102799 behaves like able to move a new item800 can place any new item betwen two others801 can place any new item after another802 can place any new item before another803 behaves like able to move an existing item804 can place any item betwen two others805 can place any item after another806 can place any item before another807 pos_movable: 105, pos_a: 101, pos_b: 103808 behaves like able to move a new item809 can place any new item betwen two others810 can place any new item after another811 can place any new item before another812 behaves like able to move an existing item813 can place any item betwen two others814 can place any item after another815 can place any item before another816 pos_movable: 105, pos_a: 101, pos_b: 104817 behaves like able to move a new item818 can place any new item betwen two others819 can place any new item after another820 can place any new item before another821 behaves like able to move an existing item822 can place any item betwen two others823 can place any item after another824 can place any item before another825 pos_movable: 105, pos_a: 102, pos_b: 103826 behaves like able to move a new item827 can place any new item betwen two others828 can place any new item after another829 can place any new item before another830 behaves like able to move an existing item831 can place any item betwen two others832 can place any item after another833 can place any item before another834 pos_movable: 105, pos_a: 102, pos_b: 104835 behaves like able to move a new item836 can place any new item betwen two others837 can place any new item after another838 can place any new item before another839 behaves like able to move an existing item840 can place any item betwen two others841 can place any item after another842 can place any item before another843 pos_movable: 105, pos_a: 103, pos_b: 104844 behaves like able to move a new item845 can place any new item betwen two others846 can place any new item after another847 can place any new item before another848 behaves like able to move an existing item849 can place any item betwen two others850 can place any item after another851 can place any item before another852 at least one position is free853 free_space: 101, index: 3, pos_a: 2, pos_b: 3854 behaves like able to move a new item855 can place any new item betwen two others856 can place any new item after another857 can place any new item before another858 behaves like able to move an existing item859 can place any item betwen two others860 can place any item after another861 can place any item before another862 free_space: 101, index: 3, pos_a: 1, pos_b: 3863 behaves like able to move a new item864 can place any new item betwen two others865 can place any new item after another866 can place any new item before another867 behaves like able to move an existing item868 can place any item betwen two others869 can place any item after another870 can place any item before another871 free_space: 101, index: 3, pos_a: 1, pos_b: 2872 behaves like able to move a new item873 can place any new item betwen two others874 can place any new item after another875 can place any new item before another876 behaves like able to move an existing item877 can place any item betwen two others878 can place any item after another879 can place any item before another880 free_space: 101, index: 3, pos_a: 0, pos_b: 3881 behaves like able to move a new item882 can place any new item betwen two others883 can place any new item after another884 can place any new item before another885 behaves like able to move an existing item886 can place any item betwen two others887 can place any item after another888 can place any item before another889 free_space: 101, index: 3, pos_a: 0, pos_b: 2890 behaves like able to move a new item891 can place any new item betwen two others892 can place any new item after another893 can place any new item before another894 behaves like able to move an existing item895 can place any item betwen two others896 can place any item after another897 can place any item before another898 free_space: 101, index: 3, pos_a: 0, pos_b: 1899 behaves like able to move a new item900 can place any new item betwen two others901 can place any new item after another902 can place any new item before another903 behaves like able to move an existing item904 can place any item betwen two others905 can place any item after another906 can place any item before another907 free_space: 101, index: 2, pos_a: 2, pos_b: 3908 behaves like able to move a new item909 can place any new item betwen two others910 can place any new item after another911 can place any new item before another912 behaves like able to move an existing item913 can place any item betwen two others914 can place any item after another915 can place any item before another916 free_space: 101, index: 2, pos_a: 1, pos_b: 3917 behaves like able to move a new item918 can place any new item betwen two others919 can place any new item after another920 can place any new item before another921 behaves like able to move an existing item922 can place any item betwen two others923 can place any item after another924 can place any item before another925 free_space: 101, index: 2, pos_a: 1, pos_b: 2926 behaves like able to move a new item927 can place any new item betwen two others928 can place any new item after another929 can place any new item before another930 behaves like able to move an existing item931 can place any item betwen two others932 can place any item after another933 can place any item before another934 free_space: 101, index: 2, pos_a: 0, pos_b: 3935 behaves like able to move a new item936 can place any new item betwen two others937 can place any new item after another938 can place any new item before another939 behaves like able to move an existing item940 can place any item betwen two others941 can place any item after another942 can place any item before another943 free_space: 101, index: 2, pos_a: 0, pos_b: 2944 behaves like able to move a new item945 can place any new item betwen two others946 can place any new item after another947 can place any new item before another948 behaves like able to move an existing item949 can place any item betwen two others950 can place any item after another951 can place any item before another952 free_space: 101, index: 2, pos_a: 0, pos_b: 1953 behaves like able to move a new item954 can place any new item betwen two others955 can place any new item after another956 can place any new item before another957 behaves like able to move an existing item958 can place any item betwen two others959 can place any item after another960 can place any item before another961 free_space: 101, index: 1, pos_a: 2, pos_b: 3962 behaves like able to move a new item963 can place any new item betwen two others964 can place any new item after another965 can place any new item before another966 behaves like able to move an existing item967 can place any item betwen two others968 can place any item after another969 can place any item before another970 free_space: 101, index: 1, pos_a: 1, pos_b: 3971 behaves like able to move a new item972 can place any new item betwen two others973 can place any new item after another974 can place any new item before another975 behaves like able to move an existing item976 can place any item betwen two others977 can place any item after another978 can place any item before another979 free_space: 101, index: 1, pos_a: 1, pos_b: 2980 behaves like able to move a new item981 can place any new item betwen two others982 can place any new item after another983 can place any new item before another984 behaves like able to move an existing item985 can place any item betwen two others986 can place any item after another987 can place any item before another988 free_space: 101, index: 1, pos_a: 0, pos_b: 3989 behaves like able to move a new item990 can place any new item betwen two others991 can place any new item after another992 can place any new item before another993 behaves like able to move an existing item994 can place any item betwen two others995 can place any item after another996 can place any item before another997 free_space: 101, index: 1, pos_a: 0, pos_b: 2998 behaves like able to move a new item999 can place any new item betwen two others1000 can place any new item after another1001 can place any new item before another1002 behaves like able to move an existing item1003 can place any item betwen two others1004 can place any item after another1005 can place any item before another1006 free_space: 101, index: 1, pos_a: 0, pos_b: 11007 behaves like able to move a new item1008 can place any new item betwen two others1009 can place any new item after another1010 can place any new item before another1011 behaves like able to move an existing item1012 can place any item betwen two others1013 can place any item after another1014 can place any item before another1015 free_space: 101, index: 0, pos_a: 2, pos_b: 31016 behaves like able to move a new item1017 can place any new item betwen two others1018 can place any new item after another1019 can place any new item before another1020 behaves like able to move an existing item1021 can place any item betwen two others1022 can place any item after another1023 can place any item before another1024 free_space: 101, index: 0, pos_a: 1, pos_b: 31025 behaves like able to move a new item1026 can place any new item betwen two others1027 can place any new item after another1028 can place any new item before another1029 behaves like able to move an existing item1030 can place any item betwen two others1031 can place any item after another1032 can place any item before another1033 free_space: 101, index: 0, pos_a: 1, pos_b: 21034 behaves like able to move a new item1035 can place any new item betwen two others1036 can place any new item after another1037 can place any new item before another1038 behaves like able to move an existing item1039 can place any item betwen two others1040 can place any item after another1041 can place any item before another1042 free_space: 101, index: 0, pos_a: 0, pos_b: 31043 behaves like able to move a new item1044 can place any new item betwen two others1045 can place any new item after another1046 can place any new item before another1047 behaves like able to move an existing item1048 can place any item betwen two others1049 can place any item after another1050 can place any item before another1051 free_space: 101, index: 0, pos_a: 0, pos_b: 21052 behaves like able to move a new item1053 can place any new item betwen two others1054 can place any new item after another1055 can place any new item before another1056 behaves like able to move an existing item1057 can place any item betwen two others1058 can place any item after another1059 can place any item before another1060 free_space: 101, index: 0, pos_a: 0, pos_b: 11061 behaves like able to move a new item1062 can place any new item betwen two others1063 can place any new item after another1064 can place any new item before another1065 behaves like able to move an existing item1066 can place any item betwen two others1067 can place any item after another1068 can place any item before another1069 free_space: 102, index: 3, pos_a: 2, pos_b: 31070 behaves like able to move a new item1071 can place any new item betwen two others1072 can place any new item after another1073 can place any new item before another1074 behaves like able to move an existing item1075 can place any item betwen two others1076 can place any item after another1077 can place any item before another1078 free_space: 102, index: 3, pos_a: 1, pos_b: 31079 behaves like able to move a new item1080 can place any new item betwen two others1081 can place any new item after another1082 can place any new item before another1083 behaves like able to move an existing item1084 can place any item betwen two others1085 can place any item after another1086 can place any item before another1087 free_space: 102, index: 3, pos_a: 1, pos_b: 21088 behaves like able to move a new item1089 can place any new item betwen two others1090 can place any new item after another1091 can place any new item before another1092 behaves like able to move an existing item1093 can place any item betwen two others1094 can place any item after another1095 can place any item before another1096 free_space: 102, index: 3, pos_a: 0, pos_b: 31097 behaves like able to move a new item1098 can place any new item betwen two others1099 can place any new item after another1100 can place any new item before another1101 behaves like able to move an existing item1102 can place any item betwen two others1103 can place any item after another1104 can place any item before another1105 free_space: 102, index: 3, pos_a: 0, pos_b: 21106 behaves like able to move a new item1107 can place any new item betwen two others1108 can place any new item after another1109 can place any new item before another1110 behaves like able to move an existing item1111 can place any item betwen two others1112 can place any item after another1113 can place any item before another1114 free_space: 102, index: 3, pos_a: 0, pos_b: 11115 behaves like able to move a new item1116 can place any new item betwen two others1117 can place any new item after another1118 can place any new item before another1119 behaves like able to move an existing item1120 can place any item betwen two others1121 can place any item after another1122 can place any item before another1123 free_space: 102, index: 2, pos_a: 2, pos_b: 31124 behaves like able to move a new item1125 can place any new item betwen two others1126 can place any new item after another1127 can place any new item before another1128 behaves like able to move an existing item1129 can place any item betwen two others1130 can place any item after another1131 can place any item before another1132 free_space: 102, index: 2, pos_a: 1, pos_b: 31133 behaves like able to move a new item1134 can place any new item betwen two others1135 can place any new item after another1136 can place any new item before another1137 behaves like able to move an existing item1138 can place any item betwen two others1139 can place any item after another1140 can place any item before another1141 free_space: 102, index: 2, pos_a: 1, pos_b: 21142 behaves like able to move a new item1143 can place any new item betwen two others1144 can place any new item after another1145 can place any new item before another1146 behaves like able to move an existing item1147 can place any item betwen two others1148 can place any item after another1149 can place any item before another1150 free_space: 102, index: 2, pos_a: 0, pos_b: 31151 behaves like able to move a new item1152 can place any new item betwen two others1153 can place any new item after another1154 can place any new item before another1155 behaves like able to move an existing item1156 can place any item betwen two others1157 can place any item after another1158 can place any item before another1159 free_space: 102, index: 2, pos_a: 0, pos_b: 21160 behaves like able to move a new item1161 can place any new item betwen two others1162 can place any new item after another1163 can place any new item before another1164 behaves like able to move an existing item1165 can place any item betwen two others1166 can place any item after another1167 can place any item before another1168 free_space: 102, index: 2, pos_a: 0, pos_b: 11169 behaves like able to move a new item1170 can place any new item betwen two others1171 can place any new item after another1172 can place any new item before another1173 behaves like able to move an existing item1174 can place any item betwen two others1175 can place any item after another1176 can place any item before another1177 free_space: 102, index: 1, pos_a: 2, pos_b: 31178 behaves like able to move a new item1179 can place any new item betwen two others1180 can place any new item after another1181 can place any new item before another1182 behaves like able to move an existing item1183 can place any item betwen two others1184 can place any item after another1185 can place any item before another1186 free_space: 102, index: 1, pos_a: 1, pos_b: 31187 behaves like able to move a new item1188 can place any new item betwen two others1189 can place any new item after another1190 can place any new item before another1191 behaves like able to move an existing item1192 can place any item betwen two others1193 can place any item after another1194 can place any item before another1195 free_space: 102, index: 1, pos_a: 1, pos_b: 21196 behaves like able to move a new item1197 can place any new item betwen two others1198 can place any new item after another1199 can place any new item before another1200 behaves like able to move an existing item1201 can place any item betwen two others1202 can place any item after another1203 can place any item before another1204 free_space: 102, index: 1, pos_a: 0, pos_b: 31205 behaves like able to move a new item1206 can place any new item betwen two others1207 can place any new item after another1208 can place any new item before another1209 behaves like able to move an existing item1210 can place any item betwen two others1211 can place any item after another1212 can place any item before another1213 free_space: 102, index: 1, pos_a: 0, pos_b: 21214 behaves like able to move a new item1215 can place any new item betwen two others1216 can place any new item after another1217 can place any new item before another1218 behaves like able to move an existing item1219 can place any item betwen two others1220 can place any item after another1221 can place any item before another1222 free_space: 102, index: 1, pos_a: 0, pos_b: 11223 behaves like able to move a new item1224 can place any new item betwen two others1225 can place any new item after another1226 can place any new item before another1227 behaves like able to move an existing item1228 can place any item betwen two others1229 can place any item after another1230 can place any item before another1231 free_space: 102, index: 0, pos_a: 2, pos_b: 31232 behaves like able to move a new item1233 can place any new item betwen two others1234 can place any new item after another1235 can place any new item before another1236 behaves like able to move an existing item1237 can place any item betwen two others1238 can place any item after another1239 can place any item before another1240 free_space: 102, index: 0, pos_a: 1, pos_b: 31241 behaves like able to move a new item1242 can place any new item betwen two others1243 can place any new item after another1244 can place any new item before another1245 behaves like able to move an existing item1246 can place any item betwen two others1247 can place any item after another1248 can place any item before another1249 free_space: 102, index: 0, pos_a: 1, pos_b: 21250 behaves like able to move a new item1251 can place any new item betwen two others1252 can place any new item after another1253 can place any new item before another1254 behaves like able to move an existing item1255 can place any item betwen two others1256 can place any item after another1257 can place any item before another1258 free_space: 102, index: 0, pos_a: 0, pos_b: 31259 behaves like able to move a new item1260 can place any new item betwen two others1261 can place any new item after another1262 can place any new item before another1263 behaves like able to move an existing item1264 can place any item betwen two others1265 can place any item after another1266 can place any item before another1267 free_space: 102, index: 0, pos_a: 0, pos_b: 21268 behaves like able to move a new item1269 can place any new item betwen two others1270 can place any new item after another1271 can place any new item before another1272 behaves like able to move an existing item1273 can place any item betwen two others1274 can place any item after another1275 can place any item before another1276 free_space: 102, index: 0, pos_a: 0, pos_b: 11277 behaves like able to move a new item1278 can place any new item betwen two others1279 can place any new item after another1280 can place any new item before another1281 behaves like able to move an existing item1282 can place any item betwen two others1283 can place any item after another1284 can place any item before another1285 free_space: 103, index: 3, pos_a: 2, pos_b: 31286 behaves like able to move a new item1287 can place any new item betwen two others1288 can place any new item after another1289 can place any new item before another1290 behaves like able to move an existing item1291 can place any item betwen two others1292 can place any item after another1293 can place any item before another1294 free_space: 103, index: 3, pos_a: 1, pos_b: 31295 behaves like able to move a new item1296 can place any new item betwen two others1297 can place any new item after another1298 can place any new item before another1299 behaves like able to move an existing item1300 can place any item betwen two others1301 can place any item after another1302 can place any item before another1303 free_space: 103, index: 3, pos_a: 1, pos_b: 21304 behaves like able to move a new item1305 can place any new item betwen two others1306 can place any new item after another1307 can place any new item before another1308 behaves like able to move an existing item1309 can place any item betwen two others1310 can place any item after another1311 can place any item before another1312 free_space: 103, index: 3, pos_a: 0, pos_b: 31313 behaves like able to move a new item1314 can place any new item betwen two others1315 can place any new item after another1316 can place any new item before another1317 behaves like able to move an existing item1318 can place any item betwen two others1319 can place any item after another1320 can place any item before another1321 free_space: 103, index: 3, pos_a: 0, pos_b: 21322 behaves like able to move a new item1323 can place any new item betwen two others1324 can place any new item after another1325 can place any new item before another1326 behaves like able to move an existing item1327 can place any item betwen two others1328 can place any item after another1329 can place any item before another1330 free_space: 103, index: 3, pos_a: 0, pos_b: 11331 behaves like able to move a new item1332 can place any new item betwen two others1333 can place any new item after another1334 can place any new item before another1335 behaves like able to move an existing item1336 can place any item betwen two others1337 can place any item after another1338 can place any item before another1339 free_space: 103, index: 2, pos_a: 2, pos_b: 31340 behaves like able to move a new item1341 can place any new item betwen two others1342 can place any new item after another1343 can place any new item before another1344 behaves like able to move an existing item1345 can place any item betwen two others1346 can place any item after another1347 can place any item before another1348 free_space: 103, index: 2, pos_a: 1, pos_b: 31349 behaves like able to move a new item1350 can place any new item betwen two others1351 can place any new item after another1352 can place any new item before another1353 behaves like able to move an existing item1354 can place any item betwen two others1355 can place any item after another1356 can place any item before another1357 free_space: 103, index: 2, pos_a: 1, pos_b: 21358 behaves like able to move a new item1359 can place any new item betwen two others1360 can place any new item after another1361 can place any new item before another1362 behaves like able to move an existing item1363 can place any item betwen two others1364 can place any item after another1365 can place any item before another1366 free_space: 103, index: 2, pos_a: 0, pos_b: 31367 behaves like able to move a new item1368 can place any new item betwen two others1369 can place any new item after another1370 can place any new item before another1371 behaves like able to move an existing item1372 can place any item betwen two others1373 can place any item after another1374 can place any item before another1375 free_space: 103, index: 2, pos_a: 0, pos_b: 21376 behaves like able to move a new item1377 can place any new item betwen two others1378 can place any new item after another1379 can place any new item before another1380 behaves like able to move an existing item1381 can place any item betwen two others1382 can place any item after another1383 can place any item before another1384 free_space: 103, index: 2, pos_a: 0, pos_b: 11385 behaves like able to move a new item1386 can place any new item betwen two others1387 can place any new item after another1388 can place any new item before another1389 behaves like able to move an existing item1390 can place any item betwen two others1391 can place any item after another1392 can place any item before another1393 free_space: 103, index: 1, pos_a: 2, pos_b: 31394 behaves like able to move a new item1395 can place any new item betwen two others1396 can place any new item after another1397 can place any new item before another1398 behaves like able to move an existing item1399 can place any item betwen two others1400 can place any item after another1401 can place any item before another1402 free_space: 103, index: 1, pos_a: 1, pos_b: 31403 behaves like able to move a new item1404 can place any new item betwen two others1405 can place any new item after another1406 can place any new item before another1407 behaves like able to move an existing item1408 can place any item betwen two others1409 can place any item after another1410 can place any item before another1411 free_space: 103, index: 1, pos_a: 1, pos_b: 21412 behaves like able to move a new item1413 can place any new item betwen two others1414 can place any new item after another1415 can place any new item before another1416 behaves like able to move an existing item1417 can place any item betwen two others1418 can place any item after another1419 can place any item before another1420 free_space: 103, index: 1, pos_a: 0, pos_b: 31421 behaves like able to move a new item1422 can place any new item betwen two others1423 can place any new item after another1424 can place any new item before another1425 behaves like able to move an existing item1426 can place any item betwen two others1427 can place any item after another1428 can place any item before another1429 free_space: 103, index: 1, pos_a: 0, pos_b: 21430 behaves like able to move a new item1431 can place any new item betwen two others1432 can place any new item after another1433 can place any new item before another1434 behaves like able to move an existing item1435 can place any item betwen two others1436 can place any item after another1437 can place any item before another1438 free_space: 103, index: 1, pos_a: 0, pos_b: 11439 behaves like able to move a new item1440 can place any new item betwen two others1441 can place any new item after another1442 can place any new item before another1443 behaves like able to move an existing item1444 can place any item betwen two others1445 can place any item after another1446 can place any item before another1447 free_space: 103, index: 0, pos_a: 2, pos_b: 31448 behaves like able to move a new item1449 can place any new item betwen two others1450 can place any new item after another1451 can place any new item before another1452 behaves like able to move an existing item1453 can place any item betwen two others1454 can place any item after another1455 can place any item before another1456 free_space: 103, index: 0, pos_a: 1, pos_b: 31457 behaves like able to move a new item1458 can place any new item betwen two others1459 can place any new item after another1460 can place any new item before another1461 behaves like able to move an existing item1462 can place any item betwen two others1463 can place any item after another1464 can place any item before another1465 free_space: 103, index: 0, pos_a: 1, pos_b: 21466 behaves like able to move a new item1467 can place any new item betwen two others1468 can place any new item after another1469 can place any new item before another1470 behaves like able to move an existing item1471 can place any item betwen two others1472 can place any item after another1473 can place any item before another1474 free_space: 103, index: 0, pos_a: 0, pos_b: 31475 behaves like able to move a new item1476 can place any new item betwen two others1477 can place any new item after another1478 can place any new item before another1479 behaves like able to move an existing item1480 can place any item betwen two others1481 can place any item after another1482 can place any item before another1483 free_space: 103, index: 0, pos_a: 0, pos_b: 21484 behaves like able to move a new item1485 can place any new item betwen two others1486 can place any new item after another1487 can place any new item before another1488 behaves like able to move an existing item1489 can place any item betwen two others1490 can place any item after another1491 can place any item before another1492 free_space: 103, index: 0, pos_a: 0, pos_b: 11493 behaves like able to move a new item1494 can place any new item betwen two others1495 can place any new item after another1496 can place any new item before another1497 behaves like able to move an existing item1498 can place any item betwen two others1499 can place any item after another1500 can place any item before another1501 free_space: 104, index: 3, pos_a: 2, pos_b: 31502 behaves like able to move a new item1503 can place any new item betwen two others1504 can place any new item after another1505 can place any new item before another1506 behaves like able to move an existing item1507 can place any item betwen two others1508 can place any item after another1509 can place any item before another1510 free_space: 104, index: 3, pos_a: 1, pos_b: 31511 behaves like able to move a new item1512 can place any new item betwen two others1513 can place any new item after another1514 can place any new item before another1515 behaves like able to move an existing item1516 can place any item betwen two others1517 can place any item after another1518 can place any item before another1519 free_space: 104, index: 3, pos_a: 1, pos_b: 21520 behaves like able to move a new item1521 can place any new item betwen two others1522 can place any new item after another1523 can place any new item before another1524 behaves like able to move an existing item1525 can place any item betwen two others1526 can place any item after another1527 can place any item before another1528 free_space: 104, index: 3, pos_a: 0, pos_b: 31529 behaves like able to move a new item1530 can place any new item betwen two others1531 can place any new item after another1532 can place any new item before another1533 behaves like able to move an existing item1534 can place any item betwen two others1535 can place any item after another1536 can place any item before another1537 free_space: 104, index: 3, pos_a: 0, pos_b: 21538 behaves like able to move a new item1539 can place any new item betwen two others1540 can place any new item after another1541 can place any new item before another1542 behaves like able to move an existing item1543 can place any item betwen two others1544 can place any item after another1545 can place any item before another1546 free_space: 104, index: 3, pos_a: 0, pos_b: 11547 behaves like able to move a new item1548 can place any new item betwen two others1549 can place any new item after another1550 can place any new item before another1551 behaves like able to move an existing item1552 can place any item betwen two others1553 can place any item after another1554 can place any item before another1555 free_space: 104, index: 2, pos_a: 2, pos_b: 31556 behaves like able to move a new item1557 can place any new item betwen two others1558 can place any new item after another1559 can place any new item before another1560 behaves like able to move an existing item1561 can place any item betwen two others1562 can place any item after another1563 can place any item before another1564 free_space: 104, index: 2, pos_a: 1, pos_b: 31565 behaves like able to move a new item1566 can place any new item betwen two others1567 can place any new item after another1568 can place any new item before another1569 behaves like able to move an existing item1570 can place any item betwen two others1571 can place any item after another1572 can place any item before another1573 free_space: 104, index: 2, pos_a: 1, pos_b: 21574 behaves like able to move a new item1575 can place any new item betwen two others1576 can place any new item after another1577 can place any new item before another1578 behaves like able to move an existing item1579 can place any item betwen two others1580 can place any item after another1581 can place any item before another1582 free_space: 104, index: 2, pos_a: 0, pos_b: 31583 behaves like able to move a new item1584 can place any new item betwen two others1585 can place any new item after another1586 can place any new item before another1587 behaves like able to move an existing item1588 can place any item betwen two others1589 can place any item after another1590 can place any item before another1591 free_space: 104, index: 2, pos_a: 0, pos_b: 21592 behaves like able to move a new item1593 can place any new item betwen two others1594 can place any new item after another1595 can place any new item before another1596 behaves like able to move an existing item1597 can place any item betwen two others1598 can place any item after another1599 can place any item before another1600 free_space: 104, index: 2, pos_a: 0, pos_b: 11601 behaves like able to move a new item1602 can place any new item betwen two others1603 can place any new item after another1604 can place any new item before another1605 behaves like able to move an existing item1606 can place any item betwen two others1607 can place any item after another1608 can place any item before another1609 free_space: 104, index: 1, pos_a: 2, pos_b: 31610 behaves like able to move a new item1611 can place any new item betwen two others1612 can place any new item after another1613 can place any new item before another1614 behaves like able to move an existing item1615 can place any item betwen two others1616 can place any item after another1617 can place any item before another1618 free_space: 104, index: 1, pos_a: 1, pos_b: 31619 behaves like able to move a new item1620 can place any new item betwen two others1621 can place any new item after another1622 can place any new item before another1623 behaves like able to move an existing item1624 can place any item betwen two others1625 can place any item after another1626 can place any item before another1627 free_space: 104, index: 1, pos_a: 1, pos_b: 21628 behaves like able to move a new item1629 can place any new item betwen two others1630 can place any new item after another1631 can place any new item before another1632 behaves like able to move an existing item1633 can place any item betwen two others1634 can place any item after another1635 can place any item before another1636 free_space: 104, index: 1, pos_a: 0, pos_b: 31637 behaves like able to move a new item1638 can place any new item betwen two others1639 can place any new item after another1640 can place any new item before another1641 behaves like able to move an existing item1642 can place any item betwen two others1643 can place any item after another1644 can place any item before another1645 free_space: 104, index: 1, pos_a: 0, pos_b: 21646 behaves like able to move a new item1647 can place any new item betwen two others1648 can place any new item after another1649 can place any new item before another1650 behaves like able to move an existing item1651 can place any item betwen two others1652 can place any item after another1653 can place any item before another1654 free_space: 104, index: 1, pos_a: 0, pos_b: 11655 behaves like able to move a new item1656 can place any new item betwen two others1657 can place any new item after another1658 can place any new item before another1659 behaves like able to move an existing item1660 can place any item betwen two others1661 can place any item after another1662 can place any item before another1663 free_space: 104, index: 0, pos_a: 2, pos_b: 31664 behaves like able to move a new item1665 can place any new item betwen two others1666 can place any new item after another1667 can place any new item before another1668 behaves like able to move an existing item1669 can place any item betwen two others1670 can place any item after another1671 can place any item before another1672 free_space: 104, index: 0, pos_a: 1, pos_b: 31673 behaves like able to move a new item1674 can place any new item betwen two others1675 can place any new item after another1676 can place any new item before another1677 behaves like able to move an existing item1678 can place any item betwen two others1679 can place any item after another1680 can place any item before another1681 free_space: 104, index: 0, pos_a: 1, pos_b: 21682 behaves like able to move a new item1683 can place any new item betwen two others1684 can place any new item after another1685 can place any new item before another1686 behaves like able to move an existing item1687 can place any item betwen two others1688 can place any item after another1689 can place any item before another1690 free_space: 104, index: 0, pos_a: 0, pos_b: 31691 behaves like able to move a new item1692 can place any new item betwen two others1693 can place any new item after another1694 can place any new item before another1695 behaves like able to move an existing item1696 can place any item betwen two others1697 can place any item after another1698 can place any item before another1699 free_space: 104, index: 0, pos_a: 0, pos_b: 21700 behaves like able to move a new item1701 can place any new item betwen two others1702 can place any new item after another1703 can place any new item before another1704 behaves like able to move an existing item1705 can place any item betwen two others1706 can place any item after another1707 can place any item before another1708 free_space: 104, index: 0, pos_a: 0, pos_b: 11709 behaves like able to move a new item1710 can place any new item betwen two others1711 can place any new item after another1712 can place any new item before another1713 behaves like able to move an existing item1714 can place any item betwen two others1715 can place any item after another1716 can place any item before another1717 free_space: 105, index: 3, pos_a: 2, pos_b: 31718 behaves like able to move a new item1719 can place any new item betwen two others1720 can place any new item after another1721 can place any new item before another1722 behaves like able to move an existing item1723 can place any item betwen two others1724 can place any item after another1725 can place any item before another1726 free_space: 105, index: 3, pos_a: 1, pos_b: 31727 behaves like able to move a new item1728 can place any new item betwen two others1729 can place any new item after another1730 can place any new item before another1731 behaves like able to move an existing item1732 can place any item betwen two others1733 can place any item after another1734 can place any item before another1735 free_space: 105, index: 3, pos_a: 1, pos_b: 21736 behaves like able to move a new item1737 can place any new item betwen two others1738 can place any new item after another1739 can place any new item before another1740 behaves like able to move an existing item1741 can place any item betwen two others1742 can place any item after another1743 can place any item before another1744 free_space: 105, index: 3, pos_a: 0, pos_b: 31745 behaves like able to move a new item1746 can place any new item betwen two others1747 can place any new item after another1748 can place any new item before another1749 behaves like able to move an existing item1750 can place any item betwen two others1751 can place any item after another1752 can place any item before another1753 free_space: 105, index: 3, pos_a: 0, pos_b: 21754 behaves like able to move a new item1755 can place any new item betwen two others1756 can place any new item after another1757 can place any new item before another1758 behaves like able to move an existing item1759 can place any item betwen two others1760 can place any item after another1761 can place any item before another1762 free_space: 105, index: 3, pos_a: 0, pos_b: 11763 behaves like able to move a new item1764 can place any new item betwen two others1765 can place any new item after another1766 can place any new item before another1767 behaves like able to move an existing item1768 can place any item betwen two others1769 can place any item after another1770 can place any item before another1771 free_space: 105, index: 2, pos_a: 2, pos_b: 31772 behaves like able to move a new item1773 can place any new item betwen two others1774 can place any new item after another1775 can place any new item before another1776 behaves like able to move an existing item1777 can place any item betwen two others1778 can place any item after another1779 can place any item before another1780 free_space: 105, index: 2, pos_a: 1, pos_b: 31781 behaves like able to move a new item1782 can place any new item betwen two others1783 can place any new item after another1784 can place any new item before another1785 behaves like able to move an existing item1786 can place any item betwen two others1787 can place any item after another1788 can place any item before another1789 free_space: 105, index: 2, pos_a: 1, pos_b: 21790 behaves like able to move a new item1791 can place any new item betwen two others1792 can place any new item after another1793 can place any new item before another1794 behaves like able to move an existing item1795 can place any item betwen two others1796 can place any item after another1797 can place any item before another1798 free_space: 105, index: 2, pos_a: 0, pos_b: 31799 behaves like able to move a new item1800 can place any new item betwen two others1801 can place any new item after another1802 can place any new item before another1803 behaves like able to move an existing item1804 can place any item betwen two others1805 can place any item after another1806 can place any item before another1807 free_space: 105, index: 2, pos_a: 0, pos_b: 21808 behaves like able to move a new item1809 can place any new item betwen two others1810 can place any new item after another1811 can place any new item before another1812 behaves like able to move an existing item1813 can place any item betwen two others1814 can place any item after another1815 can place any item before another1816 free_space: 105, index: 2, pos_a: 0, pos_b: 11817 behaves like able to move a new item1818 can place any new item betwen two others1819 can place any new item after another1820 can place any new item before another1821 behaves like able to move an existing item1822 can place any item betwen two others1823 can place any item after another1824 can place any item before another1825 free_space: 105, index: 1, pos_a: 2, pos_b: 31826 behaves like able to move a new item1827 can place any new item betwen two others1828 can place any new item after another1829 can place any new item before another1830 behaves like able to move an existing item1831 can place any item betwen two others1832 can place any item after another1833 can place any item before another1834 free_space: 105, index: 1, pos_a: 1, pos_b: 31835 behaves like able to move a new item1836 can place any new item betwen two others1837 can place any new item after another1838 can place any new item before another1839 behaves like able to move an existing item1840 can place any item betwen two others1841 can place any item after another1842 can place any item before another1843 free_space: 105, index: 1, pos_a: 1, pos_b: 21844 behaves like able to move a new item1845 can place any new item betwen two others1846 can place any new item after another1847 can place any new item before another1848 behaves like able to move an existing item1849 can place any item betwen two others1850 can place any item after another1851 can place any item before another1852 free_space: 105, index: 1, pos_a: 0, pos_b: 31853 behaves like able to move a new item1854 can place any new item betwen two others1855 can place any new item after another1856 can place any new item before another1857 behaves like able to move an existing item1858 can place any item betwen two others1859 can place any item after another1860 can place any item before another1861 free_space: 105, index: 1, pos_a: 0, pos_b: 21862 behaves like able to move a new item1863 can place any new item betwen two others1864 can place any new item after another1865 can place any new item before another1866 behaves like able to move an existing item1867 can place any item betwen two others1868 can place any item after another1869 can place any item before another1870 free_space: 105, index: 1, pos_a: 0, pos_b: 11871 behaves like able to move a new item1872 can place any new item betwen two others1873 can place any new item after another1874 can place any new item before another1875 behaves like able to move an existing item1876 can place any item betwen two others1877 can place any item after another1878 can place any item before another1879 free_space: 105, index: 0, pos_a: 2, pos_b: 31880 behaves like able to move a new item1881 can place any new item betwen two others1882 can place any new item after another1883 can place any new item before another1884 behaves like able to move an existing item1885 can place any item betwen two others1886 can place any item after another1887 can place any item before another1888 free_space: 105, index: 0, pos_a: 1, pos_b: 31889 behaves like able to move a new item1890 can place any new item betwen two others1891 can place any new item after another1892 can place any new item before another1893 behaves like able to move an existing item1894 can place any item betwen two others1895 can place any item after another1896 can place any item before another1897 free_space: 105, index: 0, pos_a: 1, pos_b: 21898 behaves like able to move a new item1899 can place any new item betwen two others1900 can place any new item after another1901 can place any new item before another1902 behaves like able to move an existing item1903 can place any item betwen two others1904 can place any item after another1905 can place any item before another1906 free_space: 105, index: 0, pos_a: 0, pos_b: 31907 behaves like able to move a new item1908 can place any new item betwen two others1909 can place any new item after another1910 can place any new item before another1911 behaves like able to move an existing item1912 can place any item betwen two others1913 can place any item after another1914 can place any item before another1915 free_space: 105, index: 0, pos_a: 0, pos_b: 21916 behaves like able to move a new item1917 can place any new item betwen two others1918 can place any new item after another1919 can place any new item before another1920 behaves like able to move an existing item1921 can place any item betwen two others1922 can place any item after another1923 can place any item before another1924 free_space: 105, index: 0, pos_a: 0, pos_b: 11925 behaves like able to move a new item1926 can place any new item betwen two others1927 can place any new item after another1928 can place any new item before another1929 behaves like able to move an existing item1930 can place any item betwen two others1931 can place any item after another1932 can place any item before another1933Gitlab::Git::Repository1934 Respond to1935 is expected to respond to #root_ref1936 is expected to respond to #tags1937 #root_ref1938 returns UTF-81939 gets the branch name from GitalyClient1940 behaves like wrapping gRPC errors1941 wraps gRPC not found error1942 wraps gRPC unknown error1943 #create_repository1944 behaves like wrapping gRPC errors1945 wraps gRPC not found error1946 wraps gRPC unknown error1947 #branch_names1948 has TestRepo::BRANCH_SHA.size elements1949 returns UTF-81950 is expected to include "master"1951 is expected not to include "branch-from-space"1952 behaves like wrapping gRPC errors1953 wraps gRPC not found error1954 wraps gRPC unknown error1955 #tag_names1956 is expected to be a kind of Array1957 has some elements1958 returns UTF-81959 is expected to include "v1.0.0"1960 is expected not to include "v5.0.0"1961 #last1962 is expected to eq "v1.1.1"1963 behaves like wrapping gRPC errors1964 wraps gRPC not found error1965 wraps gRPC unknown error1966 #tags1967 behaves like wrapping gRPC errors1968 wraps gRPC not found error1969 wraps gRPC unknown error1970 #archive_metadata1971 sets CommitId to the commit SHA1972 sets ArchivePrefix to the expected prefix1973 sets ArchivePath to the expected globally-unique path1974 path is set1975 appends the path to the prefix1976 append_sha varies archive path and filename1977 append_sha: true, ref: "master", expected_prefix: "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"1978 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"1979 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"1980 append_sha: true, ref: "b83d6e391c22777fca1ed3012fce84f633d7fed0", expected_prefix: "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0-b83d6e391c22777fca1ed3012fce84f633d7fed0"1981 is expected to eq "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0-b83d6e391c22777fca1ed3012fce84f633d7fed0"1982 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"1983 append_sha: false, ref: "master", expected_prefix: "gitlab-git-test-master"1984 is expected to eq "gitlab-git-test-master"1985 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master.tar.gz"1986 append_sha: false, ref: "b83d6e391c22777fca1ed3012fce84f633d7fed0", expected_prefix: "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"1987 is expected to eq "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"1988 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"1989 append_sha: nil, ref: "master", expected_prefix: "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"1990 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"1991 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"1992 append_sha: nil, ref: "b83d6e391c22777fca1ed3012fce84f633d7fed0", expected_prefix: "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"1993 is expected to eq "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"1994 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"1995 format varies archive path and filename1996 format: nil, expected_extension: "tar.gz"1997 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"1998 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"1999 format: "madeup", expected_extension: "tar.gz"2000 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2001 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2002 format: "tbz2", expected_extension: "tar.bz2"2003 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2004 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.bz2"2005 format: "zip", expected_extension: "zip"2006 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2007 is expected to eq "/tmp/project-6/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.zip"2008 when references are ambiguous2009 when tag is ambiguous2010 ref: "refs/heads/branch-merged", expected_commit_id: branch_master_commit_id, desc: "when tag looks like a branch"2011 selects the correct commit2012 ref: "branch-merged", expected_commit_id: branch_master_commit_id, desc: "when tag has the same name as a branch"2013 selects the correct commit2014 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when tag looks like a commit id"2015 selects the correct commit2016 ref: "v0.0.0", expected_commit_id: branch_master_commit_id, desc: "when tag looks like a normal tag"2017 selects the correct commit2018 when resolve_ambiguous_archives is disabled2019 ref: "refs/heads/branch-merged", expected_commit_id: branch_merged_commit_id, desc: "when tag looks like a branch (difference!)"2020 selects the correct commit2021 ref: "branch-merged", expected_commit_id: branch_master_commit_id, desc: "when tag has the same name as a branch"2022 selects the correct commit2023 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when tag looks like a commit id"2024 selects the correct commit2025 ref: "v0.0.0", expected_commit_id: branch_master_commit_id, desc: "when tag looks like a normal tag"2026 selects the correct commit2027 when branch is ambiguous2028 ref: "refs/tags/v1.0.0", expected_commit_id: branch_master_commit_id, desc: "when branch looks like a tag"2029 selects the correct commit2030 ref: "v1.0.0", expected_commit_id: tag_1_0_0_commit_id, desc: "when branch has the same name as a tag"2031 selects the correct commit2032 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when branch looks like a commit id"2033 selects the correct commit2034 ref: "just-a-normal-branch", expected_commit_id: branch_master_commit_id, desc: "when branch looks like a normal branch"2035 selects the correct commit2036 when resolve_ambiguous_archives is disabled2037 ref: "refs/tags/v1.0.0", expected_commit_id: tag_1_0_0_commit_id, desc: "when branch looks like a tag (difference!)"2038 selects the correct commit2039 ref: "v1.0.0", expected_commit_id: tag_1_0_0_commit_id, desc: "when branch has the same name as a tag"2040 selects the correct commit2041 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when branch looks like a commit id"2042 selects the correct commit2043 ref: "just-a-normal-branch", expected_commit_id: branch_master_commit_id, desc: "when branch looks like a normal branch"2044 selects the correct commit2045 when ref is HEAD2046 selects commit id from HEAD ref2047 when ref is not found2048 returns empty metadata2049 #size2050 is expected to be > 02051 #to_s2052 is expected to eq "<Gitlab::Git::Repository: namespace1/project-6>"2053 #object_directory_size2054 is expected to eq 20482055 #empty?2056 is expected not to be empty2057 #ref_names2058 is expected to be a kind of Array2059 #first2060 is expected to eq "'test'"2061 #last2062 is expected to eq "v1.1.1"2063 #submodule_url_for2064 is expected to eq "git://github.com/randx/six.git"2065 is expected to eq "git://github.com/randx/six.git"2066 is expected to eq nil2067 uncommitted submodule dir2068 is expected to eq nil2069 tags2070 is expected to eq "git://github.com/randx/six.git"2071 no .gitmodules at commit2072 is expected to eq nil2073 no gitlink entry2074 is expected to eq nil2075 #submodule_urls_for2076 returns url mappings for submodules2077 #commit_count2078 is expected to eq 372079 is expected to eq 92080 is expected to eq 02081 behaves like wrapping gRPC errors2082 wraps gRPC not found error2083 wraps gRPC unknown error2084 #diverging_commit_count2085 counts 0 for the same branch2086 max count does not truncate results2087 left: 1, right: 1, expected: [1, 1]2088 returns the correct count bounding at max_count2089 left: 4, right: 4, expected: [4, 4]2090 returns the correct count bounding at max_count2091 left: 2, right: 2, expected: [2, 2]2092 returns the correct count bounding at max_count2093 left: 2, right: 4, expected: [2, 4]2094 returns the correct count bounding at max_count2095 left: 4, right: 2, expected: [4, 2]2096 returns the correct count bounding at max_count2097 left: 10, right: 10, expected: [10, 10]2098 returns the correct count bounding at max_count2099 max count truncates results2100 left: 1, right: 1, max_count: 12101 returns the correct count bounding at max_count2102 left: 4, right: 4, max_count: 42103 returns the correct count bounding at max_count2104 left: 2, right: 2, max_count: 32105 returns the correct count bounding at max_count2106 left: 2, right: 4, max_count: 32107 returns the correct count bounding at max_count2108 left: 4, right: 2, max_count: 52109 returns the correct count bounding at max_count2110 left: 10, right: 10, max_count: 102111 returns the correct count bounding at max_count2112 behaves like wrapping gRPC errors2113 wraps gRPC not found error2114 wraps gRPC unknown error2115 #has_local_branches?2116 check for local branches2117 is expected to eq true2118 #delete_branch2119 deletes a branch2120 deletes a fully qualified branch2121 #delete_refs2122 deletes the ref2123 deletes all refs2124 does not fail when deleting an empty list of refs2125 raises an error if it failed2126 #branch_names_contains_sha2127 displays that branch2128 when limit is provided2129 displays limited number of branches2130 #refs_hash2131 has as many entries as branches and tags2132 has valid commit ids as keys2133 does not error when dereferenced_target is nil2134 #fetch_remote2135 delegates to the gitaly RepositoryService2136 behaves like wrapping gRPC errors2137 wraps gRPC not found error2138 wraps gRPC unknown error2139 #search_files_by_content2140 has 2 items2141 has the correct matching line2142 #search_files_by_regexp2143 when sending a valid regexp2144 returns matched files2145 when sending an ivalid regexp2146 raises error2147 when the ref doesn't exist2148 returns an empty array2149 #search_files_by_name2150 when sending a valid name2151 returns matched files2152 when sending a name with space2153 returns matched files2154 when sending a name with special ASCII characters2155 returns matched files2156 when sending a non-existing name2157 raises error2158 #find_remote_root_ref2159 gets the remote root ref from GitalyClient2160 returns UTF-82161 returns nil when remote name is nil2162 returns nil when remote name is empty2163 behaves like wrapping gRPC errors2164 wraps gRPC not found error2165 wraps gRPC unknown error2166 #log2167 when Gitaly find_commits feature is enabled2168 behaves like repository log2169 where 'follow' == true2170 and 'path' is a directory2171 does not follow renames2172 and 'path' is a file that matches the new filename2173 without offset2174 follows renames2175 with offset=12176 follows renames and skip the latest commit2177 with offset=1 and limit=12178 follows renames, skip the latest commit and return only one commit2179 with offset=1 and limit=22180 follows renames, skip the latest commit and return only two commits2181 with offset=22182 follows renames and skip the latest commit2183 with offset=2 and limit=12184 follows renames, skip the two latest commit and return only one commit2185 with offset=2 and limit=22186 follows renames, skip the two latest commit and return only one commit2187 and 'path' is a file that matches the old filename2188 does not follow renames2189 unknown ref2190 returns an empty array2191 where 'follow' == false2192 and 'path' is a directory2193 does not follow renames2194 and 'path' is a file that matches the new filename2195 does not follow renames2196 and 'path' is a file that matches the old filename2197 does not follow renames2198 where provides 'after' timestamp2199 returns commits on or after that timestamp2200 where provides 'before' timestamp2201 returns commits on or before that timestamp2202 when multiple paths are provided2203 only returns commits matching at least one path2204 limit validation2205 limit: 02206 is expected to raise ArgumentError2207 limit: nil2208 is expected to raise ArgumentError2209 limit: ""2210 is expected to raise ArgumentError2211 limit: "foo"2212 is expected to raise ArgumentError2213 with all2214 returns a list of commits2215 #blobs2216 single revision2217 behaves like a blob enumeration2218 enumerates blobs2219 multiple revisions2220 behaves like a blob enumeration2221 enumerates blobs2222 pseudo revisions2223 behaves like a blob enumeration2224 enumerates blobs2225 blank revisions2226 behaves like a blob enumeration2227 enumerates blobs2228 #new_blobs2229 with a single revision2230 behaves like #new_blobs with revisions2231 enumerates new blobs2232 memoizes results2233 with a single-entry array2234 behaves like #new_blobs with revisions2235 enumerates new blobs2236 memoizes results2237 with multiple revisions2238 behaves like #new_blobs with revisions2239 enumerates new blobs2240 memoizes results2241 with partially blank revisions2242 behaves like #new_blobs with revisions2243 enumerates new blobs2244 memoizes results2245 with repeated revisions2246 behaves like #new_blobs with revisions2247 enumerates new blobs2248 memoizes results2249 with preexisting commits2250 behaves like #new_blobs with revisions2251 enumerates new blobs2252 memoizes results2253 with a single nil newrev2254 behaves like #new_blobs without revisions2255 returns an empty array2256 with a single zero newrev2257 behaves like #new_blobs without revisions2258 returns an empty array2259 with an empty array2260 behaves like #new_blobs without revisions2261 returns an empty array2262 with array containing only empty refs2263 behaves like #new_blobs without revisions2264 returns an empty array2265 #new_commits2266 enumerates commits2267 #count_commits_between2268 is expected to eq 292269 #raw_changes_between2270 initial commit2271 returns the changes2272 with an invalid rev2273 returns an error2274 with valid revs2275 returns the changes2276 #merge_base2277 from: "master", to: "feature", result: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2278 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2279 from: "feature", to: "master", result: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2280 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2281 from: "master", to: "foobar", result: nil2282 is expected to eq nil2283 from: "foobar", to: "master", result: nil2284 is expected to eq nil2285 #count_commits2286 extended commit counting2287 with after timestamp2288 returns the number of commits after timestamp2289 with before timestamp2290 returns the number of commits before timestamp2291 with max_count2292 returns the number of commits with path2293 with path2294 returns the number of commits with path2295 with option :from and option :to2296 returns the number of commits ahead for master..feature2297 returns the number of commits ahead for feature..master2298 with option :left_right2299 returns the number of commits for master..feature2300 with max_count2301 returns the number of commits2302 with max_count2303 returns the number of commits up to the passed limit2304 with all2305 returns the number of commits in the whole repository2306 without all or ref being specified2307 raises an ArgumentError2308 #find_branch2309 returns a Branch for master2310 handles non-existent branch2311 when branch is ambiguous2312 returns nil for ambiguous branch2313 #branches2314 with local and remote branches2315 returns the local and remote branches2316 behaves like wrapping gRPC errors2317 wraps gRPC not found error2318 wraps gRPC unknown error2319 #branch_count2320 returns the number of branches2321 with local and remote branches2322 returns the count of local branches2323 #merged_branch_names2324 when branch names are passed2325 only returns the names we are asking2326 does not return unmerged branch names2327 when no root ref is available2328 returns empty list2329 when no branch names are specified2330 returns all merged branch names except for identical one2331 #diff_stats2332 returns a DiffStatsCollection2333 yields Gitaly::DiffStats objects2334 returns no Gitaly::DiffStats when SHAs are invalid2335 returns no Gitaly::DiffStats when there is a nil SHA2336 returns no Gitaly::DiffStats when there is a BLANK_SHA2337 #find_changed_paths2338 returns a list of paths2339 returns no paths when SHAs are invalid2340 returns a list of paths even when containing a blank ref2341 returns no paths when the commits are nil2342 #ls_files2343 read every file paths of master branch2344 reads full file paths of master branch2345 does not read submodule directory and empty directory of master branch2346 does not include 'nil'2347 returns empty array when not existed branch2348 returns valid utf-8 data2349 #copy_gitattributes2350 raises an error with invalid ref2351 when forcing encoding issues2352 doesn't raise with a valid unicode ref2353 #gitattribute2354 with gitattributes2355 returns matching language attribute2356 returns matching language attribute with additional options2357 returns nil if nothing matches2358 without gitattributes2359 returns nil2360 #ref_exists?2361 returns true for an existing tag2362 returns false for a non-existing tag2363 raises an ArgumentError for an empty string2364 raises an ArgumentError for an invalid ref2365 #tag_exists?2366 returns true for an existing tag2367 returns false for a non-existing tag2368 #branch_exists?2369 returns true for an existing branch2370 returns false for a non-existing branch2371 returns false when using an invalid branch name2372 #local_branches2373 returns the local branches2374 returns a Branch with UTF-8 fields2375 gets the branches from GitalyClient2376 behaves like wrapping gRPC errors2377 wraps gRPC not found error2378 wraps gRPC unknown error2379 #find_tag2380 returns a tag2381 when asking for a non-existent tag2382 behaves like a nonexistent tag2383 returns nil2384 when Gitaly returns Internal error2385 behaves like a nonexistent tag2386 returns nil2387 when Gitaly returns tag_not_found error2388 behaves like a nonexistent tag2389 returns nil2390 #languages2391 returns exactly the expected results2392 uses the repository's HEAD when no ref is passed2393 #license2394 when no license file can be found2395 is expected to be nil2396 when an mit license is found2397 is expected to have attributes {:key => "mit"}2398 when license is not recognized2399 is expected to have attributes {:key => "other", :nickname => "LICENSE"}2400 #fetch_source_branch!2401 when the branch exists2402 when the commit does not exist locally2403 writes the ref2404 when the commit exists locally2405 writes the ref2406 when the branch does not exist2407 does not write the ref2408 #rm_branch2409 removes the branch from the repo2410 #write_ref2411 writes the HEAD2412 writes other refs2413 validations2414 ref_path: "foo bar", ref: "123"2415 raises ArgumentError2416 ref_path: "foobar", ref: "12\u00003"2417 raises ArgumentError2418 #list_refs2419 returns a list of branches with their head commit2420 filters by pattern2421 with pointing_at_oids and peel_tags options2422 filters by target OIDs2423 returns peeled_target for annotated tags2424 #refs_by_oid2425 returns a list of refs from a OID2426 returns a single ref from a OID2427 returns empty for unknown ID2428 returns nil for an empty repo2429 #set_full_path2430 writes full_path to gitaly2431 it is given an empty path2432 does not write it to disk2433 repository does not exist2434 raises NoRepository and does not call SetFullPath2435 #full_path2436 returns the full path2437 #merge_to_ref2438 generates a commit in the target_ref2439 does not change the right branch HEAD2440 #merge2441 can perform a merge2442 returns nil if there was a concurrent branch update2443 #ff_merge2444 calls Gitaly's OperationService2445 behaves like #ff_merge2446 performs a ff_merge2447 with a non-existing target branch2448 throws an ArgumentError2449 with a non-existing source commit2450 throws an ArgumentError2451 when the source sha is not a descendant of the branch head2452 doesn't perform the ff_merge2453 #delete_all_refs_except2454 deletes all refs except those with the specified prefixes2455 #bundle_to_disk2456 saves a bundle to disk2457 #create_from_bundle2458 creates a repo from a bundle file2459 raises an error if the bundle is an attempted malicious payload2460 #compare_source_branch2461 compares two branches cross repo2462 source ref does not exist in source repo2463 returns an empty comparison2464 #checksum2465 calculates the checksum for non-empty repo2466 returns a blank sha for an empty repo2467 raises NoRepository for a non-existent repo2468 #replicas2469 gets the replica checksum through praefect2470 #disconnect_alternates2471 does not raise an error when disconnecting a non-linked repository2472 can still access objects in the object pool2473 #rename2474 moves the repository2475 #remove2476 removes the repository2477 when the repository does not exist2478 is idempotent2479 #import_repository2480 raises an error if a relative path is provided2481 raises an error if an absolute path is provided2482 delegates to Gitaly2483 behaves like wrapping gRPC errors2484 wraps gRPC not found error2485 wraps gRPC unknown error2486 #replicate2487 destination does not exist2488 mirrors the source repository2489 destination exists2490 mirrors the source repository2491 with keep-around refs2492 includes the temporary and keep-around refs2493 #check_objects_exist2494 returns hash specifying which object exists in repo2495gitlab:usage data take tasks2496 dump_sql_in_yaml2497 dumps SQL queries in yaml format2498 dump_sql_in_json2499 dumps SQL queries in json format2500 dump_non_sql_in_json2501 dumps non SQL data in json format2502 generate_sql_metrics_fixture2503 generates fixture file correctly2504 generate_and_send2505 generates and sends Service Ping payload2506Ci::CreatePipelineService2507 job:rules2508 exists:2509 with matches2510 creates two jobs2511 sets when: for all jobs2512 with matches on the second rule2513 includes both jobs2514 sets when: for the created rules job based on the second clause2515 without matches2516 only persists the job without rules2517 sets when: for the created job2518 with allow_failure and exit_codes2519 creates a pipeline2520 assigns job:allow_failure values to the builds2521 removes exit_codes if allow_failure is specified2522 if:2523 variables:2524 when no match2525 does not affect vars2526 when matching to the first rule2527 overrides variables2528 when matching to the second rule2529 overrides variables2530 using calculated workflow var in job rules2531 when matching the first workflow condition2532 uses VAR1 of job rules result2533 with simple if: clauses2534 with matches2535 creates a pipeline with the vanilla and manual jobs2536 assigns job:when values to the builds2537 assigns job:allow_failure values to the builds2538 assigns start_in for delayed jobs2539 with no matches2540 behaves like rules jobs are excluded2541 only persists the job without rules2542 with complex if: clauses2543 matches the first rule2544 with needs:2545 when the `$var` rule matches2546 creates a pipeline with overridden needs2547 when the `$var` rule does not match2548 creates a pipeline with overridden needs2549 when the FF introduce_rules_with_needs is disabled2550 when the `$var` rule matches2551 creates a pipeline without overridden needs2552 when the `$var` rule does not match2553 creates a pipeline without overridden needs2554 changes:2555 and matches2556 creates five jobs2557 sets when: for all jobs2558 sets allow_failure: for negligible job2559 and matches the second rule2560 includes both jobs2561 sets when: for the created rules job based on the second clause2562 and does not match2563 sets when: for the created job2564 behaves like rules jobs are excluded2565 only persists the job without rules2566 with paths and compare_to2567 for jobs rules2568 when there is no such compare_to ref2569 returns an error2570 when the compare_to ref exists2571 when the rule matches2572 creates job1 and job22573 when the rule does not match2574 does not create job12575 for workflow rules2576 when the rule matches2577 creates job12578 when the rule does not match2579 does not create job12580 mixed if: and changes: rules2581 and changes: matches before if2582 creates two jobs2583 sets when: for all jobs2584 sets allow_failure: for all jobs2585 and if: matches after changes2586 includes both jobs2587 sets when: for the created rules job based on the second clause2588 and does not match2589 sets when: for the created job2590 behaves like rules jobs are excluded2591 only persists the job without rules2592 mixed if: and changes: clauses2593 with if matches and changes matches2594 persists all jobs2595 with if matches and no change matches2596 behaves like rules jobs are excluded2597 only persists the job without rules2598 with change matches and no if matches2599 behaves like rules jobs are excluded2600 only persists the job without rules2601 and no matches2602 behaves like rules jobs are excluded2603 only persists the job without rules2604 complex if: allow_failure usages2605 creates a pipeline2606 assigns job:allow_failure values to the builds2607 complex if: allow_failure & when usages2608 creates a pipeline2609 assigns job:allow_failure values to the builds2610 assigns job:when values to the builds2611 deploy freeze period `if:` clause2612 with 2 jobs2613 when outside freeze period2614 creates two jobs2615 when inside freeze period2616 creates one job2617 with 1 job2618 when outside freeze period2619 creates two jobs2620 when inside freeze period2621 does not create the pipeline2622 with when:manual2623 when matching the rules2624 adds the job-with-rules with a when:manual2625 when there is no match to the rule2626 does not add job_with_rules2627 when workflow:rules are used2628 with a single regex-matching if: clause2629 matching the first rule in the list2630 saves a created pipeline2631 matching the last rule in the list2632 saves a created pipeline2633 matching the when:never rule2634 invalidates the pipeline with a workflow rules error2635 matching no rules in the list2636 invalidates the pipeline with a workflow rules error2637 when root variables are used2638 matching the first rule in the list2639 saves a created pipeline2640 with a multiple regex-matching if: clause2641 with partial match2642 saves a created pipeline2643 with complete match2644 invalidates the pipeline with a workflow rules error2645 with job rules2646 where workflow passes and the job fails2647 invalidates the pipeline with an empty jobs error2648 where workflow passes and the job passes2649 saves a created pipeline2650 where workflow fails and the job fails2651 invalidates the pipeline with a workflow rules error2652 where workflow fails and the job passes2653 invalidates the pipeline with a workflow rules error2654 with persisted variables2655 with matches2656 creates a pipeline2657 with no matches2658 does not create a pipeline2659 with pipeline variables2660 with matches2661 creates a pipeline2662 with no matches2663 does not create a pipeline2664 with trigger variables2665 with matches2666 creates a pipeline2667 when a job requires the same variable2668 creates a pipeline2669 with no matches2670 does not create a pipeline2671 when a job requires the same variable2672 does not create a pipeline2673 changes2674 changes is an array2675 behaves like comparing file changes with workflow rules2676 when matches2677 creates the pipeline with a job2678 when does not match2679 creates the pipeline with a job2680 changes:paths is an array2681 behaves like comparing file changes with workflow rules2682 when matches2683 creates the pipeline with a job2684 when does not match2685 creates the pipeline with a job2686 workflow name with rules2687 substitutes variables in pipeline name2688Boards::Lists::MoveService2689 #execute2690 when board parent is a project2691 behaves like lists move service2692 with complete position sequence2693 behaves like correct movement behavior2694 keeps position of lists when list type is closed2695 when list type is set to label2696 does not reorder lists when new position is nil2697 does not reorder lists when new position is equal to old position2698 does not reorder lists when new position is negative2699 does not reorder lists when new position is bigger then last position2700 moves the list to the first position when new position is equal to first position2701 moves the list to the last position when new position is equal to last position2702 moves the list to the correct position when new position is greater than old position (third list)2703 moves the list to the correct position when new position is lower than old position (second list)2704 with corrupted position sequence2705 behaves like correct movement behavior2706 keeps position of lists when list type is closed2707 when list type is set to label2708 does not reorder lists when new position is nil2709 does not reorder lists when new position is equal to old position2710 does not reorder lists when new position is negative2711 does not reorder lists when new position is bigger then last position2712 moves the list to the first position when new position is equal to first position2713 moves the list to the last position when new position is equal to last position2714 moves the list to the correct position when new position is greater than old position (third list)2715 moves the list to the correct position when new position is lower than old position (second list)2716 when board parent is a group2717 behaves like lists move service2718 with complete position sequence2719 behaves like correct movement behavior2720 keeps position of lists when list type is closed2721 when list type is set to label2722 does not reorder lists when new position is nil2723 does not reorder lists when new position is equal to old position2724 does not reorder lists when new position is negative2725 does not reorder lists when new position is bigger then last position2726 moves the list to the first position when new position is equal to first position2727 moves the list to the last position when new position is equal to last position2728 moves the list to the correct position when new position is greater than old position (third list)2729 moves the list to the correct position when new position is lower than old position (second list)2730 with corrupted position sequence2731 behaves like correct movement behavior2732 keeps position of lists when list type is closed2733 when list type is set to label2734 does not reorder lists when new position is nil2735 does not reorder lists when new position is equal to old position2736 does not reorder lists when new position is negative2737 does not reorder lists when new position is bigger then last position2738 moves the list to the first position when new position is equal to first position2739 moves the list to the last position when new position is equal to last position2740 moves the list to the correct position when new position is greater than old position (third list)2741 moves the list to the correct position when new position is lower than old position (second list)2742WorkItems::WorkItemsFinder2743 behaves like issues or work items finder2744 #execute2745 scope: all2746 returns all items2747 finds items user can access due to group2748 user does not have read permissions2749 when filtering by project id2750 returns no items2751 when filtering by group id2752 returns no items2753 assignee filtering2754 behaves like assignee ID filter2755 returns issuables assigned to that user2756 behaves like assignee NOT ID filter2757 returns issuables not assigned to that user2758 behaves like assignee OR filter2759 returns issuables assigned to the given users2760 when assignee_id does not exist2761 behaves like assignee NOT ID filter2762 returns issuables not assigned to that user2763 filter by username2764 behaves like assignee username filter2765 returns issuables assigned to those users2766 behaves like assignee NOT username filter2767 returns issuables not assigned to those users2768 behaves like assignee OR filter2769 returns issuables assigned to the given users2770 when assignee_username does not exist2771 behaves like assignee NOT username filter2772 returns issuables not assigned to those users2773 behaves like no assignee filter2774 returns issuables not assigned to any assignee2775 returns issuables not assigned to any assignee2776 behaves like any assignee filter2778 returns issuables assigned to any assignee2779 returns issuables assigned to any assignee2780 filtering by release2781 when filter by none2782 returns items without releases2783 when sort by milestone2784 returns items without any releases2785 when filter by any2786 returns items with any releases2787 when sort by milestone2788 returns items without any releases2789 when filter by a release_tag2790 returns the items associated with the release tag2791 when sort by milestone2792 returns the items associated with the release tag2793 when filter by a negated release_tag2794 returns the items not associated with the release2795 when sort by milestone2796 returns the items not associated with the release2797 filtering by projects2798 when projects are passed in a list of ids2799 returns the item belonging to the projects2800 when projects are passed in a subquery2801 returns the item belonging to the projects2802 filtering by group_id2803 when include_subgroup param not set2804 returns all group items2805 when projects outside the group are passed2806 returns no items2807 when projects of the group are passed2808 returns the item within the group and projects2809 when projects of the group are passed as a subquery2810 returns the item within the group and projects2811 when release_tag is passed as a parameter2812 ignores the release_tag parameter2813 when include_subgroup param is true2814 returns all group and subgroup items2815 when mixed projects are passed2816 returns the item within the group and projects2817 filtering by author2818 by author ID2819 returns items created by that user2820 using OR2821 returns items created by any of the given users2822 when feature flag is disabled2823 does not add any filter2824 filtering by NOT author ID2825 returns items not created by that user2826 filtering by nonexistent author ID and issue term using CTE for search2827 returns no results2828 filtering by milestone2829 returns items assigned to that milestone2830 filtering by not milestone2831 returns items not assigned to that milestone2832 with multiple milestones2833 returns items not assigned to both milestones2834 filtering by group milestone2835 returns items assigned to that group milestone2836 using NOT2837 returns items not assigned to that group milestone2838 filtering by no milestone2839 returns items with no milestone2840 returns items with no milestone (deprecated)2841 filtering by any milestone2842 returns items with any assigned milestone2843 returns items with any assigned milestone (deprecated)2844 filtering by upcoming milestone2845 returns items in the upcoming milestone for each project or group2846 using NOT2847 returns items not in upcoming milestones for each project or group, but must have a due date2848 filtering by started milestone2849 returns items in the started milestones for each project2850 using NOT2851 returns items not in the started milestones for each project2852 filtering by label2853 returns items with that label2854 using NOT2855 returns items that do not have that label2856 shadowing the same outside param2857 does not take precedence over labels outside NOT2858 further filtering outside params2859 further filters on the returned resultset2860 filtering by multiple labels2861 returns the unique items with all those labels2862 using NOT2863 returns items that do not have any of the labels provided2864 using OR2865 returns items that have at least one of the given labels2866 when feature flag is disabled2867 does not add any filter2868 filtering by a label that includes any or none in the title2869 returns the unique items with all those labels2870 using NOT2871 returns items that do not have ANY ONE of the labels provided2872 filtering by no label2873 returns items with no labels2874 filtering by any label2875 returns items that have one or more label2876 when the same label exists on project and group levels2877 finds both item records2878 filtering by item term2879 with latin search term2880 returns matching items2881 with non-latin search term2882 returns matching items2883 when full-text search is disabled2884 allows partial word matches2885 filtering by item term in title2886 returns items with title match for search term2887 filtering by items iids2888 returns items where iids match2889 using NOT2890 returns items with no iids match2891 filtering by state2892 with opened2893 returns only opened items2894 with closed2895 returns only closed items2896 with all2897 returns all items2898 with invalid state2899 returns all items2900 filtering by created_at2901 through created_after2902 returns items created on or after the given date2903 through created_before2904 returns items created on or before the given date2905 through created_after and created_before2906 returns items created between the given dates2907 filtering by updated_at2908 through updated_after2909 returns items updated on or after the given date2910 through updated_before2911 returns items updated on or before the given date2912 through updated_after and updated_before2913 returns items updated between the given dates2914 filtering by closed_at2915 through closed_after2916 returns items closed on or after the given date2917 through closed_before2918 returns items closed on or before the given date2919 through closed_after and closed_before2920 returns items closed between the given dates2921 filtering by reaction name2922 user searches by no reaction2923 returns items that the user did not react to2924 user searches by any reaction2925 returns items that the user reacted to2926 user searches by "thumbsup" reaction2927 returns items that the user thumbsup to2928 using NOT2929 returns items that the user did not thumbsup to2930 user2 searches by "thumbsup" reaction2931 returns items that the user2 thumbsup to2932 using NOT2933 returns items that the user2 thumbsup to2934 user searches by "thumbsdown" reaction2935 returns items that the user thumbsdown to2936 using NOT2937 returns items that the user thumbsdown to2938 filtering by confidential2939 no filtering2940 returns all items2941 user filters confidential items2942 returns only confidential items2943 user filters only public items2944 returns only public items2945 filtering by item type2946 no type given2947 returns all items2948 incident type2949 returns incident items2950 objective type2951 returns incident items2952 key_result type2953 returns incident items2954 item type2955 returns all items with type issue2956 multiple params2957 returns all items2958 without array2959 returns incident items2960 invalid params2961 returns no items2962 crm filtering2963 filtering by crm contact2964 when the user can read crm contacts2965 returns for that contact2966 when the user can not read crm contacts2967 does not filter by contact2968 filtering by crm organization2969 when the user can read crm organization2970 returns for that crm organization2971 when the user can not read crm organization2972 does not filter by crm organization2973 when the user is unauthorized2974 returns no results2975 when the user can see some, but not all, items2976 returns only items they can see2977 personal scope2978 returns item assigned to the user2979 filtering by project2980 returns items assigned to the user in that project2981 when project restricts items2982 doesn't return team-only items to non team members2983 doesn't return items if feature disabled2984 external authorization2985 behaves like a finder with external authorization service2986 finds the subject2987 with an external authorization service2988 does not include the subject when no project was given2989 includes the subject when a project id was given2990 filtering by due date2991 with param set to no due date2992 returns items with no due date2993 with param set to any due date2994 returns items with any due date2995 with param set to due today2996 returns items due today2997 with param set to due tomorrow2998 returns items due today2999 with param set to overdue3000 returns overdue items3001 with param set to next month and previous two weeks3002 returns items due in the previous two weeks and next month3003 with invalid param3004 returns no items3005 #row_count3006 returns -1 if the query times out3007 when admin mode is enabled3008 returns the number of rows for the default state3009 returns the number of rows for a given state3010 when admin mode is disabled3011 returns no rows3012 #with_confidentiality_access_check3013 when no project filter is given3014 for an anonymous user3015 behaves like returns public, does not return hidden or confidential3016 returns only public items3017 for a user without project membership3018 behaves like returns public, does not return hidden or confidential3019 returns only public items3020 for a guest user3021 behaves like returns public, does not return hidden or confidential3022 returns only public items3023 for a project member with access to view confidential items3024 behaves like returns public and confidential, does not return hidden3025 returns only public and confidential items3026 for an admin3027 when admin mode is enabled3028 behaves like returns public, confidential, and hidden3029 returns all items3030 when admin mode is disabled3031 behaves like returns public, does not return hidden or confidential3032 returns only public items3033 when searching within a specific project3034 for an anonymous user3035 does not filter by confidentiality3036 behaves like returns public, does not return hidden or confidential3037 returns only public items3038 for a user without project membership3039 filters by confidentiality3040 behaves like returns public, does not return hidden or confidential3041 returns only public items3042 for a guest user3043 filters by confidentiality3044 behaves like returns public, does not return hidden or confidential3045 returns only public items3046 for a project member with access to view confidential items3047 does not filter by confidentiality3048 behaves like returns public and confidential, does not return hidden3049 returns only public and confidential items3050 for an admin3051 when admin mode is enabled3052 does not filter by confidentiality3053 behaves like returns public, confidential, and hidden3054 returns all items3055 when admin mode is disabled3056 filters by confidentiality3057 behaves like returns public, does not return hidden or confidential3058 returns only public items3059 #use_cte_for_search?3060 when there is no search param3061 returns false3062 when the force_cte param is falsey3063 returns false3064 when a non-simple sort is given3065 returns false3066 when all conditions are met3067 uses group search optimization3068 returns true3069 uses project search optimization3070 returns true3071 with simple sort3072 returns true3073 with simple sort as a symbol3074 returns true3075 #parent_param=3076 klass: :Project, param: :project_id3077 sets the params3078 klass: :Group, param: :group_id3079 sets the params3080 unexpected parent3081 raises an error3082Projects::Alerting::NotifyService3083 #execute3084 with HTTP integration3085 with valid token3086 with valid payload3087 passes the integration to alert processing3088 behaves like processes new firing alert3089 behaves like creates an alert management alert or errors3090 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3091 creates AlertManagement::Alert3092 executes the alert service hooks3093 and fails to save3094 writes a warning to the log3095 behaves like alerts service responds with an error3096 is expected to eq :bad_request3097 behaves like creates expected system notes for alert3098 for new_alert3099 behaves like processes incident issues if enabled3100 is expected to be success3101 with incident setting disabled3102 behaves like does not process incident issues3103 is expected not to receive perform_async(*(any args)) 0 times3104 behaves like sends alert notification emails if enabled3105 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3106 with email setting disabled3107 behaves like does not send alert notification emails3108 is expected not to receive new(*(any args)) 0 times3109 for an existing alert with the same fingerprint3110 which is triggered3111 behaves like adds an alert management alert event3112 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3113 behaves like does not create an alert management alert3114 is expected not to change `AlertManagement::Alert.count`3115 behaves like sends alert notification emails if enabled3116 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3117 with email setting disabled3118 behaves like does not send alert notification emails3119 is expected not to receive new(*(any args)) 0 times3120 behaves like processes incident issues if enabled3121 is expected to be success3122 with issue3123 behaves like does not process incident issues3124 is expected not to receive perform_async(*(any args)) 0 times3125 with incident setting disabled3126 behaves like does not process incident issues3127 is expected not to receive perform_async(*(any args)) 0 times3128 behaves like does not create an alert management alert3129 is expected not to change `AlertManagement::Alert.count`3130 behaves like does not create a system note for alert3131 is expected not to change `Note.count`3132 with an existing resolved alert as well3133 behaves like adds an alert management alert event3134 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3135 behaves like does not create an alert management alert3136 is expected not to change `AlertManagement::Alert.count`3137 behaves like sends alert notification emails if enabled3138 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3139 with email setting disabled3140 behaves like does not send alert notification emails3141 is expected not to receive new(*(any args)) 0 times3142 behaves like processes incident issues if enabled3143 is expected to be success3144 with issue3145 behaves like does not process incident issues3146 is expected not to receive perform_async(*(any args)) 0 times3147 with incident setting disabled3148 behaves like does not process incident issues3149 is expected not to receive perform_async(*(any args)) 0 times3150 behaves like does not create an alert management alert3151 is expected not to change `AlertManagement::Alert.count`3152 behaves like does not create a system note for alert3153 is expected not to change `Note.count`3154 which is acknowledged3155 behaves like adds an alert management alert event3156 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3157 behaves like does not create an alert management alert3158 is expected not to change `AlertManagement::Alert.count`3159 behaves like processes incident issues if enabled3160 is expected to be success3161 with issue3162 behaves like does not process incident issues3163 is expected not to receive perform_async(*(any args)) 0 times3164 with incident setting disabled3165 behaves like does not process incident issues3166 is expected not to receive perform_async(*(any args)) 0 times3167 behaves like does not create an alert management alert3168 is expected not to change `AlertManagement::Alert.count`3169 behaves like does not create a system note for alert3170 is expected not to change `Note.count`3171 behaves like does not send alert notification emails3172 is expected not to receive new(*(any args)) 0 times3173 which is ignored3174 behaves like adds an alert management alert event3175 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3176 behaves like does not create an alert management alert3177 is expected not to change `AlertManagement::Alert.count`3178 behaves like processes incident issues if enabled3179 is expected to be success3180 with issue3181 behaves like does not process incident issues3182 is expected not to receive perform_async(*(any args)) 0 times3183 with incident setting disabled3184 behaves like does not process incident issues3185 is expected not to receive perform_async(*(any args)) 0 times3186 behaves like does not create an alert management alert3187 is expected not to change `AlertManagement::Alert.count`3188 behaves like does not create a system note for alert3189 is expected not to change `Note.count`3190 behaves like does not send alert notification emails3191 is expected not to receive new(*(any args)) 0 times3192 which is resolved3193 behaves like creates an alert management alert or errors3194 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3195 creates AlertManagement::Alert3196 executes the alert service hooks3197 and fails to save3198 writes a warning to the log3199 behaves like alerts service responds with an error3200 is expected to eq :bad_request3201 behaves like creates expected system notes for alert3202 for new_alert3203 behaves like processes incident issues if enabled3204 is expected to be success3205 with incident setting disabled3206 behaves like does not process incident issues3207 is expected not to receive perform_async(*(any args)) 0 times3208 behaves like sends alert notification emails if enabled3209 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3210 with email setting disabled3211 behaves like does not send alert notification emails3212 is expected not to receive new(*(any args)) 0 times3213 behaves like properly assigns the alert properties3214 is expected to match {"project_id"=>355, "title"=>"alert title", "started_at"=>Fri, 02 Jun 2023 06:36:12.000000000 UTC +00:00, "severity"=>"low", "status"=>0, "events"=>1, "domain"=>"operations", "hosts"=>["1.1.1.1", "2.2.2.2"], "payload"=>{"title"=>"alert title", "start_time"=>"2023-06-02T06:36:12Z", "end_time"=>nil, "severity"=>"low", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "description"=>"Very detailed description", "hosts"=>["1.1.1.1", "2.2.2.2"], "fingerprint"=>"testing", "gitlab_environment_name"=>"environment1"}, "issue_id"=>nil, "description"=>"Very detailed description", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "fingerprint"=>"dc724af18fbdd4e59189f5fe768a5f8311527050", "environment_id"=>1, "ended_at"=>nil, "prometheus_alert_id"=>nil}3215 when another alert is saved at the same time3216 finds the other alert and increments the counter3217 when another alert is saved before the validation runes3218 finds the other alert and increments the counter3219 with partial payload3220 assigns the alert properties3221 behaves like creates an alert management alert or errors3222 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3223 creates AlertManagement::Alert3224 executes the alert service hooks3225 and fails to save3226 writes a warning to the log3227 behaves like alerts service responds with an error3228 is expected to eq :bad_request3229 behaves like creates expected system notes for alert3230 for new_alert3231 behaves like processes incident issues if enabled3232 is expected to be success3233 with incident setting disabled3234 behaves like does not process incident issues3235 is expected not to receive perform_async(*(any args)) 0 times3236 behaves like sends alert notification emails if enabled3237 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3238 with email setting disabled3239 behaves like does not send alert notification emails3240 is expected not to receive new(*(any args)) 0 times3241 with existing alert with matching payload3242 behaves like creates an alert management alert or errors3243 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3244 creates AlertManagement::Alert3245 executes the alert service hooks3246 and fails to save3247 writes a warning to the log3248 behaves like alerts service responds with an error3249 is expected to eq :bad_request3250 behaves like creates expected system notes for alert3251 for new_alert3252 behaves like processes incident issues if enabled3253 is expected to be success3254 with incident setting disabled3255 behaves like does not process incident issues3256 is expected not to receive perform_async(*(any args)) 0 times3257 behaves like sends alert notification emails if enabled3258 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3259 with email setting disabled3260 behaves like does not send alert notification emails3261 is expected not to receive new(*(any args)) 0 times3262 with resolving payload3263 behaves like processes recovery alert3264 seen for the first time3265 behaves like alerts service responds with an error and takes no actions3266 is expected to eq :bad_request3267 behaves like does not create an alert management alert3268 is expected not to change `AlertManagement::Alert.count`3269 behaves like does not create a system note for alert3270 is expected not to change `Note.count`3271 behaves like does not process incident issues3272 is expected not to receive perform_async(*(any args)) 0 times3273 behaves like does not send alert notification emails3274 is expected not to receive new(*(any args)) 0 times3275 for an existing alert with the same fingerprint3276 which is triggered3277 behaves like resolves an existing alert management alert3278 sets the end time and status3279 behaves like creates expected system notes for alert3280 for recovery_alert, resolve_alert3281 behaves like sends alert notification emails if enabled3282 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3283 with email setting disabled3284 behaves like does not send alert notification emails3285 is expected not to receive new(*(any args)) 0 times3286 behaves like closes related incident if enabled3287 with incident3288 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 13289 without incident3290 is expected not to receive perform_async(*(any args)) 0 times3291 with incident setting disabled3292 behaves like does not close related incident3293 with incident3294 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`3295 without incident3296 is expected not to receive perform_async(*(any args)) 0 times3297 behaves like does not create an alert management alert3298 is expected not to change `AlertManagement::Alert.count`3299 behaves like does not process incident issues3300 is expected not to receive perform_async(*(any args)) 0 times3301 behaves like does not add an alert management alert event3302 is expected not to change `alert.reload.events`3303 which is ignored3304 behaves like resolves an existing alert management alert3305 sets the end time and status3306 behaves like creates expected system notes for alert3307 for recovery_alert, resolve_alert3308 behaves like sends alert notification emails if enabled3309 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3310 with email setting disabled3311 behaves like does not send alert notification emails3312 is expected not to receive new(*(any args)) 0 times3313 behaves like closes related incident if enabled3314 with incident3315 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 13316 without incident3317 is expected not to receive perform_async(*(any args)) 0 times3318 with incident setting disabled3319 behaves like does not close related incident3320 with incident3321 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`3322 without incident3323 is expected not to receive perform_async(*(any args)) 0 times3324 behaves like does not create an alert management alert3325 is expected not to change `AlertManagement::Alert.count`3326 behaves like does not process incident issues3327 is expected not to receive perform_async(*(any args)) 0 times3328 behaves like does not add an alert management alert event3329 is expected not to change `alert.reload.events`3330 which is acknowledged3331 behaves like resolves an existing alert management alert3332 sets the end time and status3333 behaves like creates expected system notes for alert3334 for recovery_alert, resolve_alert3335 behaves like sends alert notification emails if enabled3336 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3337 with email setting disabled3338 behaves like does not send alert notification emails3339 is expected not to receive new(*(any args)) 0 times3340 behaves like closes related incident if enabled3341 with incident3342 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 13343 without incident3344 is expected not to receive perform_async(*(any args)) 0 times3345 with incident setting disabled3346 behaves like does not close related incident3347 with incident3348 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`3349 without incident3350 is expected not to receive perform_async(*(any args)) 0 times3351 behaves like does not create an alert management alert3352 is expected not to change `AlertManagement::Alert.count`3353 behaves like does not process incident issues3354 is expected not to receive perform_async(*(any args)) 0 times3355 behaves like does not add an alert management alert event3356 is expected not to change `alert.reload.events`3357 which is resolved3358 behaves like alerts service responds with an error and takes no actions3359 is expected to eq :bad_request3360 behaves like does not create an alert management alert3361 is expected not to change `AlertManagement::Alert.count`3362 behaves like does not create a system note for alert3363 is expected not to change `Note.count`3364 behaves like does not process incident issues3365 is expected not to receive perform_async(*(any args)) 0 times3366 behaves like does not send alert notification emails3367 is expected not to receive new(*(any args)) 0 times3368 with overlong payload3369 behaves like alerts service responds with an error and takes no actions3370 is expected to eq :bad_request3371 behaves like does not create an alert management alert3372 is expected not to change `AlertManagement::Alert.count`3373 behaves like does not create a system note for alert3374 is expected not to change `Note.count`3375 behaves like does not process incident issues3376 is expected not to receive perform_async(*(any args)) 0 times3377 behaves like does not send alert notification emails3378 is expected not to receive new(*(any args)) 0 times3379 with inactive integration3380 behaves like alerts service responds with an error and takes no actions3381 is expected to eq :forbidden3382 behaves like does not create an alert management alert3383 is expected not to change `AlertManagement::Alert.count`3384 behaves like does not create a system note for alert3385 is expected not to change `Note.count`3386 behaves like does not process incident issues3387 is expected not to receive perform_async(*(any args)) 0 times3388 behaves like does not send alert notification emails3389 is expected not to receive new(*(any args)) 0 times3390 with invalid token3391 behaves like alerts service responds with an error and takes no actions3392 is expected to eq :unauthorized3393 behaves like does not create an alert management alert3394 is expected not to change `AlertManagement::Alert.count`3395 behaves like does not create a system note for alert3396 is expected not to change `Note.count`3397 behaves like does not process incident issues3398 is expected not to receive perform_async(*(any args)) 0 times3399 behaves like does not send alert notification emails3400 is expected not to receive new(*(any args)) 0 times3401 without HTTP integration3402 behaves like alerts service responds with an error and takes no actions3403 is expected to eq :forbidden3404 behaves like does not create an alert management alert3405 is expected not to change `AlertManagement::Alert.count`3406 behaves like does not create a system note for alert3407 is expected not to change `Note.count`3408 behaves like does not process incident issues3409 is expected not to receive perform_async(*(any args)) 0 times3410 behaves like does not send alert notification emails3411 is expected not to receive new(*(any args)) 0 times3412Gitlab::Database::Migrations::BackgroundMigrationHelpers3413 when the migration is running against the main database3414 behaves like helpers that enqueue background migrations3415 #queue_background_migration_jobs_by_range_at_intervals3416 when the model has an ID column3417-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3418The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:41 UTC."3419 returns the final expected delay3420-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3421The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:42 UTC."3422 returns zero when nothing gets queued3423 when the delay_interval is smaller than the minimum3424-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.3425The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2023-06-02 06:40:42 UTC."3426 sets the delay_interval to the minimum value3427 with batch_size option3428-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3429The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:42 UTC."3430 queues jobs correctly3431 without batch_size option3432-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3433The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:43 UTC."3434 queues jobs correctly3435 with other_job_arguments option3436-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3437The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:43 UTC."3438 queues jobs correctly3439 with initial_delay option3440-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3441The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:43 UTC."3442 queues jobs correctly3443 with track_jobs option3444-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3445The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:44 UTC."3446 creates a record for each job in the database3447 without track_jobs option3448-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3449The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:44 UTC."3450 does not create records in the database3451 when the model specifies a primary_column_name3452-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3453The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:45 UTC."3454 returns the final expected delay3455 when the primary_column_name is a string3456-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3457The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:45 UTC."3458 does not raise error3459 when the primary_column_name is not an integer or a string3460 raises error3461 when the primary_column_name does not exist3462 raises error3463 when the model doesn't have an ID or primary_column_name column3464 raises error (for now)3465 when using Migration[2.0]3466 when restriction is set to gitlab_shared3467 does raise an exception3468 when within transaction3469 does raise an exception3470 #requeue_background_migration_jobs_by_range_at_intervals3471-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3472The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:47 UTC."3473 returns the expected duration3474-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3475The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:48 UTC."3476 queues pending jobs3477 when using Migration[2.0]3478main: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.3479The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:48 UTC."3480 does re-enqueue pending jobs3481 when restriction is set3482 does raise an exception3483 when within transaction3484 does raise an exception3485 when nothing is queued3486-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3487The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:48 UTC."3488 returns expected duration of zero when nothing gets queued3489 with batch_size option3490-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3491The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:48 UTC."3492 returns the expected duration3493-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3494The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:48 UTC."3495 queues pending jobs3496-- Scheduled 0 TestJob jobs with an interval of 600 seconds.3497The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:48 UTC."3498 retrieve jobs in batches3499 with initial_delay option3500-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3501The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-06-02 06:59:48 UTC."3502 returns the expected duration3503-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3504The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-06-02 06:59:49 UTC."3505 queues pending jobs3506 when nothing is queued3507-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3508The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:49 UTC."3509 returns expected duration of zero when nothing gets queued3510 #finalize_background_migration3511 behaves like finalized tracked background migration3512 processed the scheduled sidekiq queue3513 processed the async sidekiq queue3514 removes 'pending' tracked jobs3515 removes 'succeeded' tracked jobs3516 when within transaction3517 does raise an exception3518 when using Migration[2.0]3519 behaves like finalized tracked background migration3520 processed the scheduled sidekiq queue3521 processed the async sidekiq queue3522 removes 'pending' tracked jobs3523 removes 'succeeded' tracked jobs3524 when restriction is set3525 does raise an exception3526 when running migration in reconfigured ActiveRecord::Base context3527 behaves like reconfigures connection stack3528 does restore connection hierarchy3529 when removing all tracked job records3530 behaves like finalized tracked background migration3531 processed the scheduled sidekiq queue3532 processed the async sidekiq queue3533 removes 'pending' tracked jobs3534 removes 'succeeded' tracked jobs3535 behaves like removed tracked jobs3536 removes 'pending' tracked jobs3537 behaves like removed tracked jobs3538 removes 'succeeded' tracked jobs3539 when retaining all tracked job records3540 retains 'succeeded' tracked jobs3541 behaves like finalized background migration3542 processed the scheduled sidekiq queue3543 processed the async sidekiq queue3544 removes 'pending' tracked jobs3545 during retry race condition3546 behaves like finalized tracked background migration3547 processed the scheduled sidekiq queue3548 processed the async sidekiq queue3549 removes 'pending' tracked jobs3550 removes 'succeeded' tracked jobs3551 #migrate_in3552 calls perform_in for the correct worker3553 pushes a context with the current class name as caller_id3554 when a specific coordinator is given3555 uses that coordinator3556 #delete_queued_jobs3557 deletes all queued jobs for the given background migration3558 when the migration is running against the ci database3559 behaves like helpers that enqueue background migrations3560 #queue_background_migration_jobs_by_range_at_intervals3561 when the model has an ID column3562-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3563The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:52 UTC."3564 returns the final expected delay3565-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3566The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:52 UTC."3567 returns zero when nothing gets queued3568 when the delay_interval is smaller than the minimum3569-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.3570The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2023-06-02 06:40:53 UTC."3571 sets the delay_interval to the minimum value3572 with batch_size option3573-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3574The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:53 UTC."3575 queues jobs correctly3576 without batch_size option3577-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3578The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:53 UTC."3579 queues jobs correctly3580 with other_job_arguments option3581-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3582The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:54 UTC."3583 queues jobs correctly3584 with initial_delay option3585-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3586The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:54 UTC."3587 queues jobs correctly3588 with track_jobs option3589-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3590The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:54 UTC."3591 creates a record for each job in the database3592 without track_jobs option3593-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3594The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:55 UTC."3595 does not create records in the database3596 when the model specifies a primary_column_name3597-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3598The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:55 UTC."3599 returns the final expected delay3600 when the primary_column_name is a string3601-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3602The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-06-02 06:46:56 UTC."3603 does not raise error3604 when the primary_column_name is not an integer or a string3605 raises error3606 when the primary_column_name does not exist3607 raises error3608 when the model doesn't have an ID or primary_column_name column3609 raises error (for now)3610 when using Migration[2.0]3611 when restriction is set to gitlab_shared3612 does raise an exception3613 when within transaction3614 does raise an exception3615 #requeue_background_migration_jobs_by_range_at_intervals3616-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3617The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:58 UTC."3618 returns the expected duration3619-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3620The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:58 UTC."3621 queues pending jobs3622 when using Migration[2.0]3623ci: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.3624The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:58 UTC."3625 does re-enqueue pending jobs3626 when restriction is set3627 does raise an exception3628 when within transaction3629 does raise an exception3630 when nothing is queued3631-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3632The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:59 UTC."3633 returns expected duration of zero when nothing gets queued3634 with batch_size option3635-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3636The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:59 UTC."3637 returns the expected duration3638-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3639The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-06-02 06:56:59 UTC."3640 queues pending jobs3641-- Scheduled 0 TestJob jobs with an interval of 600 seconds.3642The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:59 UTC."3643 retrieve jobs in batches3644 with initial_delay option3645-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3646The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-06-02 06:59:59 UTC."3647 returns the expected duration3648-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3649The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-06-02 06:59:59 UTC."3650 queues pending jobs3651 when nothing is queued3652-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3653The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-06-02 06:36:59 UTC."3654 returns expected duration of zero when nothing gets queued3655 #finalize_background_migration3656 behaves like finalized tracked background migration3657 processed the scheduled sidekiq queue3658 processed the async sidekiq queue3659 removes 'pending' tracked jobs3660 removes 'succeeded' tracked jobs3661 when within transaction3662 does raise an exception3663 when using Migration[2.0]3664 behaves like finalized tracked background migration3665 processed the scheduled sidekiq queue3666 processed the async sidekiq queue3667 removes 'pending' tracked jobs3668 removes 'succeeded' tracked jobs3669 when restriction is set3670 does raise an exception3671 when running migration in reconfigured ActiveRecord::Base context3672 behaves like reconfigures connection stack3673 does restore connection hierarchy3674 when removing all tracked job records3675 behaves like finalized tracked background migration3676 processed the scheduled sidekiq queue3677 processed the async sidekiq queue3678 removes 'pending' tracked jobs3679 removes 'succeeded' tracked jobs3680 behaves like removed tracked jobs3681 removes 'pending' tracked jobs3682 behaves like removed tracked jobs3683 removes 'succeeded' tracked jobs3684 when retaining all tracked job records3685 retains 'succeeded' tracked jobs3686 behaves like finalized background migration3687 processed the scheduled sidekiq queue3688 processed the async sidekiq queue3689 removes 'pending' tracked jobs3690 during retry race condition3691 behaves like finalized tracked background migration3692 processed the scheduled sidekiq queue3693 processed the async sidekiq queue3694 removes 'pending' tracked jobs3695 removes 'succeeded' tracked jobs3696 #migrate_in3697 calls perform_in for the correct worker3698 pushes a context with the current class name as caller_id3699 when a specific coordinator is given3700 uses that coordinator3701 #delete_queued_jobs3702 deletes all queued jobs for the given background migration3703 #delete_job_tracking3704 with default status3705 retains 'pending' tracked jobs3706 removes 'succeeded' tracked jobs3707 with explicit status3708 removes 'pending' tracked jobs3709 removes 'succeeded' tracked jobs3710Types::ProjectType3711 is expected to expose permissions using Types::PermissionTypes::Project3712 is expected to eq "Project"3713 is expected to require graphql authorizations :read_project3714 has the expected fields3715 count3716 returns valid projects count3717 container_registry_enabled3718 with `enabled` visibility3719 with non member user3720 returns true3721 with `private` visibility3722 with reporter user3723 returns true3724 with guest user3725 returns false3726 sast_ci_configuration3727 returns the project's sast configuration for global variables3728 returns the project's sast configuration for pipeline variables3729 returns the project's sast configuration for analyzer variables3730 with guest user3731 when project is private3732 returns no configuration3733 when project is public3734 when repository is accessible by everyone3735 returns the project's sast configuration for global variables3736 with non-member user3737 when project is private3738 returns no configuration3739 when project is public3740 when repository is accessible by everyone3741 returns the project's sast configuration for global variables3742 when repository is accessible only by team members3743 returns no configuration3744 with empty repository3745 raises an error3746 issue field3747 is expected to have graphql type Types::IssueType3748 is expected to have graphql resolver #<Class:0x00007f39bba2d568>3749 issues field3750 is expected to have graphql type Types::IssueConnection3751 is expected to have graphql resolver Resolvers::ProjectIssuesResolver3752 merge_request field3753 is expected to have graphql type Types::MergeRequestType3754 is expected to have graphql resolver Resolvers::MergeRequestResolver3755 is expected to have graphql arguments :iid3756 merge_requests field3757 is expected to have graphql type #<Class:0x00007f39ba07c8f8>3758 is expected to have graphql resolver Resolvers::ProjectMergeRequestsResolver3759 is expected to have graphql arguments :iids, :source_branches, :target_branches, :state, :draft, :approved, :labels, :before, :after, :first, :last, :merged_after, :merged_before, :created_after, :created_before, :updated_after, :updated_before, :author_username, :assignee_username, :reviewer_username, :milestone_title, :not, and :sort3760 pipelineCounts field3761 is expected to have graphql type Types::Ci::PipelineCountsType3762 is expected to have graphql resolver Resolvers::Ci::ProjectPipelineCountsResolver3763 snippets field3764 is expected to have graphql type #<Class:0x00007f39bbc17310>3765 is expected to have graphql resolver Resolvers::Projects::SnippetsResolver3766 grafana_integration field3767 is expected to have graphql type Types::GrafanaIntegrationType3768 is expected to have graphql resolver Resolvers::Projects::GrafanaIntegrationResolver3769 environments field3770 is expected to have graphql type #<Class:0x00007f39bb9fb590>3771 is expected to have graphql resolver Resolvers::EnvironmentsResolver3772 environment field3773 is expected to have graphql type Types::EnvironmentType3774 is expected to have graphql resolver #<Class:0x00007f39bba0c160>3775 members field3776 is expected to have graphql type #<Class:0x00007f39d853f1b0>3777 is expected to have graphql resolver Resolvers::ProjectMembersResolver3778 boards field3779 is expected to have graphql type #<Class:0x00007f39d84e5020>3780 jira_imports field3781 is expected to have graphql type #<Class:0x00007f39bbc7ee20>3782 services field3783 is expected to have graphql type #<Class:0x00007f39bbd0f1c8>3784 releases field3785 is expected to have graphql type Types::ReleaseType3786 is expected to have graphql resolver Resolvers::ReleaseResolver3787 release field3788 is expected to have graphql type #<Class:0x00007f39ba214210>3789 is expected to have graphql resolver Resolvers::ReleasesResolver3790 container expiration policy field3791 is expected to have graphql type Types::ContainerExpirationPolicyType3792 packages cleanup policy field3793 is expected to have graphql type Types::Packages::Cleanup::PolicyType3794 terraform state field3795 is expected to have graphql type Types::Terraform::StateType3796 is expected to have graphql resolver #<Class:0x00007f39bbf1b098>3797 terraform states field3798 is expected to have graphql type #<Class:0x00007f39bbf407a8>3799 is expected to have graphql resolver Resolvers::Terraform::StatesResolver3800 timelogs field3801 finds timelogs for project3802 behaves like a GraphQL type with labels3803 has label fields3804 label field3805 is expected to have graphql type Types::LabelType3806 is expected to have graphql arguments :title3807 labels field3808 is expected to have graphql type #<Class:0x00007f39d83b5cb8>3809 is expected to have graphql arguments :search_term and :includeAncestorGroups3810 jira_imports3811 when project has Jira imports3812 retrieves the imports3813 when project does not have Jira imports3814 returns an empty result3815 pipeline_analytics field3816 is expected to have graphql type Types::Ci::AnalyticsType3817 is expected to have graphql resolver Resolvers::ProjectPipelineStatisticsResolver3818 jobs field3819 is expected to have graphql type #<Class:0x00007f39b96887c0>3820 is expected to have graphql arguments :statuses and :with_artifacts3821 ci_template field3822 is expected to have graphql type Types::Ci::TemplateType3823 is expected to have graphql arguments :name3824 ci_job_token_scope field3825 is expected to have graphql type Types::Ci::JobTokenScopeType3826 is expected to have graphql resolver Resolvers::Ci::JobTokenScopeResolver3827 incident_management_timeline_event_tags field3828 is expected to have graphql type Types::IncidentManagement::TimelineEventTagType3829 agent_configurations3830 returns configured agents3831 cluster_agents3832 returns associated cluster agents3833 returns count of cluster agents3834 cluster_agent3835 returns associated cluster agents3836 returns count of agent tokens3837 service_desk_address3838 when a user can admin issues3839 is present3840 when a user can not admin issues3841 is empty3842 branch_rules3843 when a user can read protected branches3844 is present and correct3845 when a user cannot read protected branches3846 is empty3847 timeline_event_tags3848 when user has permissions to read project3849 contains timeline event tags3850 languages3851 when the languages haven't been detected yet3852 returns an empty array3853 when the languages were detected before3854 returns the repository languages3855 visible_forks3856 contains all forks3857 with minimum_access_level DEVELOPER3858 contains forks with developer access3859search/_results3860 page size3861 when search results have a count3862 displays the page size3863 when search results do not have a count3864 does not display the page size3865 when searching notes which contain quotes in markdown3866 renders plain quotes3867 rendering all types of search results3868 when scope is issues3869 when admin mode is enabled3870 renders the click text event tracking attributes3871 when admin mode is disabled3872 does not render the click text event tracking attributes3873 when scope is merge_requests3874 when admin mode is enabled3875 renders the click text event tracking attributes3876 when admin mode is disabled3877 does not render the click text event tracking attributes3878 git blame click tracking3879 when admin mode is enabled3880 renders the click link event tracking attributes3881 when admin mode is disabled3882 does not render the click link event tracking attributes3883 when scope is blobs3884 does not render the sidebar3885 when admin mode is enabled3886 renders the click text event tracking attributes3887 when admin mode is disabled3888 does not render the click text event tracking attributes3889 when scope is notes3890 does not render the sidebar3891 when admin mode is enabled3892 renders the click text event tracking attributes3893 when admin mode is disabled3894 does not render the click text event tracking attributes3895 when scope is wiki_blobs3896 does not render the sidebar3897 when admin mode is enabled3898 renders the click text event tracking attributes3899 when admin mode is disabled3900 does not render the click text event tracking attributes3901 when scope is milestones3902 does not render the sidebar3903 when admin mode is enabled3904 renders the click text event tracking attributes3905 when admin mode is disabled3906 does not render the click text event tracking attributes3907Packages::GroupPackagesFinder3908 #execute3909 group has packages3910 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3911 subgroup has packages3912 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3913 excluding subgroups3914 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3915 permissions3916 role: :anonymous, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3917 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3918 role: :guest, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3919 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3920 role: :reporter, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3921 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3922 role: :developer, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3923 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3924 role: :maintainer, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3925 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3926 role: :anonymous, project_visibility: :public, repository_visibility: :private, packages_returned: :none3927 is expected to contain exactly3928 role: :guest, project_visibility: :public, repository_visibility: :private, packages_returned: :all3929 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3930 role: :reporter, project_visibility: :public, repository_visibility: :private, packages_returned: :all3931 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3932 role: :developer, project_visibility: :public, repository_visibility: :private, packages_returned: :all3933 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3934 role: :maintainer, project_visibility: :public, repository_visibility: :private, packages_returned: :all3935 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3936 role: :anonymous, project_visibility: :private, repository_visibility: :enabled, packages_returned: :none3937 is expected to contain exactly3938 role: :guest, project_visibility: :private, repository_visibility: :enabled, packages_returned: :none3939 is expected to contain exactly3940 role: :reporter, project_visibility: :private, repository_visibility: :enabled, packages_returned: :all3941 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3942 role: :developer, project_visibility: :private, repository_visibility: :enabled, packages_returned: :all3943 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3944 role: :maintainer, project_visibility: :private, repository_visibility: :enabled, packages_returned: :all3945 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3946 role: :anonymous, project_visibility: :private, repository_visibility: :private, packages_returned: :none3947 is expected to contain exactly3948 role: :guest, project_visibility: :private, repository_visibility: :private, packages_returned: :none3949 is expected to contain exactly3950 role: :reporter, project_visibility: :private, repository_visibility: :private, packages_returned: :all3951 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3952 role: :developer, project_visibility: :private, repository_visibility: :private, packages_returned: :all3953 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3954 role: :maintainer, project_visibility: :private, repository_visibility: :private, packages_returned: :all3955 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3956 deploy tokens3957 group deploy token3958 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3959 project deploy token3960 is expected to contain exactly #<Packages::Package id: 7, project_id: 478, created_at: "2023-06-02 06:37:59.351122970 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 678, status: "default", last_downloaded_at: nil>3961 avoid N+1 query3962 avoids N+1 database queries3963 when there are processing packages3964 is expected to contain exactly #<Packages::Package id: 2, project_id: 473, created_at: "2023-06-02 06:37:57.879156367 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 473, created_at: "2023-06-02 06:37:58.225679058 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3965 preload_pipelines3966 preloads pipelines by default3967 set to false3968 does not preload pipelines3969 with package_name3970 as complete name3971 is expected to eq [#<Packages::Package id: 26, project_id: 473, created_at: "2023-06-02 06:38:15.565583030 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>]3972 for fuzzy filter aven3973 is expected to eq [#<Packages::Package id: 26, project_id: 473, created_at: "2023-06-02 06:38:15.565583030 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>]3974 for fuzzy filter mav3975 is expected to eq [#<Packages::Package id: 26, project_id: 473, created_at: "2023-06-02 06:38:15.565583030 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>]3976 for fuzzy filter ave3977 is expected to eq [#<Packages::Package id: 26, project_id: 473, created_at: "2023-06-02 06:38:15.565583030 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>]3978 with exact package_name3979 as complete name3980 is expected to contain exactly #<Packages::Package id: 28, project_id: 473, created_at: "2023-06-02 06:38:16.766170265 +0000", updat..."1.11-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3981 behaves like concerning versionless param3982 is expected not to include #<Packages::Package id: 32, project_id: 473, created_at: "2023-06-02 06:38:17.603516953 +0000", updat...", version: nil, package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3983 with valid include_versionless param3984 is expected to include #<Packages::Package id: 32, project_id: 473, created_at: "2023-06-02 06:38:17.603516953 +0000", updat...", version: nil, package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3985 with empty include_versionless param3986 is expected not to include #<Packages::Package id: 32, project_id: 473, created_at: "2023-06-02 06:38:17.603516953 +0000", updat...", version: nil, package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3987 behaves like concerning package statuses3988 displayable packages3989 is expected not to include #<Packages::Package id: 34, project_id: 473, created_at: "2023-06-02 06:38:18.491038270 +0000", updat... "1.16-SNAPSHOT", package_type: "maven", creator_id: 673, status: "hidden", last_downloaded_at: nil>3990 is expected to include #<Packages::Package id: 36, project_id: 473, created_at: "2023-06-02 06:38:18.796082950 +0000", updat...: "1.18-SNAPSHOT", package_type: "maven", creator_id: 673, status: "error", last_downloaded_at: nil>3991 with status param3992 is expected to contain exactly #<Packages::Package id: 34, project_id: 473, created_at: "2023-06-02 06:38:18.491038270 +0000", updat... "1.16-SNAPSHOT", package_type: "maven", creator_id: 673, status: "hidden", last_downloaded_at: nil>3993 with invalid status param3994 is expected to raise Packages::FinderHelper::InvalidStatusError3995 group has package of all types3996 behaves like with package type3997 is expected to contain exactly #<Packages::Package id: 38, project_id: 473, created_at: "2023-06-02 06:38:19.896877018 +0000", updat..."1.20-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>3998 behaves like with package type3999 is expected to contain exactly #<Packages::Package id: 39, project_id: 473, created_at: "2023-06-02 06:38:19.952925505 +0000", updat... version: "1.0.3", package_type: "npm", creator_id: 673, status: "default", last_downloaded_at: nil>4000 behaves like with package type4001 is expected to contain exactly #<Packages::Package id: 41, project_id: 473, created_at: "2023-06-02 06:38:20.248008428 +0000", updat...ersion: "1.0.0", package_type: "conan", creator_id: 673, status: "default", last_downloaded_at: nil>4002 behaves like with package type4003 is expected to contain exactly #<Packages::Package id: 42, project_id: 473, created_at: "2023-06-02 06:38:20.347820725 +0000", updat...ersion: "1.0.3", package_type: "nuget", creator_id: 673, status: "default", last_downloaded_at: nil>4004 behaves like with package type4005 is expected to contain exactly #<Packages::Package id: 43, project_id: 473, created_at: "2023-06-02 06:38:20.369521960 +0000", updat...version: "1.0.2", package_type: "pypi", creator_id: 673, status: "default", last_downloaded_at: nil>4006 behaves like with package type4007 is expected to contain exactly #<Packages::Package id: 44, project_id: 473, created_at: "2023-06-02 06:38:20.400997853 +0000", updat...ion: "1.0.2", package_type: "composer", creator_id: 673, status: "default", last_downloaded_at: nil>4008 behaves like with package type4009 is expected to contain exactly #<Packages::Package id: 45, project_id: 473, created_at: "2023-06-02 06:38:20.408631641 +0000", updat...sion: "1.0.0", package_type: "generic", creator_id: 673, status: "default", last_downloaded_at: nil>4010 behaves like with package type4011 is expected to contain exactly #<Packages::Package id: 46, project_id: 473, created_at: "2023-06-02 06:38:20.416011129 +0000", updat...sion: "v1.0.2", package_type: "golang", creator_id: 673, status: "default", last_downloaded_at: nil>4012 behaves like with package type4013 is expected to contain exactly #<Packages::Package id: 47, project_id: 473, created_at: "2023-06-02 06:38:20.433142506 +0000", updat...rsion: "1.0-2", package_type: "debian", creator_id: 673, status: "default", last_downloaded_at: nil>4014 behaves like with package type4015 is expected to contain exactly #<Packages::Package id: 48, project_id: 473, created_at: "2023-06-02 06:38:20.589596850 +0000", updat...rsion: "1.2", package_type: "rubygems", creator_id: 673, status: "default", last_downloaded_at: nil>4016 behaves like with package type4017 is expected to contain exactly #<Packages::Package id: 49, project_id: 473, created_at: "2023-06-02 06:38:20.634390049 +0000", updat...ersion: "v1.0.2", package_type: "helm", creator_id: 673, status: "default", last_downloaded_at: nil>4018 behaves like with package type4019 is expected to contain exactly #<Packages::Package id: 50, project_id: 473, created_at: "2023-06-02 06:38:20.659780764 +0000", updat...0.0", package_type: "terraform_module", creator_id: 673, status: "default", last_downloaded_at: nil>4020 behaves like with package type4021 is expected to contain exactly #<Packages::Package id: 51, project_id: 473, created_at: "2023-06-02 06:38:20.680571249 +0000", updat...version: "v1.0.2", package_type: "rpm", creator_id: 673, status: "default", last_downloaded_at: nil>4022 behaves like with package type4023 is expected to contain exactly #<Packages::Package id: 52, project_id: 473, created_at: "2023-06-02 06:38:20.687329868 +0000", updat...ion: "1.0.0", package_type: "ml_model", creator_id: 673, status: "default", last_downloaded_at: nil>4024 group has no packages4025 is expected to be empty4026 group is nil4027 is expected to be empty4028 package type is nil4029 is expected to contain exactly #<Packages::Package id: 54, project_id: 473, created_at: "2023-06-02 06:38:24.240427514 +0000", updat..."1.22-SNAPSHOT", package_type: "maven", creator_id: 673, status: "default", last_downloaded_at: nil>4030 with invalid package_type4031 is expected to raise Packages::FinderHelper::InvalidPackageTypeError4032Ci::Ref4033 is expected to belong to project required: false4034 state machine transitions4035 unlock artifacts transition4036 pipline is locked4037 initial_state: :unknown, action: :succeed!, count: 14038 when transitioning states4039 calls unlock artifacts service4040 initial_state: :unknown, action: :do_fail!, count: 04041 when transitioning states4042 calls unlock artifacts service4043 initial_state: :success, action: :succeed!, count: 14044 when transitioning states4045 calls unlock artifacts service4046 initial_state: :success, action: :do_fail!, count: 04047 when transitioning states4048 calls unlock artifacts service4049 initial_state: :failed, action: :succeed!, count: 14050 when transitioning states4051 calls unlock artifacts service4052 initial_state: :failed, action: :do_fail!, count: 04053 when transitioning states4054 calls unlock artifacts service4055 initial_state: :fixed, action: :succeed!, count: 14056 when transitioning states4057 calls unlock artifacts service4058 initial_state: :fixed, action: :do_fail!, count: 04059 when transitioning states4060 calls unlock artifacts service4061 initial_state: :broken, action: :succeed!, count: 14062 when transitioning states4063 calls unlock artifacts service4064 initial_state: :broken, action: :do_fail!, count: 04065 when transitioning states4066 calls unlock artifacts service4067 initial_state: :still_failing, action: :succeed, count: 14068 when transitioning states4069 calls unlock artifacts service4070 initial_state: :still_failing, action: :do_fail, count: 04071 when transitioning states4072 calls unlock artifacts service4073 pipeline is unlocked4074 does not call unlock artifacts service4075 .ensure_for4076 when pipeline is a branch pipeline4077 behaves like ensures ci_ref4078 when ci_ref already exists4079 returns an existing ci_ref4080 when ci_ref does not exist yet4081 creates a new ci_ref4082 when pipeline is a tag pipeline4083 behaves like ensures ci_ref4084 when ci_ref already exists4085 returns an existing ci_ref4086 when ci_ref does not exist yet4087 creates a new ci_ref4088 when pipeline is a detached merge request pipeline4089 behaves like ensures ci_ref4090 when ci_ref already exists4091 returns an existing ci_ref4092 when ci_ref does not exist yet4093 creates a new ci_ref4094 #last_finished_pipeline_id4095 when there are no finished pipelines4096 returns nil4097 when there are finished pipelines4098 returns the pipeline id4099 when the pipeline a dangling pipeline4100 returns nil4101 #update_status_by!4102 when pipeline status is success or failed4103 pipeline_status: :success, current_ref_status: :unknown, expected_ref_status: :success4104 transitions the status via state machine4105 pipeline_status: :success, current_ref_status: :success, expected_ref_status: :success4106 transitions the status via state machine4107 pipeline_status: :success, current_ref_status: :failed, expected_ref_status: :fixed4108 transitions the status via state machine4109 pipeline_status: :success, current_ref_status: :fixed, expected_ref_status: :success4110 transitions the status via state machine4111 pipeline_status: :success, current_ref_status: :broken, expected_ref_status: :fixed4112 transitions the status via state machine4113 pipeline_status: :success, current_ref_status: :still_failing, expected_ref_status: :fixed4114 transitions the status via state machine4115 pipeline_status: :failed, current_ref_status: :unknown, expected_ref_status: :failed4116 transitions the status via state machine4117 pipeline_status: :failed, current_ref_status: :success, expected_ref_status: :broken4118 transitions the status via state machine4119 pipeline_status: :failed, current_ref_status: :failed, expected_ref_status: :still_failing4120 transitions the status via state machine4121 pipeline_status: :failed, current_ref_status: :fixed, expected_ref_status: :broken4122 transitions the status via state machine4123 pipeline_status: :failed, current_ref_status: :broken, expected_ref_status: :still_failing4124 transitions the status via state machine4125 pipeline_status: :failed, current_ref_status: :still_failing, expected_ref_status: :still_failing4126 transitions the status via state machine4127 when pipeline status is success4128 updates the status4129 when pipeline status is canceled4130 is expected to eq :unknown4131 when pipeline status is skipped4132 behaves like no-op4133 does nothing and returns nil4134 when pipeline status is not complete4135 behaves like no-op4136 does nothing and returns nil4137 when pipeline is not the latest pipeline4138 behaves like no-op4139 does nothing and returns nil4140 when pipeline does not belong to the ci_ref4141 behaves like no-op4142 does nothing and returns nil4143 loose foreign key on ci_refs.project_id4144 behaves like cleanup by a loose foreign key4145 cleans up (delete or nullify) the model4146Environments::StopService4147 #execute4148 with a deployment4149 plays the stop action4150 without stop action4151 stops the environment4152 force option4153 does not play the stop action when forced4154 when an environment has already been stopped4155 does not play the stop action4156 without a deployment4157 stops the environment4158 when the actor is a reporter4159 does not stop the environment4160 #execute_for_branch4161 when environment with review app exists4162 when user has permission to stop environment4163 when environment is associated with removed branch4164 stops environment4165 when environment is associated with different branch4166 does not stop environment4167 when specified branch does not exist4168 does not stop environment4169 when no branch not specified4170 does not stop environment4171 when environment is not stopped4172 does not stop environment4173 when user does not have permission to stop environment4174 when user has no access to manage deployments4175 does not stop environment4176 when branch for stop action is protected4177 does not stop environment4178 when there is no environment associated with review app4179 when user has permission to stop environments4180 does not stop environment4181 when environment does not exist4182 does not raise error4183 #execute_for_merge_request_pipeline4184 has active environment at first4185 when user is a developer4186 stops the active environment4187 and merge request has associated created_environments4188 stops the associated created_environments4189 does not affect environments that are not associated to the merge request4190 when pipeline is a branch pipeline for merge request4191 does not stop the active environment4192 with environment related jobs4193 does not stop environments that was not started by the merge request4194 when user is a reporter4195 does not stop the active environment4196 when pipeline is not associated with environments4197 does not raise exception4198 when pipeline is not a pipeline for merge request4199 does not stop the active environment4200Projects::UnlinkForkService4201 removes the link to the fork network4202 refreshes the forks count cache of the source project4203 with opened merge request on the source project4204 close all pending merge requests4205 does not close merge requests for the project being unlinked4206 when the original project was deleted4207 does not fail when the original project is deleted4208 when given project is a source of forks4209 removes its link to the fork network and updates direct network members4210 refreshes the forks count cache of the given project4211 with opened merge requests from fork back to root project4212 closes all pending merge requests4213 does not close merge requests that do not come from the project being unlinked4214 and is node with a parent4215 refreshes the forks count cache of the parent and the given project4216 removes its link to the fork network and updates direct network members4217 with opened merge requests from and to given project4218 close all pending merge requests4219 does not close merge requests which do not come from the project being unlinked4220 a project with pool repository4221 when unlinked leaves pool repository4222 when given project is not part of a fork network4223 does not raise errors4224Database::BatchedBackgroundMigrationWorker4225 behaves like it runs batched background migration jobs4226 defining the job attributes4227 defines the data_consistency as always4228 defines the feature_category as database4229 defines the idempotency as true4230 .tracking_database4231 does not raise an error4232 overrides the method to return the tracking database4233 .lease_key4234 does not raise an error4235 returns the lease key4236 .enabled?4237 returns true when execute_batched_migrations_on_schedule feature flag is enabled4238 returns false when execute_batched_migrations_on_schedule feature flag is disabled4239 #perform4240 when the base model does not exist4241 does nothing (PENDING: because the base model for main exists)4242 logs a message indicating execution is skipped (PENDING: because the base model for main exists)4243 when the base model does exist4244 when the tracking database is shared4245 does nothing (PENDING: Skipping because database main exists)4246 when the tracking database is not shared4247 when the execute_batched_migrations_on_schedule feature flag is disabled4248 does nothing4249 when the execute_batched_migrations_on_schedule feature flag is enabled4250 when database config is shared4251 does nothing4252 when no active migrations exist4253 does nothing4254 when active migrations exist4255 delegetes the execution to ExecutionWorker4256 executing an entire migration4257 marks the migration record as finished4258 creates job records for each processed batch4259 marks all job records as succeeded4260 updates matching records in the range4261 does not update non-matching records in the range4262 health status4263 puts migration on hold when there is autovaccum activity on related tables4264 puts migration on hold when the pending WAL count is above the limit4265Awardable4266 Associations4267 is expected to have many award_emoji dependent => destroy4268 ClassMethods4269 orders4270 orders on upvotes4271 orders on downvotes4272 #awarded4273 filters by user and emoji name4274 filters by user and any emoji4275 #not_awarded4276 returns notes not awarded by user4277 #upvotes4278 counts the number of upvotes4279 #downvotes4280 counts the number of downvotes4281 #user_can_award?4282 is truthy when the user is allowed to award emoji4283 is falsy when the project is archived4284 querying award_emoji on an Awardable4285 sorts in ascending fashion4286 #grouped_awards4287 default award emojis4288 includes unused thumbs buttons by default4289 doesn't include unused thumbs buttons when disabled in project4290 includes unused thumbs buttons when enabled in project4291 doesn't include unused thumbs buttons in summary4292 includes used thumbs buttons when disabled in project4293 includes used thumbs buttons in summary4294AlertManagement::CreateAlertIssueService4295 #execute4296 when a user is allowed to create an issue4297 checks permissions4298 with alert severity4299 alert_severity: "critical", incident_severity: "critical"4300 sets the correct severity level4301 alert_severity: "high", incident_severity: "high"4302 sets the correct severity level4303 alert_severity: "medium", incident_severity: "medium"4304 sets the correct severity level4305 alert_severity: "low", incident_severity: "low"4306 sets the correct severity level4307 alert_severity: "info", incident_severity: "unknown"4308 sets the correct severity level4309 alert_severity: "unknown", incident_severity: "unknown"4310 sets the correct severity level4311 when the alert is prometheus alert4312 behaves like creating an alert issue4313 creates an issue4314 returns a created issue4315 has a successful status4316 sets alert.issue_id in the same ActiveRecord query execution4317 creates a system note4318 behaves like setting an issue attributes4319 sets issue author to the current user4320 sets the issue title4321 sets the issue description4322 when the alert is generic4323 behaves like creating an alert issue4324 creates an issue4325 returns a created issue4326 has a successful status4327 sets alert.issue_id in the same ActiveRecord query execution4328 creates a system note4329 behaves like setting an issue attributes4330 sets issue author to the current user4331 sets the issue title4332 sets the issue description4333 when alert title matches the default title exactly4334 updates issue title with the IID4335 when the alert title contains the default title4336 does not change issue title4337 when issue cannot be created4338 has an unsuccessful status4339 when alert cannot be updated4340 responds with error4341 when alert already has an attached issue4342 does not create yet another issue4343 responds with error4344 when a user is not allowed to create an issue4345 checks permissions4346 responds with error4347RequireEmailVerification4348 feature_flag_enabled: true, two_factor_enabled: true, oauth_user: true, skipped: true4349 #lock_access!4350 sends Devise unlock instructions unless overridden and always sets locked_at4351 #attempts_exceeded?4352 when failed_attempts is LT overridden amount4353 is expected to eq false4354 when failed_attempts is GTE overridden amount but LT Devise default amount4355 is expected to eq false4356 when failed_attempts is GTE Devise default amount4357 is expected to eq true4358 #lock_expired?4359 when locked shorter ago than Devise default time4360 is expected to eq false4361 when locked longer ago than Devise default time but shorter ago than overriden time4362 is expected to eq true4363 when locked longer ago than overriden time4364 is expected to eq true4365 feature_flag_enabled: true, two_factor_enabled: true, oauth_user: true, skipped: false4366 #lock_access!4367 sends Devise unlock instructions unless overridden and always sets locked_at4368 #attempts_exceeded?4369 when failed_attempts is LT overridden amount4370 is expected to eq false4371 when failed_attempts is GTE overridden amount but LT Devise default amount4372 is expected to eq false4373 when failed_attempts is GTE Devise default amount4374 is expected to eq true4375 #lock_expired?4376 when locked shorter ago than Devise default time4377 is expected to eq false4378 when locked longer ago than Devise default time but shorter ago than overriden time4379 is expected to eq true4380 when locked longer ago than overriden time4381 is expected to eq true4382 feature_flag_enabled: true, two_factor_enabled: true, oauth_user: false, skipped: true4383 #lock_access!4384 sends Devise unlock instructions unless overridden and always sets locked_at4385 #attempts_exceeded?4386 when failed_attempts is LT overridden amount4387 is expected to eq false4388 when failed_attempts is GTE overridden amount but LT Devise default amount4389 is expected to eq false4390 when failed_attempts is GTE Devise default amount4391 is expected to eq true4392 #lock_expired?4393 when locked shorter ago than Devise default time4394 is expected to eq false4395 when locked longer ago than Devise default time but shorter ago than overriden time4396 is expected to eq true4397 when locked longer ago than overriden time4398 is expected to eq true4399 feature_flag_enabled: true, two_factor_enabled: true, oauth_user: false, skipped: false4400 #lock_access!4401 sends Devise unlock instructions unless overridden and always sets locked_at4402 #attempts_exceeded?4403 when failed_attempts is LT overridden amount4404 is expected to eq false4405 when failed_attempts is GTE overridden amount but LT Devise default amount4406 is expected to eq false4407 when failed_attempts is GTE Devise default amount4408 is expected to eq true4409 #lock_expired?4410 when locked shorter ago than Devise default time4411 is expected to eq false4412 when locked longer ago than Devise default time but shorter ago than overriden time4413 is expected to eq true4414 when locked longer ago than overriden time4415 is expected to eq true4416 feature_flag_enabled: true, two_factor_enabled: false, oauth_user: true, skipped: true4417 #lock_access!4418 sends Devise unlock instructions unless overridden and always sets locked_at4419 #attempts_exceeded?4420 when failed_attempts is LT overridden amount4421 is expected to eq false4422 when failed_attempts is GTE overridden amount but LT Devise default amount4423 is expected to eq false4424 when failed_attempts is GTE Devise default amount4425 is expected to eq true4426 #lock_expired?4427 when locked shorter ago than Devise default time4428 is expected to eq false4429 when locked longer ago than Devise default time but shorter ago than overriden time4430 is expected to eq true4431 when locked longer ago than overriden time4432 is expected to eq true4433 feature_flag_enabled: true, two_factor_enabled: false, oauth_user: true, skipped: false4434 #lock_access!4435 sends Devise unlock instructions unless overridden and always sets locked_at4436 #attempts_exceeded?4437 when failed_attempts is LT overridden amount4438 is expected to eq false4439 when failed_attempts is GTE overridden amount but LT Devise default amount4440 is expected to eq false4441 when failed_attempts is GTE Devise default amount4442 is expected to eq true4443 #lock_expired?4444 when locked shorter ago than Devise default time4445 is expected to eq false4446 when locked longer ago than Devise default time but shorter ago than overriden time4447 is expected to eq true4448 when locked longer ago than overriden time4449 is expected to eq true4450 feature_flag_enabled: true, two_factor_enabled: false, oauth_user: false, skipped: true4451 #lock_access!4452 sends Devise unlock instructions unless overridden and always sets locked_at4453 #attempts_exceeded?4454 when failed_attempts is LT overridden amount4455 is expected to eq false4456 when failed_attempts is GTE overridden amount but LT Devise default amount4457 is expected to eq false4458 when failed_attempts is GTE Devise default amount4459 is expected to eq true4460 #lock_expired?4461 when locked shorter ago than Devise default time4462 is expected to eq false4463 when locked longer ago than Devise default time but shorter ago than overriden time4464 is expected to eq true4465 when locked longer ago than overriden time4466 is expected to eq true4467 feature_flag_enabled: true, two_factor_enabled: false, oauth_user: false, skipped: false4468 #lock_access!4469 sends Devise unlock instructions unless overridden and always sets locked_at4470 #attempts_exceeded?4471 when failed_attempts is LT overridden amount4472 is expected to eq false4473 when failed_attempts is GTE overridden amount but LT Devise default amount4474 is expected to eq true4475 when failed_attempts is GTE Devise default amount4476 is expected to eq true4477 #lock_expired?4478 when locked shorter ago than Devise default time4479 is expected to eq false4480 when locked longer ago than Devise default time but shorter ago than overriden time4481 is expected to eq false4482 when locked longer ago than overriden time4483 is expected to eq true4484 feature_flag_enabled: false, two_factor_enabled: true, oauth_user: true, skipped: true4485 #lock_access!4486 sends Devise unlock instructions unless overridden and always sets locked_at4487 #attempts_exceeded?4488 when failed_attempts is LT overridden amount4489 is expected to eq false4490 when failed_attempts is GTE overridden amount but LT Devise default amount4491 is expected to eq false4492 when failed_attempts is GTE Devise default amount4493 is expected to eq true4494 #lock_expired?4495 when locked shorter ago than Devise default time4496 is expected to eq false4497 when locked longer ago than Devise default time but shorter ago than overriden time4498 is expected to eq true4499 when locked longer ago than overriden time4500 is expected to eq true4501 feature_flag_enabled: false, two_factor_enabled: true, oauth_user: true, skipped: false4502 #lock_access!4503 sends Devise unlock instructions unless overridden and always sets locked_at4504 #attempts_exceeded?4505 when failed_attempts is LT overridden amount4506 is expected to eq false4507 when failed_attempts is GTE overridden amount but LT Devise default amount4508 is expected to eq false4509 when failed_attempts is GTE Devise default amount4510 is expected to eq true4511 #lock_expired?4512 when locked shorter ago than Devise default time4513 is expected to eq false4514 when locked longer ago than Devise default time but shorter ago than overriden time4515 is expected to eq true4516 when locked longer ago than overriden time4517 is expected to eq true4518 feature_flag_enabled: false, two_factor_enabled: true, oauth_user: false, skipped: true4519 #lock_access!4520 sends Devise unlock instructions unless overridden and always sets locked_at4521 #attempts_exceeded?4522 when failed_attempts is LT overridden amount4523 is expected to eq false4524 when failed_attempts is GTE overridden amount but LT Devise default amount4525 is expected to eq false4526 when failed_attempts is GTE Devise default amount4527 is expected to eq true4528 #lock_expired?4529 when locked shorter ago than Devise default time4530 is expected to eq false4531 when locked longer ago than Devise default time but shorter ago than overriden time4532 is expected to eq true4533 when locked longer ago than overriden time4534 is expected to eq true4535 feature_flag_enabled: false, two_factor_enabled: true, oauth_user: false, skipped: false4536 #lock_access!4537 sends Devise unlock instructions unless overridden and always sets locked_at4538 #attempts_exceeded?4539 when failed_attempts is LT overridden amount4540 is expected to eq false4541 when failed_attempts is GTE overridden amount but LT Devise default amount4542 is expected to eq false4543 when failed_attempts is GTE Devise default amount4544 is expected to eq true4545 #lock_expired?4546 when locked shorter ago than Devise default time4547 is expected to eq false4548 when locked longer ago than Devise default time but shorter ago than overriden time4549 is expected to eq true4550 when locked longer ago than overriden time4551 is expected to eq true4552 feature_flag_enabled: false, two_factor_enabled: false, oauth_user: true, skipped: true4553 #lock_access!4554 sends Devise unlock instructions unless overridden and always sets locked_at4555 #attempts_exceeded?4556 when failed_attempts is LT overridden amount4557 is expected to eq false4558 when failed_attempts is GTE overridden amount but LT Devise default amount4559 is expected to eq false4560 when failed_attempts is GTE Devise default amount4561 is expected to eq true4562 #lock_expired?4563 when locked shorter ago than Devise default time4564 is expected to eq false4565 when locked longer ago than Devise default time but shorter ago than overriden time4566 is expected to eq true4567 when locked longer ago than overriden time4568 is expected to eq true4569 feature_flag_enabled: false, two_factor_enabled: false, oauth_user: true, skipped: false4570 #lock_access!4571 sends Devise unlock instructions unless overridden and always sets locked_at4572 #attempts_exceeded?4573 when failed_attempts is LT overridden amount4574 is expected to eq false4575 when failed_attempts is GTE overridden amount but LT Devise default amount4576 is expected to eq false4577 when failed_attempts is GTE Devise default amount4578 is expected to eq true4579 #lock_expired?4580 when locked shorter ago than Devise default time4581 is expected to eq false4582 when locked longer ago than Devise default time but shorter ago than overriden time4583 is expected to eq true4584 when locked longer ago than overriden time4585 is expected to eq true4586 feature_flag_enabled: false, two_factor_enabled: false, oauth_user: false, skipped: true4587 #lock_access!4588 sends Devise unlock instructions unless overridden and always sets locked_at4589 #attempts_exceeded?4590 when failed_attempts is LT overridden amount4591 is expected to eq false4592 when failed_attempts is GTE overridden amount but LT Devise default amount4593 is expected to eq false4594 when failed_attempts is GTE Devise default amount4595 is expected to eq true4596 #lock_expired?4597 when locked shorter ago than Devise default time4598 is expected to eq false4599 when locked longer ago than Devise default time but shorter ago than overriden time4600 is expected to eq true4601 when locked longer ago than overriden time4602 is expected to eq true4603 feature_flag_enabled: false, two_factor_enabled: false, oauth_user: false, skipped: false4604 #lock_access!4605 sends Devise unlock instructions unless overridden and always sets locked_at4606 #attempts_exceeded?4607 when failed_attempts is LT overridden amount4608 is expected to eq false4609 when failed_attempts is GTE overridden amount but LT Devise default amount4610 is expected to eq false4611 when failed_attempts is GTE Devise default amount4612 is expected to eq true4613 #lock_expired?4614 when locked shorter ago than Devise default time4615 is expected to eq false4616 when locked longer ago than Devise default time but shorter ago than overriden time4617 is expected to eq true4618 when locked longer ago than overriden time4619 is expected to eq true4620Gitlab::Git::Branch4621 is expected to be a kind of Array4622 .find4623 when finding branch via branch name4624 returns a branch object4625 when the branch is already a branch4626 returns a branch object4627 #cache_key4628 returns a cache key that changes based on changeable values4629 #size4630 is expected to eq 844631 first branch4632 is expected to eq "'test'"4633 is expected to start with "e56497b"4634 master branch4635 is expected to start with "b83d6e391c22777fca1ed3012fce84f633d7fed0"4636 with active, stale and future branches4637 examine if the branch is active or stale4638 #active?4639 is expected to be falsey4640 is expected to be truthy4641 is expected to be truthy4642 #stale?4643 is expected to be truthy4644 is expected to be falsey4645 is expected to be falsey4646 #state4647 is expected to eq :stale4648 is expected to eq :active4649 is expected to eq :active4650Packages::Nuget::SearchService4651 #execute4652 with project4653 behaves like handling all the conditions4654 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4655 with a smaller per page count4656 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4657 with 0 per page count4658 is expected to contain exactly4659 with a negative per page count4660 is expected to raise ArgumentError with "negative per_page"4661 with a padding4662 is expected to contain exactly #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4663 with a too big padding4664 is expected to contain exactly4665 with a negative padding4666 is expected to raise ArgumentError with "negative padding"4667 with search term4668 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4669 with nil search term4670 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4671 with empty search term4672 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4673 with non-displayable packages4674 is expected to contain exactly #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4675 with prefix search term4676 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4677 with suffix search term4678 is expected to contain exactly #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4679 with pre release packages4680 including them4681 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 69, project_id: 689, created_at: "2023-06-02 06:41:12.941580359 +0000", updat...: "3.2.1-alpha", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4682 excluding them4683 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4684 when mixed with release versions4685 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 70, project_id: 689, created_at: "2023-06-02 06:41:13.315274179 +0000", updat...ersion: "3.2.1", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4686 with subgroup4687 behaves like handling all the conditions4688 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4689 with a smaller per page count4690 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4691 with 0 per page count4692 is expected to contain exactly4693 with a negative per page count4694 is expected to raise ArgumentError with "negative per_page"4695 with a padding4696 is expected to contain exactly #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4697 with a too big padding4698 is expected to contain exactly4699 with a negative padding4700 is expected to raise ArgumentError with "negative padding"4701 with search term4702 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4703 with nil search term4704 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4705 with empty search term4706 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4707 with non-displayable packages4708 is expected to contain exactly #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4709 with prefix search term4710 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4711 with suffix search term4712 is expected to contain exactly #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4713 with pre release packages4714 including them4715 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 71, project_id: 689, created_at: "2023-06-02 06:41:16.162094993 +0000", updat...: "3.2.1-alpha", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4716 excluding them4717 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4718 when mixed with release versions4719 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 72, project_id: 689, created_at: "2023-06-02 06:41:16.611040460 +0000", updat...ersion: "3.2.1", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4720 with group4721 behaves like handling all the conditions4722 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4723 with a smaller per page count4724 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4725 with 0 per page count4726 is expected to contain exactly4727 with a negative per page count4728 is expected to raise ArgumentError with "negative per_page"4729 with a padding4730 is expected to contain exactly #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4731 with a too big padding4732 is expected to contain exactly4733 with a negative padding4734 is expected to raise ArgumentError with "negative padding"4735 with search term4736 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4737 with nil search term4738 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4739 with empty search term4740 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4741 with non-displayable packages4742 is expected to contain exactly #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 66, project_id: 689, created_at: "2023-06-02 06:41:10.089073136 +0000", updat...rsion: "1.0.15", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4743 with prefix search term4744 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4745 with suffix search term4746 is expected to contain exactly #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4747 with pre release packages4748 including them4749 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 73, project_id: 689, created_at: "2023-06-02 06:41:19.438786974 +0000", updat...: "3.2.1-alpha", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4750 excluding them4751 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4752 when mixed with release versions4753 is expected to contain exactly #<Packages::Package id: 55, project_id: 689, created_at: "2023-06-02 06:41:09.903257000 +0000", updat...ersion: "1.0.4", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 56, project_id: 689, created_at: "2023-06-02 06:41:09.923729990 +0000", updat...ersion: "1.0.5", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 57, project_id: 689, created_at: "2023-06-02 06:41:09.940802230 +0000", updat...ersion: "1.0.6", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 58, project_id: 689, created_at: "2023-06-02 06:41:09.957945629 +0000", updat...ersion: "1.0.7", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 59, project_id: 689, created_at: "2023-06-02 06:41:09.975369859 +0000", updat...ersion: "1.0.8", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 60, project_id: 689, created_at: "2023-06-02 06:41:09.992451689 +0000", updat...ersion: "1.0.9", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 61, project_id: 689, created_at: "2023-06-02 06:41:10.010144668 +0000", updat...rsion: "1.0.10", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 62, project_id: 689, created_at: "2023-06-02 06:41:10.026331417 +0000", updat...rsion: "1.0.11", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 63, project_id: 689, created_at: "2023-06-02 06:41:10.042072767 +0000", updat...rsion: "1.0.12", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 64, project_id: 689, created_at: "2023-06-02 06:41:10.057744137 +0000", updat...rsion: "1.0.13", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 65, project_id: 689, created_at: "2023-06-02 06:41:10.073323016 +0000", updat...rsion: "1.0.14", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 74, project_id: 689, created_at: "2023-06-02 06:41:19.853479233 +0000", updat...ersion: "3.2.1", package_type: "nuget", creator_id: 933, status: "default", last_downloaded_at: nil>4754Projects::MoveAccessService4755 #execute4756 when both projects are in the same namespace4757 does not refresh project owner authorized projects4758 behaves like move the accesses4759 moves the accesses4760 rollbacks if an exception is raised4761 when projects are in different namespaces4762 refreshes both project owner authorized projects4763 behaves like move the accesses4764 moves the accesses4765 rollbacks if an exception is raised4766 when remove_remaining_elements is false4767 does not remove remaining memberships4768 does not remove remaining group links4769 does not remove remaining authorizations4770BulkImports::Projects::Pipelines::MergeRequestsPipeline4771 #run4772 imports a merge request4773 merge request state4774 when mr is closed4775 imported mr as closed4776 when mr is merged4777 imported mr as merged4778 source & target project4779 has the new project as target4780 has the new project as source4781 when source/target projects differ4782 has no source4783 when diff_head_sha is present4784 has the new project as source4785 resource label events4786 restores resource label events4787 award emoji4788 has award emoji4789 notes4790 imports mr note4791 has award emoji4792 does not import note_html4793 system note metadata4794 restores system note metadata4795 diffs4796 imports merge request diff4797 has the correct data for merge request latest_merge_request_diff4798 imports diff files4799 diff commits4800 imports diff commits4801 assigns committer and author details to diff commits4802 assigns the correct commit users to diff commits4803 labels4804 imports labels4805 milestone4806 imports milestone4807 user assignments4808 assignees4809 imports mr assignees4810 approvals4811 imports mr approvals4812 reviewers4813 imports mr reviewers4814Projects::ImportExport::ExportService4815 #execute4816 saves the version4817 saves the avatar4818 saves the models4819 saves the uploads4820 saves the repo (PENDING: No reason given)4821 saves the wiki repo4822 saves the design repo4823 saves the lfs objects4824 saves the snippets4825 avoids N+1 when exporting project members4826 when all saver services succeed4827 logs a successful message4828 saves the project in the file system4829 calls the after export strategy4830 when the upload fails4831 notifies the user of an error4832 when after export strategy fails4833 removes the remaining exported data4834 notifies the user4835 notifies logger4836 when saving services fail4837 removes the remaining exported data4838 notifies the user4839 notifies logger4840 does not call the export strategy4841 when one of the savers fail unexpectedly4842 removes the remaining exported data4843 when user does not have admin_project permission4844 fails4845MembersFinder4846 behaves like #execute4847 returns members for project and parent groups4848 returns owners and maintainers4849 returns active users and excludes invited users4850 does not return members of parent group with minimal access4851 includes only non-invite members if user do not have amdin permissions on project4852 includes invited members if user have admin permissions on project4853 includes nested group members if asked4854 returns only members of project if asked4855 returns only inherited members of project if asked4856 returns only inherited members of a personal project4857 returns the members.access_level when the user is invited4858 returns the highest access_level for the user4859 returns searched members if requested4860 returns members sorted by id_desc4861 with :shared_into_ancestors4862 when :shared_into_ancestors is included in the relations4863 includes members of groups invited into ancestors of project's group4864 when :shared_into_ancestors is not included in the relations4865 does not include members of groups invited into ancestors of project's group4866 when :invited_groups is passed4867 behaves like with invited_groups param4868 includes all the invited_groups members including members inherited from ancestor groups4869 includes all the invited_groups members4870 excludes group_members not visible to the user4871 when the user is a member of invited group and ancestor groups4872 returns the highest access_level for the user limited by project_group_link.group_access4873Gitlab::Database::TablesLocker4874 # order random4875 when running on multiple databases4876 #lock_writes4877 behaves like lock tables4878 locks table in schema gitlab_ci and database main (PENDING: Skipping because ci is shared or doesn't not exist)4879 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4880 behaves like lock tables4881 locks table in schema gitlab_main and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4882 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4883 behaves like lock tables4884 locks table in schema gitlab_main_clusterwide and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4885 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4886 behaves like unlock tables4887 unlocks table in schema gitlab_main_clusterwide and database main (PENDING: Skipping because ci is shared or doesn't not exist)4888 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4889 behaves like unlock tables4890 unlocks table in schema gitlab_main and database main (PENDING: Skipping because ci is shared or doesn't not exist)4891 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4892 behaves like unlock tables4893 unlocks table in schema gitlab_ci and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4894 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4895 behaves like unlock tables4896 unlocks table in schema gitlab_shared and database main (PENDING: Skipping because ci is shared or doesn't not exist)4897 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4898 behaves like unlock tables4899 unlocks table in schema gitlab_shared and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4900 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4901 behaves like unlock tables4902 unlocks table in schema gitlab_internal and database main (PENDING: Skipping because ci is shared or doesn't not exist)4903 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4904 behaves like unlock tables4905 unlocks table in schema gitlab_internal and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4906 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4907 behaves like unlock partitions4908 unlocks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4909 behaves like lock partitions4910 locks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4911 behaves like unlock partitions4912 unlocks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4913 behaves like lock partitions4914 locks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4915 #unlock_writes4916 behaves like unlock tables4917 unlocks table in schema gitlab_ci and database main (PENDING: Skipping because ci is shared or doesn't not exist)4918 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4919 behaves like unlock tables4920 unlocks table in schema gitlab_main and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4921 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4922 behaves like unlock tables4923 unlocks table in schema gitlab_main and database main (PENDING: Skipping because ci is shared or doesn't not exist)4924 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4925 behaves like unlock tables4926 unlocks table in schema gitlab_ci and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4927 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4928 behaves like unlock tables4929 unlocks table in schema gitlab_shared and database main (PENDING: Skipping because ci is shared or doesn't not exist)4930 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4931 behaves like unlock tables4932 unlocks table in schema gitlab_shared and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4933 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4934 behaves like unlock tables4935 unlocks table in schema gitlab_internal and database main (PENDING: Skipping because ci is shared or doesn't not exist)4936 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4937 behaves like unlock tables4938 unlocks table in schema gitlab_internal and database ci (PENDING: Skipping because ci is shared or doesn't not exist)4939 returns list of actions (PENDING: Skipping because ci is shared or doesn't not exist)4940 behaves like unlock partitions4941 unlocks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4942 behaves like unlock partitions4943 unlocks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4944 behaves like unlock partitions4945 unlocks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4946 behaves like unlock partitions4947 unlocks the partition (PENDING: Skipping because ci is shared or doesn't not exist)4948 when not including partitions4949 does not include any table partitions (PENDING: Skipping because ci is shared or doesn't not exist)4950 does not include any detached partitions (PENDING: Skipping because ci is shared or doesn't not exist)4951 when running in dry_run mode4952 passes dry_run flag to LockWritesManager (PENDING: Skipping because ci is shared or doesn't not exist)4953 when running on multiple shared databases4954 does not lock any tables if the ci database is shared with main database (PENDING: Skipping because ci is shared or doesn't not exist)4955 when running on single database4956 #lock_writes4957 does not lock any table4958 behaves like unlock tables4959 unlocks table in schema gitlab_main and database main4960 returns list of actions4961 behaves like unlock tables4962 unlocks table in schema gitlab_ci and database main4963 returns list of actions4964 behaves like unlock tables4965 unlocks table in schema gitlab_main_clusterwide and database main4966 returns list of actions4967 behaves like unlock tables4968 unlocks table in schema gitlab_shared and database main4969 returns list of actions4970 behaves like unlock tables4971 unlocks table in schema gitlab_internal and database main4972 returns list of actions4973 #unlock_writes4974 does call Gitlab::Database::LockWritesManager.unlock_writes4975 when geo database is configured4976 does not lock table in geo database (PENDING: Geo database is not configured)4977BulkImports::Projects::Pipelines::SnippetsRepositoryPipeline4978 extractor4979 is a GraphqlExtractor with Graphql::GetSnippetRepositoryQuery4980 #run4981 when a snippet is not matched4982 behaves like skippable snippet4983 does not create snippet repo4984 when httpUrlToRepo is empty4985 behaves like skippable snippet4986 does not create snippet repo4987 when a snippet matches4988 when snippet url is valid4989 creates snippet repo4990 updates snippets statistics4991 fetches snippet repo from url4992 when url is invalid4993 when not a real URL4994 behaves like skippable snippet4995 does not create snippet repo4996 when scheme is blocked4997 logs the failure4998 behaves like skippable snippet4999 does not create snippet repo5000 when snippet is invalid5001 does not leave a hanging SnippetRepository behind5002 does not call UpdateStatisticsService5003 behaves like skippable snippet5004 does not create snippet repo5005Gitlab::Ci::Pipeline::Seed::Stage5006 #size5007 returns a number of jobs in the stage5008 #attributes5009 returns hash attributes of a stage5010 #included?5011 when it contains builds seeds5012 is expected to be included5013 when it does not contain build seeds5014 is expected not to be included5015 #seeds5016 returns build seeds5017 returns build seeds including valid attributes5018 filters seeds using only/except policies5019 when a legacy trigger exists5020 returns build seeds including legacy trigger5021 when a ref is protected5022 returns protected builds5023 when a ref is not protected5024 returns unprotected builds5025 #seeds_names5026 returns all job names5027 returns a set5028 #seeds_errors5029 returns all errors from seeds5030 #to_resource5031 builds a valid stage object with all builds5032 can not be persisted without explicit pipeline assignment5033Gitlab::Pagination::Keyset::Paginator5034 pagination5035 when per_page is greater than the record count5036 is expected to eq [#<Project id:746 namespace661/project-749>>, #<Project id:749 namespace664/project-752>>, #<Project ...ect-751>>, #<Project id:747 namespace662/project-750>>, #<Project id:750 namespace665/project-753>>]5037 is expected not to have next page5038 is expected not to have previous page5039 has no next and previous cursor values5040 when 0 records are returned5041 is expected to be empty5042 is expected not to have next page5043 is expected not to have previous page5044 when page size is smaller than the record count5045 is expected to eq [#<Project id:746 namespace661/project-749>>, #<Project id:749 namespace664/project-752>>]5046 is expected to have next page5047 is expected not to have previous page5048 has next page cursor5049 does not have previous page cursor5050 when on the second page5051 is expected to eq [#<Project id:748 namespace663/project-751>>, #<Project id:747 namespace662/project-750>>]5052 is expected to have next page5053 is expected to have previous page5054 and then going back to the first page5055 is expected to eq [#<Project id:746 namespace661/project-749>>, #<Project id:749 namespace664/project-752>>]5056 is expected to have next page5057 is expected not to have previous page5058 when jumping to the last page5059 is expected to eq [#<Project id:747 namespace662/project-750>>, #<Project id:750 namespace665/project-753>>]5060 is expected not to have next page5061 is expected to have previous page5062 when paginating backwards5063 is expected to eq [#<Project id:749 namespace664/project-752>>, #<Project id:748 namespace663/project-751>>]5064 is expected to have next page5065 is expected to have previous page5066 when jumping to the first page5067 is expected to eq [#<Project id:746 namespace661/project-749>>, #<Project id:749 namespace664/project-752>>]5068 is expected to have next page5069 is expected not to have previous page5070 default keyset direction parameter5071 exposes the direction parameter in the cursor5072 when unsupported order is given5073 raises error5074 when use_union_optimization option is true and ordering by two columns5075 uses UNION queries5076Gitlab::Ci::Variables::Builder5077 #scoped_variables5078 is expected to be an instance of Gitlab::Ci::Variables::Collection5079 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SL...=>"user406"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones1106"}]5080 variables ordering5081 returns variables in order depending on resource hierarchy5082 overrides duplicate keys depending on resource hierarchy5083 with schedule variables5084 includes schedule variables5085 with release variables5086 includes release variables5087 when there is no release5088 does not include release variables5089 #user_variables5090 with user5091 is expected to eq {"GITLAB_USER_EMAIL"=>"user1101@example.org", "GITLAB_USER_ID"=>"1064", "GITLAB_USER_LOGIN"=>"user406", "GITLAB_USER_NAME"=>"Sidney Jones1106"}5092 without user5093 is expected to be empty5094 #kubernetes_variables5095 is expected to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}5096 calls the GenerateKubeconfigService with the correct arguments5097 includes #deployment_variables and merges the KUBECONFIG values5098 generated config is invalid5099 is expected not to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}5100 when environment is not nil5101 passes the environment when generating the KUBECONFIG5102 #deployment_variables5103 environment is nil5104 is expected to be empty5105 #secret_instance_variables5106 when ref is branch5107 when ref is protected5108 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399b4fc550 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f399b4f7f78 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5109 when ref is not protected5110 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399bd37648 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5111 when ref is tag5112 when ref is protected5113 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399c867608 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f399c867040 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5114 when ref is not protected5115 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399d1698a0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5116 when ref is merge request5117 when ref is protected5118 does not return protected variables as it is not supported for merge request pipelines5119 when ref is not protected5120 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399f107cc0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5121 #secret_group_variables5122 when ref is branch5123 when ref is protected5124 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f3999a0ed10 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f3999a0e220 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5125 when ref is not protected5126 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f397ed865a8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5127 when ref is tag5128 when ref is protected5129 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f39d4d916c8 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f39d4d8b8e0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5130 when ref is not protected5131 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f39bf6f3588 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5132 when ref is merge request5133 when ref is protected5134 does not return protected variables as it is not supported for merge request pipelines5135 when ref is not protected5136 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f39b757b938 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5137 variables memoization5138 with protected environments5139 memoizes the result by environment5140 with unprotected environments5141 memoizes the result by environment5142 #secret_project_variables5143 when ref is branch5144 when ref is protected5145 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f39a09dc9f8 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f39a09d6f30 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5146 when ref is not protected5147 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f3998b896c8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5148 when ref is tag5149 when ref is protected5150 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399b00eac0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f399b00e340 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5151 when ref is not protected5152 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f39987873b8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5153 when ref is merge request5154 when ref is protected5155 does not return protected variables as it is not supported for merge request pipelines5156 when ref is not protected5157 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f399c892fb0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5158 variables memoization5159 with protected environments5160 memoizes the result by environment5161 with unprotected environments5162 memoizes the result by environment5163 #config_variables5164 without project5165 is expected to eq 05166 without repository5167 is expected to be nil5168 with protected variables5169 does not include protected variables5170 with scoped variables5171 does not include scoped variables5172 variables ordering5173 returns variables in order depending on resource hierarchy5174 overrides duplicate keys depending on resource hierarchy5175EventCollection5176 # order random5177 #to_a5178 returns no events if no projects are passed5179 with project events5180 returns an Array of all event types when no filter is passed5181 includes the wiki page events when using to_a5182 includes the design events5183 includes the wiki page events when using all_project_events5184 applies a limit to the number of events5185 can paginate through events5186 returns an empty Array when crossing the maximum page number5187 allows filtering of events using an EventFilter, returning single item5188 allows filtering of events using an EventFilter, returning several items5189 allows filtering of events using an EventFilter, returning pushes5190 when there are multiple issue events5191 includes work item events too5192 with group events5193 includes also group events5194 does not include events from inaccessible groups5195 with pagination through events5196 returns recent groups and projects events5197 with project exclusive event types5198 filter: "push", event: lazy { create(:push_event, project: project) }5199 queries only project events5200 filter: "merged", event: lazy { create(:event, :merged, project: project, target: merge_request) }5201 queries only project events5202 filter: "team", event: lazy { create(:event, :joined, project: project) }5203 queries only project events5204 filter: "issue", event: lazy { create(:closed_issue_event, project: project) }5205 queries only project events5206 filter: "designs", event: lazy { create(:design_event, project: project) }5207 queries only project events5208CreateCommitSignatureWorker5209 when a signature is found5210 calls Gitlab::Gpg::Commit#signature5211 can recover from exception and continue the signature process5212 calls Gitlab::X509::Commit#signature5213 can recover from exception and continue the X509 signature process5214 behaves like an idempotent worker5215 is labeled as idempotent5216 performs multiple times sequentially without raising an exception5217 handles when a string is passed in for the commit SHA5218 creates a signature once5219 when Commit is not found5220 does not raise errors5221 when Project is not found5222 does not raise errors5223 does not call Gitlab::Gpg::Commit#signature5224 does not call Gitlab::X509::Commit#signature5225 fetching signatures5226 X5095227 performs a single query for commit signatures5228 PGP5229 performs a single query for commit signatures5230Gitlab::Redis::Sessions5231 behaves like redis_new_instance_shared_examples5232 behaves like redis_shared_examples5233 .config_file_name5234 when there is no config file anywhere5235 is expected to be nil5236 .store5237 with old format5238 behaves like redis store5239 instantiates Redis::Store5240 with the namespace5241 uses specified namespace5242 with new format5243 behaves like redis store5244 instantiates Redis::Store5245 with the namespace5246 uses specified namespace5247 .params5248 withstands mutation5249 when url contains unix socket reference5250 with old format5251 returns path key instead5252 with new format5253 returns path key instead5254 when url is host based5255 with old format5256 returns hash with host, port, db, and password5257 with new format5258 rails_env: "development", host: "development-host"5259 returns hash with host, port, db, and password5260 rails_env: "test", host: "test-host"5261 returns hash with host, port, db, and password5262 rails_env: "production", host: "production-host"5263 returns hash with host, port, db, and password5264 with redis cluster format5265 rails_env: "development", host: "development-master"5266 returns hash with cluster and password5267 rails_env: "test", host: "test-master"5268 returns hash with cluster and password5269 rails_env: "production", host: "production-master"5270 returns hash with cluster and password5271 .url5272 withstands mutation5273 when yml file with env variable5274 reads redis url from env variable5275 .version5276 returns a version5277 .with5278 when running on single-threaded runtime5279 instantiates a connection pool with size 55280 when running on multi-threaded runtime5281 instantiates a connection pool with a size based on the concurrency of the worker5282 when there is no config at all5283 can run an empty block5284 #db5285 with old format5286 returns the correct db5287 with new format5288 returns the correct db5289 with cluster-mode5290 returns the correct db5291 #sentinels5292 when sentinels are defined5293 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5294 returns an array of hashes with host and port keys5295 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5296 returns an array of hashes with host and port keys5297 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5298 returns an array of hashes with host and port keys5299 when sentinels are not defined5300 returns nil5301 when cluster is defined5302 returns nil5303 #sentinels?5304 when sentinels are defined5305 returns true5306 when sentinels are not defined5307 is expected to eq nil5308 when cluster is defined5309 returns false5310 #raw_config_hash5311 returns old-style single url config in a hash5312 returns cluster config without url key in a hash5313 #fetch_config5314 raises an exception when the config file contains invalid yaml5315 when redis.yml exists5316 uses config/redis.yml5317 when no config file exsits5318 returns nil5319 when resque.yml exists5320 returns the config from resque.yml5321 #fetch_config5322 when redis.yml exists5323 when the fallback has a redis.yml entry5324 is expected to eq {"fallback redis.yml"=>123}5325 and an instance config file exists5326 is expected to eq {"instance specific file"=>456}5327 and the instance has a redis.yml entry5328 is expected to eq {"instance redis.yml"=>789}5329 when no redis config file exsits5330 returns nil5331 when resque.yml exists5332 returns the config from resque.yml5333 redis instance used in connection pool5334 uses ::Redis instance5335 #store5336 instantiates an instance of Redis::Store5337Clusters::AgentTokens::CreateService5338 #execute5339 does not create a new token due to user permissions5340 returns permission errors5341 with user permissions5342 creates a new token5343 returns success status5344 returns token information5345 creates an activity event5346 when params are invalid5347 does not create a new token5348 does not create an activity event5349 returns validation errors5350 when the active agent tokens limit is reached5351 returns an error5352 when cluster_agents_limit_tokens_created feature flag is disabled5353 creates a new token5354 returns success status5355Atlassian::JiraConnect::Client5356 .generate_update_sequence_id5357 returns unix time in microseconds as integer5358 #send_info5359 calls more specific methods as appropriate5360 only calls methods that we need to call5361 raises an argument error if there is nothing to send (probably a typo?)5362 #handle_response5363 when the response is 200 OK5364 yields to the block5365 when the response is 202 accepted5366 yields to the block5367 when the response is 400 bad request5368 extracts the errors messages5369 when the response is 401 forbidden5370 reports that our JWT is wrong5371 when the response is 4035372 reports that the App is misconfigured5373 when the response is 4135374 extracts the errors messages5375 when the response is 4295376 reports that we exceeded the rate limit5377 when the response is 5035378 reports that the service is unavailable5379 when the response is anything else5380 reports that this was unanticipated5381 #request_body_schema5382 with valid JSON request body5383 returns the request body5384 with invalid JSON request body5385 reports the invalid json5386 #store_deploy_info5387 calls the API with auth headers5388 only sends information about relevant MRs5389 does not call the API if there is nothing to report5390 when there are errors5391 reports the errors5392 #store_ff_info5393 calls the API with auth headers5394 only sends information about relevant MRs5395 does not call the API if there is nothing to report5396 when there are errors5397 reports the errors5398 #store_build_info5399 calls the API with auth headers5400 only sends information about relevant MRs5401 does not call the API if there is nothing to report5402 avoids N+1 database queries (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/292818)5403 when there are errors5404 reports the errors5405 #store_dev_info5406 calls the API with auth headers5407 avoids N+1 database queries5408 #user_info5409 with a successful response5410 returns a JiraUser instance5411 with a failed response5412 returns nil5413Gitlab::ImportExport::Group::RelationTreeRestorer5414 restores group tree5415 logs top-level relation creation5416 relation object saving5417 when relation object is new5418 when relation object has invalid subrelations5419 logs invalid subrelations5420 when relation object is persisted5421 when relation object is invalid5422 saves import failure with nested errors5423gitlab:user_management tasks5424 disable_project_and_group_creation5425 returns output info5426 with users5427 in the group5428 behaves like updates proper users5429 updates members5430 does not update other users5431 in the descendant groups5432 behaves like updates proper users5433 updates members5434 does not update other users5435 in the children projects5436 behaves like updates proper users5437 updates members5438 does not update other users5439Gitlab::Ci::Variables::Builder::Pipeline5440 # order random5441 #predefined_variables5442 includes all predefined variables in a valid order5443 when the pipeline is running for a tag5444 includes all predefined variables in a valid order5445 when merge request is present5446 when pipeline for merge request is created5447 exposes merge request pipeline variables5448 exposes diff variables5449 without assignee5450 does not expose assignee variable5451 without milestone5452 does not expose milestone variable5453 without labels5454 does not expose labels variable5455 when pipeline on branch is created5456 when a merge request is created5457 when user has access to project5458 merge request references are returned matching the pipeline5459 when user does not have access to project5460 CI_OPEN_MERGE_REQUESTS is not returned5461 when no a merge request is created5462 CI_OPEN_MERGE_REQUESTS is not returned5463 with merged results5464 exposes merge request pipeline variables5465 exposes diff variables5466 when source is external pull request5467 exposes external pull request pipeline variables5468 variable CI_KUBERNETES_ACTIVE5469 when pipeline.has_kubernetes_active? is true5470 is included with value 'true'5471 when pipeline.has_kubernetes_active? is false5472 is not included5473 variable CI_GITLAB_FIPS_MODE5474 when FIPS flag is enabled5475 is included with value 'true'5476 when FIPS flag is disabled5477 is not included5478 when tag is not found5479 does not expose tag variables5480 without a commit5481 does not expose commit variables5482Metrics::Dashboard::Annotations::DeleteService5483 .execute5484 with specific environment5485 with anonymous user5486 behaves like prevented annotation deletion5487 returns error response5488 does not change db state5489 with maintainer user5490 behaves like executed annotation deletion5491 returns success response5492 annotation failed to delete5493 returns error response5494 with specific cluster5495 with anonymous user5496 behaves like prevented annotation deletion5497 returns error response5498 does not change db state5499 with maintainer user5500 behaves like executed annotation deletion5501 returns success response5502 with owner user5503 behaves like executed annotation deletion5504 returns success response5505Git::TagPushService5506 Push tags5507 flushes general cached data5508 does not flush the tags cache5509 Hooks5510 run on a tag5511 delegates to Git::TagHooksService5512 run on a branch5513 does nothing5514 artifacts5515 create tag5516 does nothing5517 update tag5518 does nothing5519 delete tag5520 unlocks artifacts5521Ml::ExperimentTracking::CandidateRepository5522 # order random5523 #add_param!5524 adds a new param5525 when name missing5526 throws RecordInvalid5527 when param was already added5528 throws RecordInvalid5529 #by_eid5530 is expected to eq #<Ml::Candidate id: 1, created_at: "2023-06-02 06:44:00.558750712 +0000", updated_at: "2023-06-02 06:...nil, eid: "d70e4f25-5a71-417a-8b6a-592ef4be1b9e", project_id: 813, internal_id: 1, ci_build_id: nil>5531 when iid does not exist5532 is expected to be nil5533 when iid belongs to a different project5534 is expected to be nil5535 #add_params5536 adds the parameters5537 if parameter misses key5538 does not throw and does not add5539 if parameter misses value5540 does not throw and does not add5541 if parameter repeated do5542 does not throw and adds only the first of each kind5543 #add_tag!5544 adds a new tag5545 when name missing5546 throws RecordInvalid5547 when tag was already added5548 throws RecordInvalid5549 when tag starts with gitlab.5550 calls HandleCandidateGitlabMetadataService5551 #update5552 is expected to be truthy5553 when end_time is missing5554 is expected to be truthy5555 when status is wrong5556 fails assigning the value5557 when status is missing5558 is expected to be truthy5559 #add_metric!5560 adds a new metric5561 when name missing5562 does not add metric5563 #add_metrics5564 adds the metrics5565 when metrics have repeated keys5566 adds all of them5567 #create!5568 creates the candidate5569 creates with tag5570 when name is passed as tag5571 ignores if name is not nil5572 when name is nil5573 sets the mlflow.runName as candidate name5574 #add_tags5575 adds the tags5576 if tags misses key5577 does throw and does not add5578 if tag misses value5579 does throw and does not add5580 if tag repeated5581 does not throw and adds only the first of each kind5582 when tags is nil5583 does not handle gitlab tags5584Gitlab::Search::RecentMergeRequests5585 behaves like search recent items5586 #log_view5587 adds the item to the recent items5588 removes an item when it exceeds the size items_limit5589 expires the items after expires_after5590 does not include results logged for another user5591 #search5592 matches partial text in the item title5593 returns results sorted by recently viewed5594 does not leak items you no longer have access to5595 limits results to 5 items5596MergeRequests::MarkReviewerReviewedService5597 #execute5598 invalid permissions5599 behaves like failed service execution5600 returns an error5601 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated5602 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times5603 reviewer does not exist5604 behaves like failed service execution5605 returns an error5606 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated5607 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times5608 reviewer exists5609 returns success5610 updates reviewers state5611 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated5612 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:121 namespace740/project-833!1>) 1 time5613Gitlab::Regex5614 .debian_architecture_regex5615 is expected to match "amd64"5616 is expected to match "kfreebsd-i386"5617 is expected not to match ""5618 is expected not to match "-a"5619 is expected not to match "+a"5620 is expected not to match ".a"5621 is expected not to match "_a"5622 is expected not to match "a+b"5623 is expected not to match "a.b"5624 is expected not to match "a_b"5625 is expected not to match "a~"5626 is expected not to match "aé"5627 is expected not to match "AMD64"5628 is expected not to match "Amd64"5629 is expected not to match "aMD64"5630 behaves like regex rejecting path traversal5631 is expected not to match "a../b"5632 is expected not to match "a..%2fb"5633 is expected not to match "a%2e%2e%2fb"5634 is expected not to match "a%2e%2e/b"5635 .npm_package_name_regex5636 is expected to match "@scope/package"5637 is expected to match "unscoped-package"5638 is expected not to match "@first-scope@second-scope/package"5639 is expected not to match "scope-without-at-symbol/package"5640 is expected not to match "@not-a-scoped-package"5641 is expected not to match "@scope/sub/package"5642 is expected not to match "@scope/../../package"5643 is expected not to match "@scope%2e%2e%2fpackage"5644 is expected not to match "@%2e%2e%2f/package"5645 capturing group5646 extracts the scope name for @scope/package5647 extracts the scope name for unscoped-package5648 extracts the scope name for @not-a-scoped-package5649 extracts the scope name for @scope/sub/package5650 extracts the scope name for @inv@lid-scope/package5651 .debian_distribution_regex5652 is expected to match "buster"5653 is expected to match "buster-updates"5654 is expected to match "Debian10.5"5655 is expected not to match "jessie/updates"5656 is expected not to match "hé"5657 behaves like regex rejecting path traversal5658 is expected not to match "a../b"5659 is expected not to match "a..%2fb"5660 is expected not to match "a%2e%2e%2fb"5661 is expected not to match "a%2e%2e/b"5662 .debian_component_regex5663 is expected to match "main"5664 is expected to match "non-free"5665 is expected not to match "non/free"5666 is expected not to match "hé"5667 behaves like regex rejecting path traversal5668 is expected not to match "a../b"5669 is expected not to match "a..%2fb"5670 is expected not to match "a%2e%2e%2fb"5671 is expected not to match "a%2e%2e/b"5672Packages::Conan::FileMetadatum5673 relationships5674 is expected to belong to package_file required: false5675 validations5676 is expected to validate that :package_file cannot be empty/falsy5677 is expected to validate that :recipe_revision cannot be empty/falsy5678 #recipe_revision5679 is expected to allow :recipe_revision to be ‹"0"›5680 is expected not to allow :recipe_revision to be ‹nil›5681 #package_revision_for_package_file5682 recipe file5683 is valid with empty value5684 is invalid with value5685 package file5686 is valid with default value5687 is invalid with non-default value5688 #conan_package_reference_for_package_file5689 recipe file5690 is valid with empty value5691 is invalid with value5692 package file5693 is valid with acceptable value5694 is invalid with invalid value5695 is invalid when nil5696 #conan_package_type5697 validates package of type conan5698Gitlab::ImportExport::SnippetsRepoRestorer5699 bundle a snippet Git repo5700 when export has no snippet repository bundle5701 behaves like imports snippet repositories5702 is expected not to be empty5703 when export has snippet repository bundles and snippets without them5704 behaves like imports snippet repositories5705 is expected not to be empty5706 when export has only snippet bundles5707 behaves like imports snippet repositories5708 is expected not to be empty5709 when any of the snippet repositories cannot be created5710 continues processing other snippets and returns false5711DiscussionDiffFileEntity5712 when there is no merge request5713 behaves like diff file discussion entity5714 behaves like diff file base entity5715 exposes essential attributes5716 when diff file does not have a blob and content sha5717 exposes some attributes as nil5718 when there is a merge request5719 exposes additional attributes5720 exposes no diff lines5721 behaves like diff file discussion entity5722 behaves like diff file base entity5723 exposes essential attributes5724 when diff file does not have a blob and content sha5725 exposes some attributes as nil5726Analytics::CycleAnalytics::IssueStageEvent5727 is expected to validate that :stage_event_hash_id cannot be empty/falsy5728 is expected to validate that :issue_id cannot be empty/falsy5729 is expected to validate that :group_id cannot be empty/falsy5730 is expected to validate that :project_id cannot be empty/falsy5731 is expected to validate that :start_event_timestamp cannot be empty/falsy5732 has state enum5733 behaves like StageEventModel5734 .upsert_data5735 inserts the data5736 does not produce duplicate rows5737 inserts the data correctly5738 scopes5739 filters by stage_event_hash_id5740 filters by project_id5741 filters by group_id5742 filters by author_id5743 filters by assignee5744 filters by milestone_id5745 start_event_timestamp filtering5746 when range is given5747 when specifying upper bound5748 when specifying the lower bound5749 end_event_timestamp filtering5750 when range is given5751 when specifying upper bound5752 when specifying the lower bound5753 #total_time5754 calcualtes total time from the start_event_timestamp and end_event_timestamp columns5755 when total time is calculated in SQL as an extra column5756 returns the SQL calculated time5757Gitlab::Usage::Metrics::Instrumentations::DatabaseMetric5758 #value5759 calculates a correct result5760 does not cache the result of start and finish5761 with metric options specified with custom batch_size5762 calls metric with customized batch_size5763 calculates a correct result5764 with start and finish not called5765 calculates a correct result5766 with availability defined5767 responds to #available? properly5768 with availability not defined5769 responds to #available? properly5770 with cache_start_and_finish_as called5771 caches using the key name passed5772 with estimate_batch_distinct_count5773 with block passed to operation5774 calls the block passing HLL buckets as an argument5775 with custom timestamp column5776 calculates a correct result5777 with default timestamp column5778 calculates a correct result5779 with 7 days time frame5780 calculates a correct result5781 with additional parameters passed via options5782 calculates a correct result5783 with unimplemented operation method used5784 raises an error5785layouts/header/_new_dropdown5786 with group-specific links5787 as a Group owner5788 has a "New project" link5789 has a "New subgroup" link5790 invite members item5791 behaves like invite member selector5792 with ability to invite members5793 is expected to have visible css ".js-invite-members-trigger"5794 without ability to invite members5795 is expected not to have visible css ".js-invite-members-trigger"5796 with project-specific links5797 as a Project owner5798 has a "New issue" link5799 has a "New merge request" link5800 has a "New snippet" link5801 as a Project guest5802 has no "New merge request" link5803 has no "New snippet" link5804 invite members item5805 behaves like invite member selector5806 with ability to invite members5807 is expected to have visible css ".js-invite-members-trigger"5808 without ability to invite members5809 is expected not to have visible css ".js-invite-members-trigger"5810 with global links5811 has a "New project" link5812 has a "New group" link5813 has a "New snippet" link5814 when partial exists in a menu item5815 renders the menu item partial without rendering invite modal partial5816 when the user is not allowed to do anything5817 is nil5818Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildFinished5819 behaves like value stream analytics event5820 is expected to be a kind of String5821 is expected to be a kind of Symbol5822 is expected to include ApplicationRecord(abstract)5823 is expected to respond to #timestamp_projection5824 is expected to respond to #html_description5825 is expected to be a kind of Array5826 #apply_query_customization5827 expects an ActiveRecord::Relation object as argument and returns a modified version of it5828 #hash_code5829 returns a hash that uniquely identifies an event5830 does not differ when the same object is built with the same params5831 behaves like LEFT JOIN-able value stream analytics event5832 can use the event as LEFT JOIN5833 when looking at the record with data5834 contains the timestamp expression5835 when looking at the record without data5836 returns nil for the timestamp expression5837Gitlab::Audit::Type::Definition5838 # order random5839 .stream_only?5840 returns true for a stream only event5841 returns false for an event that is saved to database5842 .load_all!5843 when there are no audit event types a list of definitions is empty5844 when there's a single audit event type it properly loads them5845 when the same audit event type is stored multiple times raises exception5846 when one of the YAMLs is invalid it does raise exception5847 .defined?5848 returns true if definition for the event name exists5849 returns false if definition for the event name exists5850 .get5851 when audit event type is not defined5852 returns nil5853 when audit event type is defined5854 returns an instance of Gitlab::Audit::Type::Definition5855 returns the properties as defined for that audit event type5856 .load_from_file5857 properly loads a definition from file5858 for missing file5859 raises exception5860 for invalid definition5861 raises exception5862 .event_names5863 returns names of event types as string array5864 .paths5865 returns at least one path5866 .definitions5867 loads the definitions for all the audit event types5868 #key5869 returns a symbol from name5870 #validate!5871 param: :path, value: "audit_event/types/invalid.yml", result: /Audit event type 'group_deploy_token_destroyed' has an invalid path/5872 is expected to raise /Audit event type 'group_deploy_token_destroyed' has an invalid path/5873 param: :name, value: nil, result: /property '\/name' is not of type: string/5874 is expected to raise /property '\/name' is not of type: string/5875 param: :description, value: nil, result: /property '\/description' is not of type: string/5876 is expected to raise /property '\/description' is not of type: string/5877 param: :introduced_by_issue, value: nil, result: /property '\/introduced_by_issue' is not of type: string/5878 is expected to raise /property '\/introduced_by_issue' is not of type: string/5879 param: :introduced_by_mr, value: nil, result: /property '\/introduced_by_mr' is not of type: string/5880 is expected to raise /property '\/introduced_by_mr' is not of type: string/5881 param: :feature_category, value: nil, result: /property '\/feature_category' is not of type: string/5882 is expected to raise /property '\/feature_category' is not of type: string/5883 param: :milestone, value: nil, result: /property '\/milestone' is not of type: string/5884 is expected to raise /property '\/milestone' is not of type: string/5885 when both saved_to_database and streamed are false5886 raises an exception5887 validate that all the YAML definitions matches the audit event type schema5888 successfully loads all the YAML definitions5889JiraConnectInstallation5890 associations5891 is expected to have many subscriptions class_name => JiraConnectSubscription5892 validations5893 is expected to validate that :client_key cannot be empty/falsy5894 is expected to validate that :client_key is case-sensitively unique5895 is expected to validate that :shared_secret cannot be empty/falsy5896 is expected to validate that :base_url cannot be empty/falsy5897 is expected to allow :base_url to be ‹"https://test.atlassian.net"›5898 is expected not to allow :base_url to be ‹"not/a/url"›5899 is expected to allow :instance_url to be ‹"https://test.atlassian.net"›5900 is expected not to allow :instance_url to be ‹"not/a/url"›5901 scopes5902 .for_project5903 returns installations with subscriptions for project5904 returns distinct installations5905 .direct_installations5906 is expected to contain exactly #<JiraConnectInstallation id: 2, client_key: [FILTERED], encrypted_shared_secret: [FILTERED], encrypt...ret_iv: [FILTERED], base_url: "https://sample.atlassian.net", instance_url: nil, shared_secret: nil>5907 .proxy_installations5908 is expected to be empty5909 with an installation on a self-managed instance5910 is expected to contain exactly #<JiraConnectInstallation id: 7, client_key: [FILTERED], encrypted_shared_secret: [FILTERED], encrypt... "https://sample.atlassian.net", instance_url: "http://self-managed-gitlab.com", shared_secret: nil>5911 #oauth_authorization_url5912 is expected to eq "http://test.host"5913 with instance_url5914 is expected to eq "https://gitlab.example.com"5915 audience_url5916 is expected to eq nil5917 when proxy installation5918 is expected to eq "https://example.com/-/jira_connect"5919 audience_installed_event_url5920 is expected to eq nil5921 when proxy installation5922 is expected to eq "https://example.com/-/jira_connect/events/installed"5923 audience_uninstalled_event_url5924 is expected to eq nil5925 when proxy installation5926 is expected to eq "https://example.com/-/jira_connect/events/uninstalled"5927 proxy?5928 is expected to eq false5929 when instance_url is present5930 is expected to eq true5931Gitlab::Ci::Status::Build::Stop5932 #label5933 is expected to eq "manual stop action"5934 action details5935 #has_action?5936 when user is allowed to update build5937 is expected to have action5938 when user is not allowed to update build5939 is expected not to have action5940 #action_path5941 is expected to include "229/play"5942 #action_icon5943 is expected to eq "stop"5944 #action_title5945 is expected to eq "Stop"5946 #action_button_title5947 is expected to eq "Stop this environment"5948 .matches?5949 when build is playable5950 when build stops an environment5951 is a correct match5952 when build does not stop an environment5953 does not match5954 when build is not playable5955 does not match5956 #status_tooltip5957 does not override status status_tooltip5958 #badge_tooltip5959 does not override status badge_tooltip5960Integrations::MattermostSlashCommands5961 behaves like Integrations::BaseSlashCommands5962 Associations5963 is expected to respond to #token5964 default values5965 is expected to eq :chat5966 #valid_token?5967 when the token is empty5968 is false5969 when there is a token5970 accepts equal tokens5971 #trigger5972 no token is passed5973 returns nil5974 with a token passed5975 no user can be found5976 when no url can be generated5977 responds with the authorize url5978 when an auth url can be generated5979 generates the url5980 when the user is authenticated5981 triggers the command5982 when user is blocked5983 behaves like blocks command execution5984 is expected to match "you do not have access to the GitLab project"5985 when user is deactivated5986 behaves like blocks command execution5987 is expected to match "your account has been deactivated by your administrator"5988 Mattermost API5989 #configure5990 when the request succeeds5991 saves the integration5992 saves the token5993 when an error is received5994 shows error messages5995 #list_teams5996 when the request succeeds5997 returns a list of teams5998 when an error is received5999 shows error messages6000Gitlab::Seeders::Ci::Runner::RunnerFleetSeeder6001 # order random6002 #seed6003 creates expected hierarchy6004 when number of group runners exceeds plan limit6005The plan limits for group runners is set to 1 runners. You should raise the plan limits to avoid errors during runner creation by running the following command in the Rails console:6006Plan.default.actual_limits.update!(ci_registered_group_runners: 20)6007 is expected to be nil6008The plan limits for group runners is set to 1 runners. You should raise the plan limits to avoid errors during runner creation by running the following command in the Rails console:6009Plan.default.actual_limits.update!(ci_registered_group_runners: 20)6010 does not change runner count6011 when number of project runners exceeds plan limit6012The plan limits for project runners is set to 1 runners. You should raise the plan limits to avoid errors during runner creation by running the following command in the Rails console:6013Plan.default.actual_limits.update!(ci_registered_project_runners: 20)6014 is expected to be nil6015The plan limits for project runners is set to 1 runners. You should raise the plan limits to avoid errors during runner creation by running the following command in the Rails console:6016Plan.default.actual_limits.update!(ci_registered_project_runners: 20)6017 does not change runner count6018WorkItems::TaskListReferenceReplacementService6019 #execute6020 when task mardown spans a single line6021 creates description version note6022 behaves like successful work item task reference replacement service6023 is expected to be success6024 replaces the original issue markdown description with new work item reference6025 when task mardown spans multiple lines6026 behaves like successful work item task reference replacement service6027 is expected to be success6028 replaces the original issue markdown description with new work item reference6029 when description does not contain a task6030 behaves like failing work item task reference replacement service6031 is expected to be error6032 returns an error message6033 when description is empty6034 behaves like failing work item task reference replacement service6035 is expected to be error6036 returns an error message6037 when line_number_start is lower than 16038 behaves like failing work item task reference replacement service6039 is expected to be error6040 returns an error message6041 when line_number_end is lower than line_number_start6042 behaves like failing work item task reference replacement service6043 is expected to be error6044 returns an error message6045 when lock_version is older than current6046 behaves like failing work item task reference replacement service6047 is expected to be error6048 returns an error message6049 when work item is stale before updating6050 behaves like failing work item task reference replacement service6051 is expected to be error6052 returns an error message6053Gitlab::Ci::Badge::Release::LatestRelease6054 #entity6055 describes latest release6056 #tag6057 returns latest release tag for the project ordered using release_at6058 #metadata6059 returns correct metadata6060 #template6061 returns correct template6062Integrations::Ewm6063 Validations6064 when integration is active6065 is expected to validate that :project_url cannot be empty/falsy6066 is expected to validate that :issues_url cannot be empty/falsy6067 is expected to validate that :new_issue_url cannot be empty/falsy6068 behaves like issue tracker integration URL attribute6069 is expected to allow :project_url to be ‹"https://example.com"›6070 is expected not to allow :project_url to be ‹"example.com"›6071 is expected not to allow :project_url to be ‹"ftp://example.com"›6072 is expected not to allow :project_url to be ‹"herp-and-derp"›6073 behaves like issue tracker integration URL attribute6074 is expected to allow :issues_url to be ‹"https://example.com"›6075 is expected not to allow :issues_url to be ‹"example.com"›6076 is expected not to allow :issues_url to be ‹"ftp://example.com"›6077 is expected not to allow :issues_url to be ‹"herp-and-derp"›6078 behaves like issue tracker integration URL attribute6079 is expected to allow :new_issue_url to be ‹"https://example.com"›6080 is expected not to allow :new_issue_url to be ‹"example.com"›6081 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›6082 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›6083 when integration is inactive6084 is expected not to validate that :project_url cannot be empty/falsy6085 is expected not to validate that :issues_url cannot be empty/falsy6086 is expected not to validate that :new_issue_url cannot be empty/falsy6087 ReferencePatternValidation6088 extracts bug6089 extracts task6090 extracts work item6091 extracts workitem6092 extracts defect6093 extracts rtcwi6094Gitlab::Ci::Pipeline::Seed::Build::Cache6095 #attributes6096 with cache:key6097 is expected to include {:key => "a-key", :paths => ["vendor/ruby"]}6098 with cache:key as a symbol6099 is expected to include {:key => "a_key", :paths => ["vendor/ruby"]}6100 with cache:key:files6101 with existing files6102 behaves like version and gemfile files6103 without a prefix6104 builds a string key with an index and file names as a prefix6105 with files starting with ./6106 behaves like version and gemfile files6107 without a prefix6108 builds a string key with an index and file names as a prefix6109 with no files6110 behaves like default key6111 without a prefix6112 uses default key with an index and file names as a prefix6113 with files ending with /6114 behaves like default key6115 without a prefix6116 uses default key with an index and file names as a prefix6117 with new line in filenames6118 behaves like default key6119 without a prefix6120 uses default key with an index and file names as a prefix6121 with missing files6122 behaves like default key6123 without a prefix6124 uses default key with an index and file names as a prefix6125 with directories6126 with directory6127 behaves like foo/bar directory key6128 without a prefix6129 builds a string key with an index and file names as a prefix6130 with directory ending in slash6131 behaves like foo/bar directory key6132 without a prefix6133 builds a string key with an index and file names as a prefix6134 with directories ending in slash star6135 behaves like foo/bar directory key6136 without a prefix6137 builds a string key with an index and file names as a prefix6138 with cache:key:prefix6139 without files6140 adds prefix to default key6141 with existing files6142 adds prefix key6143 with missing files6144 adds prefix to default key6145 with cache:fallback_keys6146 is expected to include {:key => "ruby-branch-key", :paths => ["vendor/ruby"], :fallback_keys => ["ruby-default"]}6147 with all cache option keys6148 is expected to include {:key => "a-key", :paths => ["vendor/ruby"], :untracked => true, :policy => "push", :unprotect => true, :when => "on_success", :fallback_keys => ["default-ruby"]}6149 with unknown cache option keys6150 is expected to raise ArgumentError with message matching /unknown_key/6151ErrorTracking::IssueUpdateService6152 #execute6153 with authorized user6154 when update_issue returns success6155 returns the response6156 updates any related issue6157 clears the reactive cache6158 with related issue and resolving6159 closes the issue6160 when issue gets closed6161 creates a system note6162 returns a response with closed issue6163 when issue is already closed6164 does not call the close issue service6165 does not create system note6166 when status is not resolving6167 does not call the close issue service6168 does not create system note6169 when update_issue returns error6170 returns the error6171 with integrated error tracking6172 resolves the error and responds with expected format6173 with unauthorized user6174 returns error6175 with error tracking disabled6176 raises error6177Gitlab::Search::RecentIssues6178 behaves like search recent items6179 #log_view6180 adds the item to the recent items6181 removes an item when it exceeds the size items_limit6182 expires the items after expires_after6183 does not include results logged for another user6184 #search6185 matches partial text in the item title6186 returns results sorted by recently viewed6187 does not leak items you no longer have access to6188 limits results to 5 items6189Groups::UserGroupsFinder6190 #execute6191 returns all groups where the user is a direct member6192 when target_user is nil6193 is expected to be empty6194 when current_user is nil6195 is expected to be empty6196 when permission is :create_projects6197 is expected to contain exactly #<Group id:2424 @root-group/a-public-maintainer>, #<Group id:2425 @a-public-owner>, #<Group id:2422 @root-group/b-private-maintainer>, and #<Group id:2423 @root-group/c-public-developer>6198 behaves like user group finder searching by name or path6199 is expected to contain exactly #<Group id:2424 @root-group/a-public-maintainer> and #<Group id:2422 @root-group/b-private-maintainer>6200 when searching for a full path (including parent)6201 is expected to contain exactly #<Group id:2422 @root-group/b-private-maintainer>6202 when search keywords include the parent route6203 is expected to match [#<Group id:2424 @root-group/a-public-maintainer>, #<Group id:2423 @root-group/c-public-developer>]6204 when permission is :import_projects6205 is expected to contain exactly #<Group id:2424 @root-group/a-public-maintainer>, #<Group id:2425 @a-public-owner>, and #<Group id:2422 @root-group/b-private-maintainer>6206 behaves like user group finder searching by name or path6207 is expected to contain exactly #<Group id:2424 @root-group/a-public-maintainer> and #<Group id:2422 @root-group/b-private-maintainer>6208 when searching for a full path (including parent)6209 is expected to contain exactly #<Group id:2422 @root-group/b-private-maintainer>6210 when search keywords include the parent route6211 is expected to match [#<Group id:2424 @root-group/a-public-maintainer>]6212 when permission is :transfer_projects6213 is expected to contain exactly #<Group id:2424 @root-group/a-public-maintainer>, #<Group id:2425 @a-public-owner>, and #<Group id:2422 @root-group/b-private-maintainer>6214 behaves like user group finder searching by name or path6215 is expected to contain exactly #<Group id:2424 @root-group/a-public-maintainer> and #<Group id:2422 @root-group/b-private-maintainer>6216 when searching for a full path (including parent)6217 is expected to contain exactly #<Group id:2422 @root-group/b-private-maintainer>6218 when search keywords include the parent route6219 is expected to match [#<Group id:2424 @root-group/a-public-maintainer>]6220Ci::InstanceVariable6221 is expected to includes the Ci::Maskable module6222 is expected to validate that :key is case-sensitively unique, producing a custom validation error on failure6223 is expected to validate that the length of :value is at most 10000, producing a custom validation error on failure6224 behaves like CI variable6225 is expected to includes the Ci::HasVariable module6226 strips whitespaces when assigning key6227 can convert to runner variable6228 variable type6229 defines variable types6230 defaults variable type to env_var6231 supports variable type file6232 behaves like includes Limitable concern6233 #exceeds_limits?6234 without plan limits configured6235 is expected to eq false6236 without plan limits configured6237 is expected to eq false6238 with an existing model6239 is expected to eq true6240 validations6241 is expected to be a kind of Limitable6242 without plan limits configured6243 can create new models6244 with plan limits configured6245 can create new models6246 with an existing model6247 cannot create new models exceeding the plan limits6248 #value6249 without application limit6250 when value is over the limit6251 raises a database level error6252 when value is under the limit6253 does not raise database level error6254 .unprotected6255 when variable is protected6256 returns nothing6257 when variable is not protected6258 returns the variable6259 .all_cached6260 is expected to contain exactly #<Ci::InstanceVariable id: 14, variable_type: "env_var", masked: false, protected: true, key: [FILTER...s0N9OspZ7HzQmd7JLMxuPj7essKF18\n", encrypted_value_iv: "+6nSmGbeDodGszkD\n", raw: false, value: nil> and #<Ci::InstanceVariable id: 13, variable_type: "env_var", masked: false, protected: false, key: [FILTE...GpnZHy4mswSJhi2Lj/Oo6qaiMJpqu2\n", encrypted_value_iv: "vGPeiba3JQVC7nN6\n", raw: false, value: nil>6261 memoizes the result6262 removes scopes6263 resets the cache when records are deleted6264 resets the cache when records are inserted6265 .unprotected_cached6266 is expected to contain exactly #<Ci::InstanceVariable id: 16, variable_type: "env_var", masked: false, protected: false, key: [FILTE...RX08NwxGefl4O+AtegPuKhfEOjZ7+S\n", encrypted_value_iv: "6GKpXk/S/kkAQG21\n", raw: false, value: nil>6267 memoizes the result6268Gitlab::Utils::Override6269 # order random6270 #override6271 when instance is klass.new(0)6272 when STATIC_VERIFICATION is set6273 when subject is a class6274 behaves like checking as intended6275 checks ok for overriding method6276 checks ok for overriding method using negative arity6277 raises NotImplementedError when it is not overriding anything6278 raises NotImplementedError when overriding a method with different arity6279 when subject is a module, and class is prepending it6280 behaves like checking as intended6281 checks ok for overriding method6282 checks ok for overriding method using negative arity6283 raises NotImplementedError when it is not overriding anything6284 raises NotImplementedError when overriding a method with different arity6285 when subject is a module, and class is including it6286 behaves like checking as intended, nothing was overridden6287 raises NotImplementedError because it is not overriding it6288 raises NotImplementedError when it is not overriding anything6289 when ActiveSupport::Concern and class_methods are used6290 when it is defining a overriding method6291 verifies6292 when it is not defining a overriding method6293 raises NotImplementedError6294 when STATIC_VERIFICATION is not set6295 when subject is a class6296 behaves like nothing happened6297 does not complain when it is overriding something6298 does not complain when it is not overriding anything6299 when subject is a module, and class is prepending it6300 behaves like nothing happened6301 does not complain when it is overriding something6302 does not complain when it is not overriding anything6303 when subject is a module, and class is including it6304 does not complain when it is overriding something6305 does not complain when it is not overriding anything6306 when instance is klass6307 when STATIC_VERIFICATION is set6308 when subject is a module, and class is prepending it6309 behaves like checking as intended6310 checks ok for overriding method6311 checks ok for overriding method using negative arity6312 raises NotImplementedError when it is not overriding anything6313 raises NotImplementedError when overriding a method with different arity6314 when subject is a module, and class is extending it6315 behaves like checking as intended, nothing was overridden6316 raises NotImplementedError because it is not overriding it6317 raises NotImplementedError when it is not overriding anything6318Gitlab::Config::Loader::Yaml6319 when max yaml size and depth are set in ApplicationSetting6320 uses ApplicationSetting values rather than the defaults6321 when yaml syntax is correct6322 #valid?6323 returns true6324 #load!6325 returns a valid hash6326 when yaml syntax is incorrect6327 #valid?6328 returns false6329 #load!6330 raises error6331 when there is an unknown alias6332 #initialize6333 raises FormatError6334 when yaml config is empty6335 #valid?6336 returns false6337 #load_raw!6338 raises error6339 when yaml size is too large6340 #valid?6341 returns false6342 #load!6343 raises FormatError6344 when yaml has cyclic data structure6345 #valid?6346 returns false6347 #load!6348 raises FormatError6349 #load_raw!6350 loads keys as strings6351 #load!6352 symbolizes keys6353 #blank?6354 when the loaded YAML is empty6355 returns true6356 when the loaded YAML has content6357 returns false6358Gitlab::SidekiqConfig6359 .workers6360 includes all workers6361 .cron_jobs6362 renames job_class to class and removes incomplete jobs6363 .worker_queues6364 includes all queues6365 .workers_for_all_queues_yml6366 returns a tuple with FOSS workers first6367 .all_queues_yml_outdated?6368 returns true if the YAML file does not match the application code6369 returns false if the YAML file matches the application code6370 .queues_for_sidekiq_queues_yml6371 returns queues and weights, aggregating namespaces with the same weight6372 .sidekiq_queues_yml_outdated?6373 returns true if the YAML file does not match the application code6374 returns false if the YAML file matches the application code6375 .worker_queue_mappings6376 returns the worker class => queue mappings based on the current routing configuration6377 .current_worker_queue_mappings6378 returns worker queue mappings that have queues in the current Sidekiq options6379 .routing_queues6380 returns worker queue mappings that have queues in the current Sidekiq options6381Tooling::FindChanges6382 # order random6383 #execute6384 when there is no changed files file6385 raises an ArgumentError6386 when fetching changes from API6387 calls GitLab API to retrieve the MR diff6388 when fetching changes from changed files6389 does not call GitLab API to retrieve the MR diff6390 when there are no file changes6391 writes an empty string to changed files file6392 when there are file changes6393 does not change the changed files file6394 when there is no matched tests file6395 does not add frontend fixtures mapping to the changed files file6396 when there is no frontend fixture files6397 does not add frontend fixtures mapping to the changed files file6398 when the matched tests file and frontend fixture files are provided6399 when there are no mappings for the matched tests6400 does not change the changed files file6401 when there are available mappings for the matched tests6402 when the changed files file is initially empty6403 adds the frontend fixtures mappings to the changed files file6404 when the changed files file is initially not empty6405 adds the frontend fixtures mappings to the changed files file6406 #only_allowed_files_changed6407 when fetching changes from changed files6408 when changed files contain only *.js changes6409 returns true6410 when changed files contain both *.vue and *.js changes6411 returns true6412 when changed files contain not allowed changes6413 returns false6414 when fetching changes from API6415 when a file is passed as an argument6416 calls GitLab API6417 when there are no file changes6418 returns false6419 when there are changes to files other than JS files6420 returns false6421 when there are changes only to JS files6422 returns true6423 #initialize6424 when fetching changes from unknown6425 raises an ArgumentError6426Gitlab::Usage::Metrics::Query6427 .count6428 returns the raw SQL6429 does not mix a nil column with keyword arguments6430 removes order from passed relation6431 returns valid raw SQL for join relations6432 returns valid raw SQL for join relations with joined columns6433 .distinct_count6434 returns the raw SQL6435 does not mix a nil column with keyword arguments6436 removes order from passed relation6437 returns valid raw SQL for join relations6438 returns valid raw SQL for join relations with joined columns6439 .sum6440 returns the raw SQL6441 .average6442 returns the raw SQL6443 estimate_batch_distinct_count6444 returns the raw SQL6445 .histogram6446 returns the histogram sql6447 other6448 raise ArgumentError error6449Taskable6450 .get_tasks6451 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"- [x]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"* [x]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"* [ ]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"1. [ ]\", source=\"Numbered 1\">", "#<struct TaskList::Item checkbox_text=\"2) [x]\", source=\"Numbered 2\">"]6452 with single line comments6453 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"only task item\">"]6454 #task_list_items6455 issuable_type: :issue6456 when description is present6457 gets tasks from markdown6458 when description is blank6459 returns empty array6460 does not try to get tasks from markdown6461 issuable_type: :merge_request6462 when description is present6463 gets tasks from markdown6464 when description is blank6465 returns empty array6466 does not try to get tasks from markdown6467ProjectExportJob6468 associations6469 is expected to belong to project required: false6470 is expected to have many relation_exports6471 validations6472 is expected to validate that :project cannot be empty/falsy6473 is expected to validate that :jid cannot be empty/falsy6474 is expected to validate that :status cannot be empty/falsy6475 when pruning expired jobs6476 prunes jobs and associations older than 7 days6477 does not delete associated records for jobs younger than 7 days6478Packages::MarkPackageFilesForDestructionService6479 #execute6480 with no package files6481 behaves like executing successfully6482 marks package files for destruction6483 executes successfully6484 with a single package file6485 behaves like executing successfully6486 marks package files for destruction6487 executes successfully6488 with many package files6489 behaves like executing successfully6490 marks package files for destruction6491 executes successfully6492 with a batch deadline6493 when the deadline is not hit6494 behaves like executing successfully6495 marks package files for destruction6496 executes successfully6497 when the deadline is hit6498 does not execute the batch loop6499 when a batch size is defined6500 behaves like executing successfully6501 marks package files for destruction6502 executes successfully6503 with an error during the update6504 raises the error6505UserFinder6506 #find_by_id6507 when the user exists6508 returns the user6509 when the user exists (id as string)6510 returns the user6511 when the user does not exist6512 returns nil6513 #find_by_username6514 when the user exists6515 returns the user6516 when the user does not exist6517 returns nil6518 #find_by_id_or_username6519 when the user exists (id)6520 returns the user6521 when the user exists (id as string)6522 returns the user6523 when the user exists (username)6524 returns the user6525 when the user does not exist (username)6526 returns nil6527 when the user does not exist6528 returns nil6529 #find_by_id!6530 when the user exists6531 returns the user6532 when the user exists (id as string)6533 returns the user6534 when the user does not exist6535 raises ActiveRecord::RecordNotFound6536 #find_by_username!6537 when the user exists6538 returns the user6539 when the user does not exist6540 raises ActiveRecord::RecordNotFound6541 #find_by_id_or_username!6542 when the user exists (id)6543 returns the user6544 when the user exists (id as string)6545 returns the user6546 when the user exists (username)6547 returns the user6548 when the user does not exist (username)6549 raises ActiveRecord::RecordNotFound6550 when the user does not exist6551 raises ActiveRecord::RecordNotFound6552Gitlab::Asciidoc::IncludeProcessor6553 read_lines6554 when reading a file in the repository6555 returns the blob contents6556 allows at most N blob includes6557 when the blob does not exist6558 raises NoData6559 when there is a selector6560 selects the lines6561 when reading content from a URL6562 fetches the data using a GET request6563 allows at most N HTTP includes6564 when the URI returns 4046565 raises NoData6566 when there is a selector6567 selects the lines6568 #include_allowed?6569 allows the first include6570 allows the Nth include6571 disallows the Nth + 1 include6572 when allow-uri-read is nil6573 allows http includes6574 allows blob includes6575 when allow-uri-read is false6576 allows http includes6577 allows blob includes6578 when allow-uri-read is true6579 allows http includes6580 allows blob includes6581 without allow-uri-read6582 forbids http includes6583 allows blob includes6584Gitlab::GlobalId6585 .build6586 returns a standard GlobalId if only object is passed6587 returns a GlobalId from params6588 returns a GlobalId from object and `id` param6589 returns a GlobalId from object and `model_name` param6590 returns an error if model_name and id are not able to be determined6591 .as_global_id6592 is the identify function on GlobalID instances6593 wraps URI::GID in GlobalID6594 cannot coerce Integers without a model name6595 can coerce Integers with a model name6596 rejects any other value6597BulkImports::Projects::Pipelines::IssuesPipeline6598 #run6599 imports issue into destination project6600 zoom meetings6601 restores zoom meetings6602 sentry issue6603 restores sentry issue information6604 award emoji6605 has award emoji on an issue6606 issue state6607 restores issue state6608 labels6609 restores issue labels6610 milestone6611 restores issue milestone6612 timelogs6613 restores issue timelogs6614 notes6615 restores issue notes and their award emoji6616Admin::UserActionsHelper6617 #admin_actions6618 the user is a bot6619 is expected to be empty6620 the current user and user are the same6621 is expected to contain exactly "edit"6622 the user is a standard user6623 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6624 the user is an admin user6625 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6626 the user is blocked by LDAP6627 is expected to contain exactly "edit", "ldap", "delete", and "delete_with_contributions"6628 the user is blocked pending approval6629 is expected to contain exactly "edit", "approve", and "reject"6630 the user is blocked6631 is expected to contain exactly "edit", "unblock", "delete", and "delete_with_contributions"6632 the user is deactivated6633 is expected to contain exactly "edit", "block", "ban", "activate", "delete", and "delete_with_contributions"6634 the user is locked6635 is expected to contain exactly "edit", "block", "ban", "deactivate", "unlock", "delete", and "delete_with_contributions"6636 the user is banned6637 is expected to contain exactly "edit", "unban", "delete", and "delete_with_contributions"6638 the current_user does not have permission to delete the user6639 is expected to contain exactly "edit", "block", "ban", and "deactivate"6640 the user is a sole owner of a group6641 is expected to contain exactly "edit", "block", "ban", "deactivate", and "delete_with_contributions"6642 the user is a bot6643 is expected to contain exactly6644UploadedFile6645 from_params functions6646 .from_params6647 when valid file is specified6648 only local path is specified6649 is expected not to be nil6650 generates filename from path6651 all parameters are specified6652 with a filepath6653 behaves like using the file path6654 is expected not to be nil6655 sets properly the attributes6656 handles a blank path6657 with a remote id6658 behaves like using the remote id6659 is expected not to be nil6660 sets properly the attributes6661 with a path and a remote id6662 behaves like using the remote id6663 is expected not to be nil6664 sets properly the attributes6665 when no params are specified6666 does not return an object6667 when verifying allowed paths6668 when file is stored in system temporary folder6669 is expected not to be nil6670 when file is stored in user provided upload path6671 is expected not to be nil6672 when file is stored outside of user provided upload path6673 raises an error6674 .initialize6675 when no size is provided6676 determine size from local path6677 raises an exception if is a remote file6678 when size is a number6679 is overridden by the size of the local file6680 is respected if is a remote file6681 when size is a string6682 is converted to a number6683 raises an exception if does not represent a number6684 when upload_duration is not provided6685 sets upload_duration to zero6686 when upload_duration is provided6687 and upload_duration is a number6688 sets the upload_duration6689 and upload_duration is a string6690 and represents a number6691 converts upload_duration to a number6692 and does not represent a number6693 sets upload_duration to zero6694 when unknown keyword params are provided6695 raises an exception6696 #sanitize_filename6697 is expected to eq "spaced_name"6698 is expected to eq "_____"6699 is expected to eq "_.."6700 is expected to eq "unnamed"6701Gitlab::Graphql::Pagination::ExternallyPaginatedArrayConnection6702 behaves like a connection with collection methods6703 responds to to_a6704 responds to size6705 responds to map6706 responds to include?6707 responds to empty?6708 behaves like a redactable connection6709 no redactor set6710 contains the unwanted item6711 does not redact more than once6712 redactor is set6713 does not contain the unwanted item6714 does not redact more than once6715 #nodes6716 behaves like connection with paged nodes6717 returns the collection limited to max page size6718 is a loaded memoized array6719 when `first` is passed6720 returns only the first elements6721 when `last` is passed6722 returns only the last elements6723 when after or before is specified, they are ignored6724 behaves like connection with paged nodes6725 returns the collection limited to max page size6726 is a loaded memoized array6727 when `first` is passed6728 returns only the first elements6729 when `last` is passed6730 returns only the last elements6731 behaves like connection with paged nodes6732 returns the collection limited to max page size6733 is a loaded memoized array6734 when `first` is passed6735 returns only the first elements6736 when `last` is passed6737 returns only the last elements6738 #start_cursor6739 returns the prev cursor6740 when there is none6741 returns nil6742 #end_cursor6743 returns the next cursor6744 when there is none6745 returns nil6746 #has_next_page6747 returns true when there is a end cursor6748 there is no end cursor6749 returns false6750 #has_previous_page6751 returns true when there is a start cursor6752 there is no start cursor6753 returns false6754RuboCop::Cop::AvoidReturnFromBlocks6755 # order random6756 doesn't flag violation for break inside a block6757 doesn't create more than one offense for nested blocks6758 doesn't flag violation for next inside a block6759 doesn't flag violation for return used inside a method definition6760 flags violation for return inside a block6761 doesn't check when block is empty6762 doesn't flag violation for return inside a lambda6763 flags violation for return inside included > def > block6764 behaves like examples with def methods6765 doesn't flag violation for return inside lambda6766 behaves like examples with def methods6767 doesn't flag violation for return inside define_method6768 behaves like examples with whitelisted method6769 doesn't flag violation for return inside loop6770 behaves like examples with whitelisted method6771 doesn't flag violation for return inside each_filename6772 behaves like examples with whitelisted method6773 doesn't flag violation for return inside times6774 behaves like examples with whitelisted method6775 doesn't flag violation for return inside each6776Projects::InactiveProjectsDeletionCronWorker6777 #perform6778 when delete inactive projects feature is disabled6779 does not invoke Projects::InactiveProjectsDeletionNotificationWorker6780 does not delete the inactive projects6781 when delete inactive projects feature is enabled6782 invokes Projects::InactiveProjectsDeletionNotificationWorker for inactive projects6783 does not invoke InactiveProjectsDeletionNotificationWorker for already notified inactive projects6784 invokes Projects::DestroyService for projects that are inactive even after being notified6785 behaves like worker is running for more than 4 minutes6786 stores the last processed inactive project_id in redis cache6787 behaves like worker finishes processing in less than 4 minutes6788 clears the last processed inactive project_id from redis cache6789 behaves like an idempotent worker6790 is labeled as idempotent6791 performs multiple times sequentially without raising an exception6792TestSuiteSummaryEntity6793 #as_json6794 contains the total time6795 contains the counts6796 contains the build_ids6797 contains the suite_error6798Gitlab::GithubImport::Importer::IssueEventsImporter6799 #parallel?6800 when running in parallel mode6801 is expected to be parallel6802 when running in sequential mode6803 is expected not to be parallel6804 #execute6805 when running in parallel mode6806 imports events in parallel6807 when running in sequential mode6808 imports notes in sequence6809 #sequential_import6810 imports each event in sequence6811 #parallel_import6812 imports each note in parallel6813 #importer_class6814 is expected to eq Gitlab::GithubImport::Importer::IssueEventImporter6815 #representation_class6816 is expected to eq Gitlab::GithubImport::Representation::IssueEvent6817 #sidekiq_worker_class6818 is expected to eq Gitlab::GithubImport::ImportIssueEventWorker6819 #object_type6820 is expected to eq :issue_event6821 #collection_method6822 is expected to eq :repository_issue_events6823 #id_for_already_imported_cache6824 returns the ID of the given note6825 #collection_options6826 is expected to eq {}6827Sidebars::Admin::Menus::AbuseReportsMenu6828 # order random6829 behaves like Admin menu without sub menus6830 does not contain any sub menu(s)6831 defines correct active route6832 #pill_count6833 returns zero when there are no abuse reports6834 memoizes the query6835 when there are abuse reports6836 returns the number of abuse reports6837 behaves like Admin menu6838 renders the correct link6839 renders the correct title6840 renders the correct icon6841 renders the separator if needed6842 #render?6843 when user is admin6844 renders6845 when user is not admin6846 does not render6847 when user is not logged in6848 does not render6849Packages::Debian::GroupComponent6850 behaves like Debian Distribution Component6851 relationships6852 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => components6853 is expected to have many files class_name => Packages::Debian::GroupComponentFile inverse_of => component6854 validations6855 #distribution6856 is expected to validate that :distribution cannot be empty/falsy6857 #name6858 is expected to validate that :name cannot be empty/falsy6859 is expected to allow :name to be ‹"main"›6860 is expected to allow :name to be ‹"non-free"›6861 is expected to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6862 is expected not to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6863 is expected not to allow :name to be ‹"non/free"›6864 is expected not to allow :name to be ‹"hé"›6865 scopes6866 .ordered_by_name6867 sorts by name6868 .with_distribution6869 does not return other distributions6870 .with_name6871 does not return other distributions6872Gitlab::Metrics::Subscribers::ExternalHttp6873 .detail_store6874 when external HTTP detail store is empty6875 returns an empty array6876 when the performance bar is not enabled6877 returns an empty array6878 when external HTTP detail store has some values6879 returns the external http detailed store6880 .payload6881 when SafeRequestStore does not have any item from external HTTP6882 returns an empty array6883 when external HTTP recorded some values6884 returns the external http detailed store6885 with multiple requests6886 returns a payload containing a limited set of slow requests6887 #request6888 tracks external HTTP request count6889 tracks external HTTP duration6890 tracks external HTTP exceptions6891 stores per-request counters6892 stores a portion of events into the detail store6893 when the performance bar is not enabled6894 does not capture detail store6895Gitlab::Prometheus::Internal6896 .uri6897 behaves like returns valid uri6898 is expected not to raise Exception6899 with non default prometheus address6900 behaves like returns valid uri6901 is expected not to raise Exception6902 with :9090 symbol6903 behaves like returns valid uri6904 is expected not to raise Exception6905 with 0.0.0.0:90906906 behaves like returns valid uri6907 is expected not to raise Exception6908 when server_address is nil6909 does not fail6910 when prometheus listen address is blank in gitlab.yml6911 does not configure prometheus6912 .prometheus_enabled?6913 returns correct value6914 when prometheus setting is disabled in gitlab.yml6915 returns correct value6916 when prometheus setting is not present in gitlab.yml6917 does not fail6918 .server_address6919 returns correct value6920 when prometheus setting is not present in gitlab.yml6921 does not fail6922GroupGroupLink6923 validation6924 is expected to validate that :shared_group cannot be empty/falsy6925 is expected to validate that :shared_group_id is case-sensitively unique within the scope of :shared_with_group_id, producing a custom validation error on failure6926 is expected to validate that :shared_with_group cannot be empty/falsy6927 is expected to validate that :group_access cannot be empty/falsy6928 is expected to validate that :group_access is either ‹10›, ‹20›, ‹30›, or ‹40›6929 relations6930 is expected to belong to shared_group required: false6931 is expected to belong to shared_with_group required: false6932 scopes6933 for scopes fetching records based on access levels6934 .non_guests6935 returns all records which are greater than Guests access6936 .with_owner_or_maintainer_access6937 returns all records which have OWNER or MAINTAINER access6938 .with_owner_access6939 returns all records which have OWNER access6940 .with_developer_access6941 returns all records which have DEVELOPER access6942 .with_developer_maintainer_owner_access6943 returns all records which have DEVELOPER, MAINTAINER or OWNER access6944 for access via group shares6945 .groups_accessible_via6946 returns other groups that you can get access to, via the group shares of the specified groups6947 .groups_having_access_to6948 returns all other groups that are having access to these specified groups, via group share6949 .distinct_on_shared_with_group_id_with_group_access6950 returns only one group link per group (with max group access)6951 #human_access6952 delegates to Gitlab::Access6953 search by group name6954 is expected to eq [#<GroupGroupLink id: 19, created_at: "2023-06-02 06:46:21.786919154 +0000", updated_at: "2023-06-02 ...19154 +0000", shared_group_id: 2539, shared_with_group_id: 2516, expires_at: nil, group_access: 20>]6955 is expected to be empty6956API::Helpers::RelatedResourcesHelpers6957 #expose_path6958 empty relative URL root6959 returns the existing path6960 slash relative URL root6961 returns the existing path6962 with relative URL root6963 returns the existing path6964 #expose_url6965 respects the protocol if it is HTTP6966 respects the protocol if it is HTTPS6967 accepts the host if it contains an underscore6968 accepts port to be nil6969 includes port if provided6970 includes the relative_url before the path if it is set6971 includes the path after the host6972Gitlab::PrivateCommitEmail6973 .regex6974 is expected to match "1-foo@users.noreply.localhost"6975 is expected not to match "1-foo@users.noreply.localhost.foo"6976 is expected not to match "1-foo@users.noreply.gitlab.com"6977 is expected not to match "foo-1@users.noreply.gitlab.com"6978 is expected not to match "foobar@gitlab.com"6979 .user_id_for_email6980 parses user id from email6981 returns nil on invalid commit email6982 .user_ids_for_email6983 returns deduplicated user IDs for each valid email6984 returns an empty array with no valid emails6985 .for_user6986 returns email in the format id-username@hostname6987Resolvers::MergeRequestsCountResolver6988 #resolve6989 is expected to have nullable GraphQL type Int6990 when user can only view an issue's closing merge requests that are public6991 returns the count of the merge requests closing the issue6992 when user can view an issue's closing merge requests that are both public and private6993 returns the count of the merge requests closing the issue6994Gitlab::QuickActions::TimelineTextAndDateTimeSeparator6995 # order random6996 execute6997 with invalid parameters in arg line6998 with empty arg line6999 behaves like arg line with invalid parameters7000 returns nil7001 with invalid date7002 behaves like arg line with invalid parameters7003 returns nil7004 behaves like arg line with invalid parameters7005 returns nil7006 behaves like arg line with invalid parameters7007 returns nil7008 with invalid time7009 behaves like arg line with invalid parameters7010 returns nil7011 when date is invalid in arg line7012 return current date7013 with valid parameters7014 when only timeline text present in arg line7015 behaves like arg line with valid parameters7016 returns text and date time array7017 when only timeline text and time present in arg line7018 behaves like arg line with valid parameters7019 returns text and date time array7020 when timeline text and date is present in arg line7021 behaves like arg line with valid parameters7022 returns text and date time array7023Gitlab::SidekiqMiddleware::SizeLimiter::Compressor7024 .compressed?7025 job: {}, result: false7026 returns whether the job payload is compressed7027 job: {"class"=>"ARandomWorker", "queue"=>"a_worker", "retry"=>true, "jid"=>"d774900367dc8b2962b2479c", "created_at"=>1234567890, "enqueued_at"=>1234567890, "args"=>[123, "hello", ["world"]]}, result: false7028 returns whether the job payload is compressed7029 job: {"class"=>"ARandomWorker", "queue"=>"a_worker", "retry"=>true, "jid"=>"d774900367dc8b2962b2479c", "created_at"=>1234567890, "enqueued_at"=>1234567890, "args"=>["eJzLSM3JyQcABiwCFQ=="], "compressed"=>true}, result: true7030 returns whether the job payload is compressed7031 .compress7032 args: nil7033 injects compressed data7034 can decompress the payload7035 args: []7036 injects compressed data7037 can decompress the payload7038 args: ["hello"]7039 injects compressed data7040 can decompress the payload7041 args: [{"job_class"=>"SomeWorker", "job_id"=>"b4a577edbccf1d805744efa9", "provider_job_id"=>nil, "queue_name"=>"default", "arguments"=>["some", ["argument"]], "executions"=>0, "locale"=>"en", "attempt_number"=>1}, nil, "hello", 12345678901234567890, ["nice"]]7042 injects compressed data7043 can decompress the payload7044 args: ["2021-05-13_09:59:37.57483 \e[35mrails-background-jobs : \e[0m{\"severity\":\"ERROR\",\"time\":\"2021-05-13T09:59:37.574Z\"", "bonne journée - ขอให้มีความสุขในวันนี้ - một ngày mới tốt lành - 좋은 하루 되세요 - ごきげんよう", "🤝 - 🦊"]7045 injects compressed data7046 can decompress the payload7047 .decompress7048 job payload is not compressed7049 preserves the payload after decompression7050 job payload is compressed with a default level7051 decompresses and clean up the job payload7052 job payload is compressed with a different level7053 decompresses and clean up the job payload7054 job payload argument list is malformed7055 tracks the conflicting exception7056 job payload is not a valid base64 string7057 raises an exception7058 job payload compression does not contain a valid Gzip header7059 raises an exception7060 job payload compression does not contain a valid Gzip body7061 raises an exception7062Gitlab::Seeders::ProjectEnvironmentSeeder7063 # order random7064 #seed7065 creates environments for the project7066 creates environments with custom arguments7067ERROR: Project path is invalid.7068 skips seeding when project path is invalid7069WARNING: Project Environment 'ENV_54' already exists. Skipping to next CI variable...7070 skips environment creation if environment already exists7071Gitlab::Graphql::GenericTracing7072 updates graphql histogram with expected labels7073 when labkit tracing is enabled7074 yields with labkit tracing7075 when labkit tracing is disabled7076 yields without measurement7077MergeRequest::DiffCommitUser7078 validations7079 requires that names are less than 512 characters long7080 requires that Emails are less than 512 characters long7081 requires either a name or Email7082 allows setting of just a name7083 allows setting of just an Email7084 allows setting of both a name and Email7085 .prepare7086 trims a value to at most 512 characters7087 returns nil if the value is an empty string7088 .find_or_create7089 creates a new row if none exist7090 returns an existing row if one exists7091 handles concurrent inserts7092 .bulk_find_or_create7093 bulk creates missing rows and reuses existing rows7094 does not insert any data when all users exist7095 handles concurrently inserted rows7096ObjectStorage::MigrateUploadsWorker7097 #perform7098 migrates files to remote storage7099 handles legacy argument format7100 logs an error when number of arguments is incorrect7101 reversed7102 migrates files to local storage7103 migration is unsuccessful7104 does not migrate files to remote storage7105 limits N+1 queries7106 to N*57107Groups::DeployTokens::CreateService7108 behaves like a deploy token creation service7109 #execute7110 when the deploy token is valid7111 creates a new DeployToken7112 creates a new ProjectDeployToken7113 returns a DeployToken7114 sets the creator_id as the id of the current_user7115 when expires at date is not passed7116 sets Forever.date7117 when username is empty string7118 converts it to nil7119 when username is provided7120 keeps the provided username7121 when the deploy token is invalid7122 does not create a new DeployToken7123 does not create a new ProjectDeployToken7124BadgesHelper7125 #gl_badge_tag7126 creates a badge with given text7127 adds style classes7128 adds custom classes7129 applies custom html attributes7130 block content7131 renders block content7132 changes the function signature7133 variants7134 defaults to muted7135 falls back to default given an unknown variant7136 variant: :muted7137 sets the variant class7138 variant: :neutral7139 sets the variant class7140 variant: :info7141 sets the variant class7142 variant: :success7143 sets the variant class7144 variant: :warning7145 sets the variant class7146 variant: :danger7147 sets the variant class7148 sizes7149 defaults to md7150 falls back to default given an unknown size7151 size: :sm7152 sets the size class7153 size: :md7154 sets the size class7155 size: :lg7156 sets the size class7157 icons7158 with text7159 renders an icon7160 adds a spacing class and any custom classes to the icon7161 icon only7162 adds an img role to element7163 adds aria-label to element7164 does not add a spacing class to the icon7165 given an href7166 creates a badge link7167Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildStarted7168 behaves like value stream analytics event7169 is expected to be a kind of String7170 is expected to be a kind of Symbol7171 is expected to include ApplicationRecord(abstract)7172 is expected to respond to #timestamp_projection7173 is expected to respond to #html_description7174 is expected to be a kind of Array7175 #apply_query_customization7176 expects an ActiveRecord::Relation object as argument and returns a modified version of it7177 #hash_code7178 returns a hash that uniquely identifies an event7179 does not differ when the same object is built with the same params7180 behaves like LEFT JOIN-able value stream analytics event7181 can use the event as LEFT JOIN7182 when looking at the record with data7183 contains the timestamp expression7184 when looking at the record without data7185 returns nil for the timestamp expression7186RuboCop::TodoDir7187 # order random7188 #initialize7189 when passing inflector7190 calls .underscore7191 #read7192 when file exists7193 is expected to eq "a"7194 when file is missing7195 is expected to be nil7196 #inspect7197 with existing YAML file7198 is expected to eq true7199 moves YAML file to .inspect7200 with missing YAML file7201 is expected to eq false7202 #write7203 is expected to eq "/tmp/d20230602-323-1nxfh8/r_spec/variable_instance.yml"7204 writes content to YAML file7205 #inspect_all7206 with YAML files7207 is expected to eq 37208 moves all YAML files to .inspect7209 with non-YAML files7210 is expected to eq 07211 does not move non-YAML files7212 without files7213 is expected to eq 07214 #delete_inspected7215 with YAML files7216 is expected to eq 37217 deletes all .inspected YAML files7218 with non-YAML files7219 is expected to eq 07220 does not delete non-YAML files7221 without files7222 is expected to eq 07223 #list_inspect7224 when file exists and is being inspected7225 is expected to contain exactly "/tmp/d20230602-323-kek8gi/r_spec/variable_instance.yml.inspect"7226 when file exists but not being inspected7227 is expected to be empty7228 when file is missing7229 is expected to be empty7230LinkedProjectIssueEntity7231 issue_link_type7232 is expected to include {:link_type => "relates_to"}7233 type7234 returns the issue type7235 when related issue is a task7236 returns a work item issue type7237 path7238 returns an issue path7239 when related issue is a task7240 returns a work items path using iid7241AnalyticsSummarySerializer7242 generates payload for single object7243 contains important elements of AnalyticsStage7244 does not include unit7245 when representing with unit7246 contains unit7247Gitlab::LetsEncrypt7248 .enabled?7249 when terms of service are accepted7250 is expected to eq true7251 when terms of service are not accepted7252 is expected to eq false7253 .terms_of_service_url7254 returns the url7255Gitlab::Auth::Ldap::Adapter7256 #users7257 searches with the proper options when searching by uid7258 searches with the proper options when searching by dn7259 searches with the proper options when searching with a limit7260 returns an LDAP::Person if search returns a result7261 returns empty array if search entry does not respond to uid7262 uses the right uid attribute when non-default7263 #dn_matches_filter?7264 when the search result is non-empty7265 is expected to be truthy7266 when the search result is empty7267 is expected to be falsey7268 #ldap_search7269 when the search is successful7270 and the result is non-empty7271 is expected to eq [:foo]7272 and the result is empty7273 is expected to eq []7274 when returned with expected code7275 behaves like connection retry7276 retries the operation7277 as many times as MAX_SEARCH_RETRIES7278 when no more retries7279 raises the exception7280 logs the error7281 when the search encounters an error7282 is expected to eq []7283 when the search raises an LDAP exception7284 retries the operation7285 behaves like connection retry7286 retries the operation7287 as many times as MAX_SEARCH_RETRIES7288 when no more retries7289 raises the exception7290 logs the error7291Gitlab::DependencyLinker7292 .link7293 links using GemfileLinker7294 links using GemspecLinker7295 links using PackageJsonLinker7296 links using ComposerJsonLinker7297 links using PodfileLinker7298 links using PodspecLinker7299 links using PodspecJsonLinker7300 links using CartfileLinker7301 links using GodepsJsonLinker7302 links using RequirementsTxtLinker7303 links using CargoTomlLinker7304 links using GoModLinker7305 links using GoSumLinker7306Integrations::Clickup7307 # order random7308 Validations7309 when integration is active7310 is expected to validate that :project_url cannot be empty/falsy7311 is expected to validate that :issues_url cannot be empty/falsy7312 behaves like issue tracker integration URL attribute7313 is expected to allow :project_url to be ‹"https://example.com"›7314 is expected not to allow :project_url to be ‹"example.com"›7315 is expected not to allow :project_url to be ‹"ftp://example.com"›7316 is expected not to allow :project_url to be ‹"herp-and-derp"›7317 behaves like issue tracker integration URL attribute7318 is expected to allow :issues_url to be ‹"https://example.com"›7319 is expected not to allow :issues_url to be ‹"example.com"›7320 is expected not to allow :issues_url to be ‹"ftp://example.com"›7321 is expected not to allow :issues_url to be ‹"herp-and-derp"›7322 when integration is inactive7323 is expected not to validate that :project_url cannot be empty/falsy7324 is expected not to validate that :issues_url cannot be empty/falsy7325 #reference_pattern7326 does allow project prefix on the reference7327 allows a hash with an alphanumeric key on the reference7328 allows a global prefix with an alphanumeric key on the reference7329 #fields7330 only returns the project_url and issues_url fields7331Gitlab::Template::Finders::GlobalTemplateFinder7332 .find7333 with a non-prefixed General template7334 finds the template with no prefix7335 does not find a prefixed template7336 does not permit path traversal requests7337 while listed as an exclusion7338 does not find the template without a prefix7339 does not find the template with a prefix7340 finds another prefixed template with the same name7341 with a prefixed template7342 finds the template with a prefix7343 does not find the template without a prefix (PENDING: Temporarily skipped with xit)7344 does not permit path traversal requests7345 with include_categories_for_file being present7346 finds the template with a prefix7347 does not find any template which is missing in include_categories_for_file7348 while listed as an exclusion7349 does not find the template with a prefix7350 does not find the template without a prefix (PENDING: Temporarily skipped with xit)7351 finds another non-prefixed template with the same name7352 while listed as an exclusion7353 excludes the template matched the pattern7354Gitlab::Instrumentation::RedisBase7355 .storage_key7356 returns the class name with underscore7357 .payload7358 returns values that are higher than 07359 .add_duration7360 does not lose precision while adding7361 storage key overlapping7362 keys do not overlap across storages7363 .increment_request_count7364 increments by the given amount7365 storage key overlapping7366 keys do not overlap across storages7367 .increment_write_bytes7368 storage key overlapping7369 keys do not overlap across storages7370 .increment_cross_slot_request_count7371 storage key overlapping7372 keys do not overlap across storages7373 increments by the given amount7374 .increment_allowed_cross_slot_request_count7375 storage key overlapping7376 keys do not overlap across storages7377 increments by the given amount7378 .increment_read_bytes7379 storage key overlapping7380 keys do not overlap across storages7381 .add_call_details7382 storage key overlapping7383 keys do not overlap across storages7384 .redis_cluster_validate!7385 Rails environments7386 env: "production", allowed: false, should_raise: false7387 is expected not to raise Exception7388 env: "production", allowed: true, should_raise: false7389 is expected not to raise Exception7390 env: "staging", allowed: false, should_raise: false7391 is expected not to raise Exception7392 env: "staging", allowed: true, should_raise: false7393 is expected not to raise Exception7394 env: "development", allowed: true, should_raise: false7395 is expected not to raise Exception7396 env: "development", allowed: false, should_raise: true7397 is expected to raise Gitlab::Instrumentation::RedisClusterValidator::CrossSlotError7398 env: "test", allowed: true, should_raise: false7399 is expected not to raise Exception7400 env: "test", allowed: false, should_raise: true7401 is expected to raise Gitlab::Instrumentation::RedisClusterValidator::CrossSlotError7402 .log_exception7403 logs exception with storage details7404gitlab:setup namespace rake tasks7405 setup7406 sets up the application7407 when an environment variable is set to force execution7408 sets up the application without prompting the user7409 when the gitaly connection check raises an error7410 exits the task without setting up the database7411 when the task is aborted7412 exits without setting up the database7413 when in the production environment7414 sets up the database without terminating connections7415BulkImports::Groups::Pipelines::GroupPipeline7416 #run7417 imports new group into destination group7418 pipeline parts7419 is expected to includes the BulkImports::Pipeline module7420 is expected to includes the BulkImports::Pipeline::Runner module7421 has extractors7422 has transformers7423 has loaders7424AccessRequestable7425 Group7426 #request_access7427 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)7428 is expected to eq #<User id:1449 @user606>7429 #access_requested?7430 is expected to be truthy7431 Project7432 #request_access7433 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)7434 #access_requested?7435 is expected to be truthy7436Gitlab::Ci::Config::Entry::Release::Assets::Links7437 validation7438 when entry config value is correct7439 #value7440 returns links configuration7441 #valid?7442 is valid7443 when entry value is not correct7444 #errors7445 when value of link is invalid7446 reports error7447 when value of links link is empty7448 reports error7449 when there is an unknown key present7450 reports error7451Projects::MoveNotificationSettingsService7452 #execute7453 does not move existent notification settings in the current project7454 with notification settings7455 moves the user's notification settings from one project to another7456 rollbacks changes if transaction fails7457 when remove_remaining_elements is false7458 does not remove remaining notification settings7459Create base work item types in development7460 behaves like work item base types importer7461OK7462 creates all base work item types if they don't exist7463OK7464 creates all default widget definitions7465OK7466 upserts base work item types if they already exist7467OK7468 upserts default widget definitions if they already exist and type changes7469OK7470 does not change default widget definitions if they already exist with changed disabled status7471OK7472 executes single INSERT query per types and widget definitions7473 when some base types exist7474OK7475 inserts all types and does nothing if some already existed7476 when some widget definitions exist7477OK7478 inserts all widget definitions and does nothing if some already existed7479Gitlab::Analytics::CycleAnalytics::StageEvents::PlanStageStart7480 filters issues where first_associated_with_milestone_at or first_added_to_board_at is filled7481 behaves like value stream analytics event7482 is expected to be a kind of String7483 is expected to be a kind of Symbol7484 is expected to include ApplicationRecord(abstract)7485 is expected to respond to #timestamp_projection7486 is expected to respond to #html_description7487 is expected to be a kind of Array7488 #apply_query_customization7489 expects an ActiveRecord::Relation object as argument and returns a modified version of it7490 #hash_code7491 returns a hash that uniquely identifies an event7492 does not differ when the same object is built with the same params7493 behaves like LEFT JOIN-able value stream analytics event7494 can use the event as LEFT JOIN7495 when looking at the record with data7496 contains the timestamp expression7497 when looking at the record without data7498 returns nil for the timestamp expression7499Banzai::Filter::InlineDiffFilter7500 adds inline diff span tags for deletions when using square brackets7501 adds inline diff span tags for deletions when using curley braces7502 does not add inline diff span tags when a closing tag is not provided7503 adds inline span tags for additions when using square brackets7504 adds inline span tags for additions when using curley braces7505 does not add inline diff span tags when a closing addition tag is not provided7506 does not add inline diff span tags when the tags do not match7507 prevents user-land html being injected7508 preserves content inside pre tags7509 preserves content inside code tags7510 preserves content inside tt tags7511Gitlab::Ci::YamlProcessor::Result7512 #builds7513 when a job has ID tokens7514 includes `id_tokens`7515 #config_metadata7516 returns expanded yaml config7517 returns includes7518 #yaml_variables_for7519 returns calculated variables with root and job variables7520 when an absent job is sent7521 is expected to eq []7522 #stage_for7523 is expected to eq "test"7524 when an absent job is sent7525 is expected to be nil7526IssueLinks::DestroyService7527 #execute7528 behaves like a destroyable issuable link7529 when successfully removes an issuable link7530 removes related issue7531 creates notes7532 returns success message7533 when failing to remove an issuable link7534 does not remove relation7535 does not create notes7536 returns error message7537 when target is an incident7538 behaves like an incident management tracked event7539 .track_event7540 tracks the event using redis7541 behaves like Snowplow event tracking with RedisHLL context7542 behaves like Snowplow event tracking7543 is emitted7544gitlab:packages namespace rake task7545 migrate7546 object storage disabled7547 doesn't migrate files7548 object storage enabled7549 migrates local file to object storage7550Routing::PseudonymizationHelper7551 when url has params to mask7552 with controller for MR7553 behaves like masked url7554 generates masked page url7555 with controller for issue7556 behaves like masked url7557 generates masked page url7558 with controller for groups with subgroups and project7559 behaves like masked url7560 generates masked page url7561 with controller for groups and subgroups7562 behaves like masked url7563 generates masked page url7564 with controller for blob with file path7565 behaves like masked url7566 generates masked page url7567 when assignee_username is present7568 behaves like masked url7569 generates masked page url7570 when author_username is present7571 behaves like masked url7572 generates masked page url7573 when some query params are not required to be masked7574 behaves like masked url7575 generates masked page url7576 when query string has keys with the same names as path params7577 behaves like masked url7578 generates masked page url7579 when url has no params to mask7580 returns unchanged url7581 when it raises exception7582 calls error tracking7583 sends error to sentry and returns nil7584 when feature flag is disabled7585 returns nil7586Clusters::Applications::DeactivateIntegrationWorker#perform7587 when cluster exists7588 prometheus integration7589 when prometheus integration exists7590 with cluster type: group7591 ensures Prometheus integration is deactivated7592 with cluster type: project7593 ensures Prometheus integration is deactivated7594 with cluster type: instance7595 ensures Prometheus integration is deactivated7596 when prometheus integration does not exist7597 with cluster type: project7598 does not raise errors7599 when cluster does not exist7600 raises Record Not Found error7601Terraform::States::TriggerDestroyService7602 #execute7603 marks the state as deleted and schedules a cleanup worker7604 within a database transaction7605 does not raise an EnqueueFromTransactionError7606 user does not have permission7607 does not modify the state7608 state is locked7609 does not modify the state7610UpdateProjectStatisticsWorker7611 #perform7612 when a lease could be obtained7613 updates the project statistics7614 when a lease could not be obtained7615 does not update the project statistics7616Gitlab::Experiment::Rollout::Feature7617 #enabled?7618 is enabled when all criteria are met7619 isn't enabled if the feature definition doesn't exist7620 isn't enabled if we're not in dev or dotcom environments7621 isn't enabled if the feature flag state is :off7622 isn't enabled if the gitlab_experiment feature flag is false7623 #execute_assignment7624 uses the default value as specified in the yaml7625 returns an assigned name7626 #flipper_id7627 returns the expected flipper id if the experiment doesn't provide one7628 lets the experiment provide a flipper id so it can override the default7629layouts/profile7630 calls enable_search_settings helper with a custom container class7631 displays the search settings entry point7632Bitbucket::Representation::Comment7633 #author7634 is expected to eq "Ben"7635 is expected to be nil7636 #note7637 is expected to eq "Text"7638 is expected to be nil7639 #created_at7640 is expected to eq Fri, 02 Jun 20237641 #updated_at7642 is expected to eq Fri, 02 Jun 20237643 is expected to eq Fri, 02 Jun 20237644Tooling::FindCodeowners7645 #execute7646 prints CODEOWNERS as configured7647 #load_definitions7648 expands the allow and deny list with keywords and patterns7649 expands the patterns for the auth group7650 retains the array and expands the patterns for the compliance group7651 #load_config7652 loads the config with symbolized keys7653 when YAML has safe_load_file7654 calls safe_load_file7655 when YAML does not have safe_load_file7656 calls load_file7657 #path_matches?7658 passes flags we are expecting to File.fnmatch?7659 #normalize_pattern7660 returns /**/* if the input is *7661 prepends /** if the input does not start with /7662 returns the pattern if the input starts with /7663 appends **/* if the input ends with /7664 #consolidate_paths7665 when the directory has the same number of entries7666 consolidates into the directory7667 when the directory has different number of entries7668 returns the original paths7669Onboarding::Completion7670 # order random7671 #completed?7672 when code_added7673 when commit_count > 17674 is expected to eq true7675 when branch_count > 17676 is expected to eq true7677 when empty repository7678 is expected to eq false7679 when secure_dast_run7680 when is completed7681 is expected to eq true7682 when is not completed7683 is expected to eq false7684 #percentage7685 when no onboarding_progress exists7686 is expected to eq 07687 when no action has been completed7688 is expected to eq 07689 when all tracked actions have been completed7690 is expected to eq 1007691Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuted7692 behaves like deduplicating jobs when scheduling7693 #schedule7694 checks for duplicates before yielding7695 checks worker options for scheduled jobs7696 job marking7697 adds the jid of the existing job to the job hash7698 scheduled jobs7699 scheduled in the past7700 adds the jid of the existing job to the job hash7701 scheduled in the future7702 adds the jid of the existing job to the job hash7703 when the job is not duplicate7704 does not return false nor drop the job7705 when the job is droppable7706 updates latest wal location7707 returns false to drop the job7708 logs that the job was dropped7709 logs the deduplication options of the worker7710 #perform7711 updates job hash with dedup_wal_locations7712 when latest_wal_location is empty7713 does not update job hash with dedup_wal_locations7714 #perform7715 deletes the lock after executing7716 deletes the lock even if an error occurs7717 does not reschedule the job even if deduplication happened7718 when job is reschedulable7719 reschedules the job if deduplication happened7720 does not reschedule the job if an error occurs7721Releases::Source7722 .all7723 returns all formats of sources7724 #url7725 returns zip archived source url7726 when ref is directory structure7727 converts slash to dash7728Import::GitlabProjects::FileAcquisitionStrategies::RemoteFileS37729 validation7730 is expected to be valid7731 region validation7732 validates presence of region7733 bucket_name validation7734 validates presence of bucket_name7735 file_key validation7736 validates presence of file_key7737 access_key_id validation7738 validates presence of access_key_id7739 secret_access_key validation7740 validates presence of secret_access_key7741 content-length validation7742 validates the remote content-length7743 content-type validation7744 validates the remote content-type7745 file_url validation7746 validates the file_url scheme7747 when localhost urls are not allowed7748 validates the file_url7749 when the remote file does not exist7750 foo7751 when it fails to build the s3 object7752 foo7753 #project_params7754 returns import_export_upload in the params7755API::Helpers::VariablesHelpers7756 #filter_variable_parameters7757 returns unmodified params (overridden in EE)7758 #find_variable7759 is expected to eq #<Double (anonymous)>7760 there are multiple variables with the supplied key7761 raises a conflict!7762AlertManagement::HttpIntegrationPolicy7763 rules7764 is expected to be disallowed :admin_operations7765 when maintainer7766 is expected to be allowed :admin_operations7767RuboCop::Cop::Migration::VersionedMigrationClass7768 # order random7769 outside of a migration7770 behaves like a disabled cop7771 does not register any offenses7772 in migration7773 in an old migration7774 behaves like a disabled cop7775 does not register any offenses7776 that is recent7777 adds an offence if inheriting from ActiveRecord::Migration7778 adds an offence if inheriting from old version of Gitlab::Database::Migration7779 adds an offence if including Gitlab::Database::MigrationHelpers directly7780 excludes ActiveRecord classes defined inside the migration7781Resolvers::Users::GroupsResolver7782 #resolve7783 when resolver object is current user7784 is expected to match [#<Group id:2703 @a-public-maintainer>, #<Group id:2704 @a-public-owner>, #<Group id:2701 @b-private-maintainer>, #<Group id:2702 @c-public-developer>, #<Group id:2700 @public-guest>]7785 when permission is :create_projects7786 is expected to match [#<Group id:2703 @a-public-maintainer>, #<Group id:2704 @a-public-owner>, #<Group id:2701 @b-private-maintainer>, #<Group id:2702 @c-public-developer>]7787 when permission is :transfer_projects7788 is expected to match [#<Group id:2703 @a-public-maintainer>, #<Group id:2704 @a-public-owner>, #<Group id:2701 @b-private-maintainer>]7789 when search is provided7790 is expected to match [#<Group id:2703 @a-public-maintainer>, #<Group id:2701 @b-private-maintainer>]7791 when resolver object is different from current user7792 is expected to be nil7793 when current_user is admin7794 is expected to match [#<Group id:2703 @a-public-maintainer>, #<Group id:2704 @a-public-owner>, #<Group id:2701 @b-private-maintainer>, #<Group id:2702 @c-public-developer>, #<Group id:2700 @public-guest>]7795Projects::GroupLinks::UpdateService#execute7796 updates existing link7797 project authorizations update7798 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations7799 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations7800 updates project authorizations of users who had access to the project via the group share7801 with only param not requiring authorization refresh7802 does not perform any project authorizations update using `AuthorizedProjectUpdate::ProjectRecalculateWorker`7803Gitlab::Ci::Status::Build::Action7804 #label7805 when status has action7806 does not append text7807 when status does not have action7808 appends text about action not allowed7809 .matches?7810 when build is playable action7811 is a correct match7812 when build is not playable action7813 does not match7814 #badge_tooltip7815 returns the status7816Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit7817 behaves like value stream analytics event7818 is expected to be a kind of String7819 is expected to be a kind of Symbol7820 is expected to include ApplicationRecord(abstract)7821 is expected to respond to #timestamp_projection7822 is expected to respond to #html_description7823 is expected to be a kind of Array7824 #apply_query_customization7825 expects an ActiveRecord::Relation object as argument and returns a modified version of it7826 #hash_code7827 returns a hash that uniquely identifies an event7828 does not differ when the same object is built with the same params7829 behaves like LEFT JOIN-able value stream analytics event7830 can use the event as LEFT JOIN7831 when looking at the record with data7832 contains the timestamp expression7833 when looking at the record without data7834 returns nil for the timestamp expression7835ObjectPool::DestroyWorker7836 #perform7837 when no pool is in the database7838 doesn't raise an error7839 when a pool is present7840 requests Gitaly to remove the object pool7841 destroys the pool7842Gitlab::WithRequestStore7843 #with_request_store7844 starts a request store and yields control7845 only starts a request store once when nested7846ProjectGroupLinkPolicy7847 # order random7848 when the user is a group owner7849 when user is not project maintainer7850 can admin group_project_link7851 when user is a project maintainer7852 can admin group_project_link7853 when user is not a group owner7854 when user is a project maintainer7855 can admin group_project_link7856 when user is not a project maintainer7857 cannot admin group_project_link7858Gitlab::Metrics::Dashboard::Importer7859 .execute7860 valid dashboard hash7861 imports metrics to database7862 invalid dashboard hash7863 returns false7864 .execute!7865 valid dashboard hash7866 imports metrics to database7867 invalid dashboard hash7868 raises error7869Gitlab::Ci::Pipeline::Chain::Helpers7870 .warning7871 when the warning includes malicious HTML7872 sanitizes7873 .error7874 when the error includes malicious HTML7875 sanitizes the error and removes the HTML tags7876 when given a drop reason7877 when config error is true7878 sets the yaml error and overrides the drop reason7879 behaves like error function7880 is expected to include "message"7881 when config error is false7882 does not set the yaml error or override the drop reason7883 behaves like error function7884 is expected to include "message"7885Sidebars::UserProfile::Menus::OverviewMenu7886 # order random7887 behaves like User profile menu7888 does not contain any sub menu7889 renders the correct link7890 renders the correct title7891 renders the correct icon7892 defines correct active route7893 renders if user is logged in7894 when viewed user is blocked7895 when user is not logged in7896 is not allowed to view the menu item7897 when current user has permission7898 is allowed to view the menu item7899 when current user does not have permission7900 is not allowed to view the menu item7901 when viewed user is banned7902 when user is not logged in7903 is not allowed to view the menu item7904 when current user has permission7905 is allowed to view the menu item7906 when current user does not have permission7907 is not allowed to view the menu item7908Sidebars::Groups::Menus::CiCdMenu7909 Menu Items7910 Runners7911 is expected not to be nil7912 when the user does not have access7913 is expected to be nil7914Banzai::Pipeline::PreProcessPipeline7915 pre-processes the source text7916 truncates the text if requested7917 when multiline blockquote7918 data-sourcepos references correct line in source markdown7919Analytics::CycleAnalytics::StageFinder7920 when looking up in-memory default stage by name exists7921 is expected not to be persisted7922 is expected to eq "issue"7923 when in-memory default stage cannot be found7924 is expected to raise ActiveRecord::RecordNotFound7925Gitlab::Database::Partitioning::PartitionMonitoring7926 #report_metrics7927 reports number of present partitions7928 reports number of missing partitions7929 reports number of extra partitions7930Banzai::Pipeline::EmailPipeline7931 .filters7932 returns the expected type7933 excludes ImageLazyLoadFilter7934 shows punycode for autolinks7935Releases::Links::Params7936 # order random7937 #allowed_params7938 returns only allowed params7939 when deprecated filepath is used7940 uses filepath value7941 when both direct_asset_path and filepath are provided7942 uses direct_asset_path value7943Gitlab::X509::Tag7944 #signature7945 signed tag7946 is expected not to be nil7947 is expected to eq :unverified7948 is expected to have attributes {:email => "r.meier@siemens.com", :serial_number => 3664232660, :subject => "CN=Meier Roger,O=Siemens,SN=Me...r=Z000NWDH", :subject_key_identifier => "21:7E:82:45:29:5D:0E:B1:19:CD:24:45:65:EE:0C:5C:73:03:5E:33"}7949 is expected to have attributes {:crl_url => "http://ch.siemens.com/pki?ZZZZZZA6.crl", :subject => "CN=Siemens Issuing CA Medium Strength...ayern,C=DE", :subject_key_identifier => "F8:15:5D:47:0C:6C:77:7B:72:C4:02:17:91:68:A2:B6:F7:6A:09:44"}7950 unsigned tag7951 is expected to be nil7952Types::CommitSignatures::GpgSignatureType7953 # order random7954 contains attributes related to GPG signatures7955 is expected to require graphql authorizations :download_code7956 is expected to eq "GpgSignature"7957 is expected to include Types::CommitSignatureInterface7958Gitlab::HookData::ReleaseBuilder7959 #build7960 includes safe attribute7961 includes additional attrs7962 when the Release has an image in the description7963 sets the image to use an absolute URL7964Gitlab::Git::Util7965 #count_lines7966 counts 0 lines in ""7967 counts 1 lines in "foo"7968 counts 1 lines in "foo\n"7969 counts 2 lines in "foo\n\n"7970Sidebars::YourWork::Menus::MergeRequestsMenu7971 # order random7972 #has_pill?7973 when count is zero7974 returns false7975 when count is larger than zero7976 returns true7977 #pill_count7978 returns the assigned_open_merge_requests_count of the user7979 memoizes the query7980 submenu items7981 order: 0, title: "Assigned", key: :assigned7982 renders items in the right order7983 when there are no MR counts7984 shows a pill even though count is zero7985 when there are MR counts7986 shows a pill with the correct count7987 order: 1, title: "Review requests", key: :review_requested7988 renders items in the right order7989 when there are no MR counts7990 shows a pill even though count is zero7991 when there are MR counts7992 shows a pill with the correct count7993Types::DesignManagement::DesignAtVersionType7994 behaves like a GraphQL type with design fields7995 is expected to require graphql authorizations :read_design7996 exposes the expected design fields7997 #image7998 resolves to the design image URL7999 has better than O(N) peformance8000Ci::BuildTraceChunkFlushWorker8001 migrates chunk to a permanent store8002 #perform8003 behaves like an idempotent worker8004 is labeled as idempotent8005 performs multiple times sequentially without raising an exception8006 migrates build trace chunk to a safe store8007MembersDestroyer::UnassignIssuablesWorker8008 calls the Members::UnassignIssuablesService with the params it was given8009 when unsupported membership source entity8010 exits early and logs error8011BulkImports::Common::Graphql::GetMembersQuery8012 has a valid query8013 #data_path8014 returns data path8015 #page_info_path8016 returns pagination information path8017 #to_s8018 when entity is group8019 queries group & group members8020 when entity is project8021 queries project & project members8022Types::Tree::TreeEntryType8023 is expected to eq "TreeEntry"8024 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :web_path8025RuboCop::Cop::Style::RegexpLiteralMixedPreserve8026 # order random8027 when EnforcedStyle is set to mixed_preserve8028 a single-line `//` regex without slashes8029 is accepted8030 a single-line `//` regex with slashes8031 registers an offense and corrects8032 when configured to allow inner slashes8033 is accepted8034 a multi-line `//` regex without slashes8035 is accepted8036 a multi-line `//` regex with slashes8037 registers an offense and corrects8038 a single-line %r regex without slashes8039 is accepted8040 a single-line %r regex with slashes8041 is accepted8042 when configured to allow inner slashes8043 is accepted8044 a multi-line %r regex without slashes8045 is accepted8046 a multi-line %r regex with slashes8047 is accepted8048Mutations::AlertManagement::HttpIntegration::ResetToken8049 is expected to require graphql authorizations :admin_operations8050 #resolve8051 user has sufficient access to project8052 when HttpIntegrations::UpdateService responds with success8053 returns the integration with no errors8054 when HttpIntegrations::UpdateService responds with an error8055 returns errors8056 when resource is not accessible to the user8057 raises an error if the resource is not accessible to the user8058Gitlab::OtherMarkup8059 XSS Checks8060 does not convert dangerous links into HTML8061 when rendering takes too long8062 times out8063Gitlab::Analytics::UsageTrends::WorkersArgumentBuilder8064 when no measurement identifiers are given8065 returns empty array8066 when measurement identifiers are given8067 returns worker arguments8068 when bogus measurement identifiers are given8069 skips bogus measurement identifiers8070 when custom min and max queries are present8071 uses custom min/max for ids8072ResourceEvents::SyntheticStateNotesBuilderService8073 #execute8074 behaves like filters by paginated notes8075 only returns given notes8076 when paginated notes is empty8077 does not return any notes8078Resolvers::Projects::ForkTargetsResolver8079 #resolve8080 returns forkable namespaces8081 when a user cannot fork the project8082 does not return results8083VersionCheck8084 .url8085 returns the correct URL8086 reactive cache properties8087 .reactive_cache_refresh_interval8088 returns 12.hours8089 .reactive_cache_lifetime8090 returns 7.days8091 #calculate_reactive_cache8092 response code is 200 with valid body8093 returns the response object8094 response code is 200 with invalid body8095 returns an error hash8096 response code is not 2008097 returns an error hash8098 #response8099 with old string value in cache8100 returns nil8101 with non-hash value in cache8102 returns nil and invalidates the reactive cache8103 cache returns value8104 returns the response object8105 cache returns error8106 returns nil and invalidates the reactive cache8107Gitlab::ImportExport::Group::ObjectBuilder8108 labels8109 finds the existing group label8110 creates a new label8111 when description is an empty string8112 finds the existing group label8113 milestones8114 finds the existing group milestone8115 creates a new milestone8116Gitlab::Database::Migrations::TestBackgroundRunner8117 without jobs to run8118 returns immediately8119 with jobs to run8120 finding pending background jobs8121 finds all the migrations8122 running migrations8123 runs the migration class correctly8124 runs the migration for a uniform amount of time8125 with multiple migrations to run8126 splits the time between migrations when all migrations use all their time8127 does not give leftover time to extra migrations8128Emails::CreateService8129 #execute8130 creates an email with valid attributes8131 creates an email with additional attributes8132 has the right user association8133 sends a notification to the user8134 does not send a notification when the email is not persisted8135 does not send a notification email when the email is the primary, because we are creating the user8136Abuse::TrustScore8137 # order random8138 associations8139 is expected to belong to user required: false8140 create8141 if correlation ID is nil8142 adds the correlation id8143 if correlation ID is set8144 does not change the correlation id8145 if max events is exceeded8146 removes the oldest events8147 validations8148 is expected to validate that :user cannot be empty/falsy8149 is expected to validate that :score cannot be empty/falsy8150 is expected to validate that :source cannot be empty/falsy8151Users::Calloutable8152 Associations8153 is expected to belong to user required: false8154 validations8155 is expected to validate that :user cannot be empty/falsy8156 #dismissed_after?8157 returns whether a callout dismissed after specified date8158 #dismissed_before?8159 returns whether a callout dismissed before specified date8160Gitlab::Kubernetes::Kubeconfig::Template8161 #valid?8162 is expected to be falsey8163 with configuration added8164 is expected to be truthy8165 #to_h8166 is expected to eq {:apiVersion=>"v1", :clusters=>[], :contexts=>[], :kind=>"Config", :users=>[]}8167 #to_yaml8168 is expected to eq "---\napiVersion: v1\nkind: Config\nclusters: []\nusers: []\ncontexts: []\n"8169 #merge_yaml8170 appends to the configuration and overwrites the current context8171 adding entries8172 #add_cluster8173 is expected to include {:clusters => [{:name => "name", :other => "other"}]}8174 #add_user8175 is expected to include {:users => [{:name => "name", :other => "other"}]}8176 #add_context8177 is expected to include {:contexts => [{:name => "name", :other => "other"}]}8178WorkItems::Widgets::Assignees8179 .type8180 is expected to eq :assignees8181 .quick_action_params8182 is expected to include :assignee_ids8183 #type8184 is expected to eq :assignees8185 #assignees8186 is expected to eq #<ActiveRecord::Associations::CollectionProxy [#<User id:1568 @user681>]>8187 #allows_multiple_assignees?8188 is expected to eq false8189Gitlab::DependencyLinker::PodspecJsonLinker8190 .support?8191 supports *.podspec.json8192 does not support other files8193 #link8194 links the gem name8195 links the license8196 links the homepage8197 links the source URL8198 links dependencies8199 does not link subspec names8200Tooling::Danger::CustomerSuccess8201 customer success danger8202 with data category changes to Ops and no Customer Success::Impact Check label8203 generates correct message8204 with data category changes and Customer Success::Impact Check label8205 generates correct message8206 with metric file changes and no data category changes8207 generates correct message8208 with data category changes from Ops8209 generates correct message8210 with data category removed8211 generates correct message8212 with data category added8213 generates correct message8214 with data category in uppercase8215 generates correct message8216RuboCop::Cop::UsageData::LargeTable8217 # order random8218 when in usage_data files8219 with large tables8220 when calling Issue.count8221 registers an offense8222 when calling Issue.active.count8223 registers an offense8224 when calling count(Issue)8225 does not register an offense8226 when calling count(Ci::Build.active)8227 does not register an offense8228 when calling Ci::Build.active.count8229 registers an offense8230 when using allowed methods8231 does not register an offense8232 with non related class8233 does not register an offense8234Resolvers::Ci::InheritedVariablesResolver8235 # order random8236 #resolve8237 when project does not have a group8238 returns an empty array8239 when project belongs to a group8240 returns variables from parent group and ancestors8241RuboCop::Cop::ActiveRecordAssociationReload8242 # order random8243 when using on self8244 registers an offense on reload usage8245 does not register an offense on reset usage8246 when using ActiveRecord::Base8247 registers an offense on reload usage8248 does not register an offense on reset usage8249 when using ActiveRecord::Relation8250 registers an offense on reload usage8251 does not register an offense on reset usage8252Flutter.gitlab-ci.yml8253 the created pipeline8254 creates test and code_quality jobs8255Gitlab::Ci::Build::Artifacts::Adapters::GzipStream8256 #initialize8257 when stream is passed8258 initialized8259 when stream is not passed8260 raises an error8261 #each_blob8262 when stream is gzip file8263 when gzip file contains one file8264 iterates content and file_name8265 when gzip file contains three files8266 iterates content and file_name8267 when stream is zip file8268 raises an error8269DatabaseEventTracking8270 if event emmiter failed8271 tracks the exception8272 if product_intelligence_database_event_tracking FF is off8273 does not track the event8274 event tracking8275 when created8276 when updated8277 when destroyed8278BulkImports::Projects::Pipelines::AutoDevopsPipeline8279 #run8280 imports auto devops options into destination project8281Users::SavedReplies::CreateService8282 #execute8283 when create fails8284 is expected not to be success8285 does not create new Saved Reply in database8286 returns error messages8287 when create succeeds8288 is expected to be success8289 creates new Saved Reply in database8290 returns new saved reply8291Gitlab::Usage::Metrics::Instrumentations::CountMlCandidatesMetric8292 # order random8293 behaves like a correct instrumented metric value and query8294 behaves like a correct instrumented metric value8295 has correct value8296 behaves like a correct instrumented metric query8297 has correct generate query8298ResolvesProject8299 can resolve projects by path8300 can resolve projects by id8301 complains when both are present8302 complains when neither is present8303RuboCop::Cop::AvoidKeywordArgumentsInSidekiqWorkers8304 # order random8305 does not flag a violation for standard optional arguments usage in perform method signature8306 does not flag a violation for optional keyword arguments usage in non-perform method signatures8307 does not flag a violation for keyword arguments usage in non-perform method signatures8308 flags violation for optional keyword arguments usage in perform method signature8309 flags violation for keyword arguments usage in perform method signature8310EmailReceiverWorker8311 when reply by email is enabled8312 calls the email receiver8313 when an error occurs8314 when error is a processing error8315 triggers email failure handler8316 logs the error8317 when error is not a processing error8318 triggers email failure handler8319 reports the error8320 when reply by email is disabled8321 doesn't call the email receiver8322Gitlab::Usage::Metrics::Instrumentations::GitlabForJiraAppDirectInstallationsCountMetric8323 # order random8324 behaves like a correct instrumented metric value and query8325 behaves like a correct instrumented metric value8326 has correct value8327 behaves like a correct instrumented metric query8328 has correct generate query8329Bitbucket::Page8330 #items8331 returns collection of needed objects8332 #attrs8333 returns attributes8334 #next?8335 returns true8336 returns false8337 #next8338 returns next attribute8339Gitlab::MarkdownCache::Redis::Extension8340 defines the html attributes8341 loads the markdown from the cache only once8342 correctly loads the markdown if it was stored in redis8343 .preload_markdown_cache!8344 does not preload the markdown twice8345 #refresh_markdown_cache!8346 stores the value in redis8347 assigns the values8348GitHelper8349 #short_sha8350 is expected to eq "d4e043f6"8351 #strip_signature8352 strips PGP SIGNATURE8353 is expected to eq "Version 1.69.0\n\n"8354 strips PGP MESSAGE8355 is expected to eq "Version 1.69.0\n\n"8356 strips SIGNED MESSAGE8357 is expected to eq "this is Roger's signed tag\n\n"8358Clusters::Agents::NotifyGitPushWorker8359 # order random8360 #perform8361 calls the deletion service8362 when the project no longer exists8363 completes without raising an error8364 when the :notify_kas_on_git_push feature flag is disabled8365 does not notify KAS8366ArtifactsHelper8367 # order random8368 #artifacts_app_data8369 returns expected data8370 can_destroy_artifacts8371 returns false without permission8372 returns true when user has permission8373Gitlab::GithubImport::PullRequests::ImportMergedByWorker8374 # order random8375 is expected to includes the Gitlab::GithubImport::ObjectImporter module8376 #object_type8377 is expected to eq :pull_request_merged_by8378 #importer_class8379 is expected to eq Gitlab::GithubImport::Importer::PullRequests::MergedByImporter8380 #representation_class8381 is expected to eq Gitlab::GithubImport::Representation::PullRequest8382GoogleCloud::GcpRegionAddOrReplaceService8383 adds and replaces GCP region vars8384WorkItems::Widgets::Milestone8385 # order random8386 .type8387 is expected to eq :milestone8388 #milestone8389 is expected to eq #<Milestone id:63 namespace936/project-1048%"My title 1052">8390 #type8391 is expected to eq :milestone8392Rails YAML safe load8393 # order random8394 with default permitted classes8395 deserializes data8396 with unpermitted classes8397 throws an exception8398Gitlab::Cache8399 #fetch_once8400 fetches from the cache once8401 always returns from the request store8402 .delete8403 calls Rails.cache.delete8404RuboCop::Cop::BackgroundMigration::FeatureCategory8405 # order random8406 for non background migrations8407 does not throw any offense8408 for background migrations8409 throws offense on not defining the feature_category8410 throws offense on not defining a valid feature_category8411 will not throw offense on defining a valid feature_category8412Ci::PipelineConfig8413 is expected to belong to pipeline required: false8414 is expected to validate that :pipeline cannot be empty/falsy8415 is expected to validate that :content cannot be empty/falsy8416Gitlab::Database::PostgresqlAdapter::ForceDisconnectableMixin8417 checking in a connection to the pool8418 calls the force disconnect callback on checkin8419 disconnecting from the database8420 when the timer is expired8421 disconnects from the database8422 when the timer is not expired8423 does not disconnect from the database8424Gitlab::Usage::Metrics::Instrumentations::CountCiRunnersGroupTypeActiveMetric8425 # order random8426 behaves like a correct instrumented metric value8427 has correct value8428Gitlab::Memory::Watchdog::MonitorState8429 # order random8430 #call8431 when threshold is not violated8432 returns correct result8433 when threshold is violated8434 returns correct result8435 when strikes_exceeded8436 returns correct result8437Mutations::WorkItems::Update8438 # order random8439 #ready?8440 is expected to be ready {:id=>"gid://gitlab/WorkItem/956", :parent_id=>"gid://gitlab/WorkItem/957"}8441mail_room.yml8442 when incoming email is disabled8443 contains no configuration8444 when both incoming email and service desk email are enabled8445 contains the intended configuration8446 when both incoming email and service desk email are enabled for Microsoft Graph8447 contains the intended configuration8448Types::AwardEmojis::AwardEmojiType8449 is expected to eq "AwardEmoji"8450 is expected to require graphql authorizations :read_emoji8451 is expected to have graphql fields :description, :unicode_version, :emoji, :name, :unicode, and :user8452API::Entities::DeployKeysProject8453 #as_json8454 includes basic fields8455Gitlab::Database::PostgresqlAdapter::DumpSchemaVersionsMixin8456 calls SchemaMigrations touch_all and skips original implementation8457 does not call touch_all in production8458Gitlab::Audit::UnauthenticatedAuthor8459 #initialize8460 sets correct attributes8461 sets default name when it is not provided8462 #impersonated?8463 returns false8464Gitlab::LegacyGithubImport::IssuableFormatter8465 #project_association8466 is expected to raise NotImplementedError8467 #number8468 is expected to eq 428469 #find_condition8470 is expected to eq {:iid=>42}8471RegistrationsHelper8472 #signup_username_data_attributes8473 has expected attributes8474 #register_omniauth_params8475 adds intent to register8476Sidebars::Groups::SuperSidebarMenus::MonitorMenu8477 # order random8478 defines list of NilMenuItem placeholders8479 has title and sprite_icon8480Types::BranchProtections::MergeAccessLevelType8481 # order random8482 is expected to have graphql fields :access_level and :access_level_description8483 is expected to require graphql authorizations :read_protected_branch8484Gitlab::Emoji8485 .gl_emoji_tag8486 returns gl emoji tag if emoji is found8487 returns nil if emoji is not found8488Ci::FreezePeriodPresenter8489 # order random8490 #start_time8491 when active8492 returns the previous time of the freeze period start8493 when inactive8494 returns the next time of the freeze period start8495Peek::Views::Memory8496 with process_action.action_controller notification8497 returns empty results when it has not yet fired8498 returns memory instrumentation data when it has fired8499Types::EvidenceType8500 is expected to require graphql authorizations :read_release_evidence8501 has the expected fields8502Gitlab::UsageDataCounters::ServiceUsageDataCounter8503 behaves like a redis usage counter8504 .count(download_payload_click)8505 increments the Service Usage Data download_payload_click counter by 18506 .read(download_payload_click)8507 returns the total number of download_payload_click events8508Gitlab::Patch::ActionCableRedisListener8509 catches Redis connection errors and restarts Action Cable8510 re-raises other exceptions8511Gitlab::Patch::DatabaseConfig8512 module is included8513 config/database.yml8514 returns a hash containing only main:8515API::Helpers::GraphqlHelpers8516 run_graphql!8517 when transform function is provided8518 returns the expected result8519 when a transform function is not provided8520 returns the expected result8521Gitlab::Ci::Reports::Sbom::Reports8522 #add_report8523 appends the report to the report list8524RuboCop::Cop::Gitlab::FinderWithFindBy8525 # order random8526 when calling execute.find8527 registers an offense and corrects8528 when called within the `FinderMethods` module8529 does not register an offense8530Clusters::ClusterEnabledGrant8531 is expected to belong to namespace required: false8532GroupIssuableAutocompleteEntity8533 #represent8534 includes the iid, title, and reference8535Types::LimitedCountableConnectionType8536 has the expected fields8537Types::WorkItems::Widgets::NotificationsType8538 # order random8539 exposes the expected fields8540TodosDestroyer::DestroyedDesignsWorker8541 calls the Todos::Destroy::DesignService with design_ids parameter8542Types::Packages::Maven::MetadatumType8543 includes maven metadatum fields8544Types::Notes::DiffPositionType8545 exposes the expected fields8546API::Entities::Nuget::Dependency8547 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}8548Gitlab::GithubImport::Importer::Attachments::BaseImporter8549 # order random8550 #each_object_to_import8551 with not implemented #collection interface8552 raises NotImplementedError8553Types::WorkItems::Widgets::StartAndDueDateType8554 exposes the expected fields8555Admin::DeployKeyHelper8556 #admin_deploy_keys_data8557 returns correct hash8558Knapsack report was generated. Preview:8559{8560 "spec/lib/gitlab/relative_positioning/mover_spec.rb": 169.059076231,8561 "spec/lib/gitlab/git/repository_spec.rb": 91.54657045599998,8562 "spec/tasks/gitlab/usage_data_rake_spec.rb": 105.004388286,8563 "spec/services/ci/create_pipeline_service/rules_spec.rb": 81.51882022699999,8564 "spec/services/boards/lists/move_service_spec.rb": 59.42051569299997,8565 "spec/finders/work_items/work_items_finder_spec.rb": 45.31984202600006,8566 "spec/services/projects/alerting/notify_service_spec.rb": 29.709444172000076,8567 "spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb": 22.08331716700002,8568 "spec/graphql/types/project_type_spec.rb": 25.400969074000045,8569 "spec/views/search/_results.html.haml_spec.rb": 27.901328114999956,8570 "spec/finders/packages/group_packages_finder_spec.rb": 27.65843338000002,8571 "spec/models/ci/ref_spec.rb": 27.047054334999984,8572 "spec/services/environments/stop_service_spec.rb": 27.737903618999894,8573 "spec/services/projects/unlink_fork_service_spec.rb": 26.67408857800001,8574 "spec/workers/database/batched_background_migration_worker_spec.rb": 22.413046119,8575 "spec/models/concerns/awardable_spec.rb": 19.797996280999996,8576 "spec/services/alert_management/create_alert_issue_service_spec.rb": 18.044379039999967,8577 "spec/models/concerns/require_email_verification_spec.rb": 5.2579588589999275,8578 "spec/lib/gitlab/git/branch_spec.rb": 17.66147696500002,8579 "spec/services/packages/nuget/search_service_spec.rb": 10.753049220000094,8580 "spec/services/projects/move_access_service_spec.rb": 13.824553038000204,8581 "spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb": 12.258434282000053,8582 "spec/services/projects/import_export/export_service_spec.rb": 9.127466246999802,8583 "spec/finders/members_finder_spec.rb": 12.113068629000054,8584 "spec/lib/gitlab/database/tables_locker_spec.rb": 3.513005519999979,8585 "spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb": 9.396732640999971,8586 "spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb": 13.353718236000077,8587 "spec/lib/gitlab/pagination/keyset/paginator_spec.rb": 2.926215005999893,8588 "spec/lib/gitlab/ci/variables/builder_spec.rb": 8.006862210999998,8589 "spec/models/event_collection_spec.rb": 9.085485195000047,8590 "spec/workers/create_commit_signature_worker_spec.rb": 11.43185989199992,8591 "spec/lib/gitlab/redis/sessions_spec.rb": 2.135737627000026,8592 "spec/services/clusters/agent_tokens/create_service_spec.rb": 7.924333703000002,8593 "spec/lib/atlassian/jira_connect/client_spec.rb": 5.940693664000037,8594 "spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb": 8.616874499000005,8595 "spec/tasks/gitlab/user_management_rake_spec.rb": 9.499832803000118,8596 "spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb": 7.049986768000053,8597 "spec/services/metrics/dashboard/annotations/delete_service_spec.rb": 6.533484030999944,8598 "spec/services/git/tag_push_service_spec.rb": 7.198354517000098,8599 "spec/services/ml/experiment_tracking/candidate_repository_spec.rb": 2.5845712940001704,8600 "spec/lib/gitlab/search/recent_merge_requests_spec.rb": 7.326799964999964,8601 "spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb": 9.495875653999974,8602 "spec/lib/gitlab/regex_requires_app_spec.rb": 2.0940452180000193,8603 "spec/models/packages/conan/file_metadatum_spec.rb": 6.934877552999978,8604 "spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb": 5.557097381000176,8605 "spec/serializers/discussion_diff_file_entity_spec.rb": 9.176281784999901,8606 "spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb": 2.0171348769999895,8607 "spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb": 5.019535540000106,8608 "spec/views/layouts/header/_new_dropdown.haml_spec.rb": 3.579672328000015,8609 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb": 2.8257879079999384,8610 "spec/lib/gitlab/audit/type/definition_spec.rb": 1.528437617999998,8611 "spec/models/jira_connect_installation_spec.rb": 2.3593861100000595,8612 "spec/lib/gitlab/ci/status/build/stop_spec.rb": 5.405945898000027,8613 "spec/models/integrations/mattermost_slash_commands_spec.rb": 3.0656414570000834,8614 "spec/lib/gitlab/seeders/ci/runner/runner_fleet_seeder_spec.rb": 8.661309802999995,8615 "spec/services/work_items/task_list_reference_replacement_service_spec.rb": 4.454936241000041,8616 "spec/lib/gitlab/ci/badge/release/latest_release_spec.rb": 4.995201421000047,8617 "spec/models/integrations/ewm_spec.rb": 1.6982284249997974,8618 "spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb": 1.755575336999982,8619 "spec/services/error_tracking/issue_update_service_spec.rb": 4.468406402000028,8620 "spec/lib/gitlab/search/recent_issues_spec.rb": 6.183292376999816,8621 "spec/finders/groups/user_groups_finder_spec.rb": 2.066417599000033,8622 "spec/models/ci/instance_variable_spec.rb": 1.7098059960001137,8623 "spec/lib/gitlab/utils/override_spec.rb": 1.1109779529999741,8624 "spec/lib/gitlab/config/loader/yaml_spec.rb": 0.8725782929998331,8625 "spec/lib/gitlab/sidekiq_config_spec.rb": 1.3769784030000665,8626 "spec/tooling/lib/tooling/find_changes_spec.rb": 0.9971999080000842,8627 "spec/lib/gitlab/usage/metrics/query_spec.rb": 0.7501756189999469,8628 "spec/models/concerns/taskable_spec.rb": 0.5968362730000081,8629 "spec/models/project_export_job_spec.rb": 3.072358658000212,8630 "spec/services/packages/mark_package_files_for_destruction_service_spec.rb": 1.7963308289999986,8631 "spec/finders/user_finder_spec.rb": 1.0749078710000504,8632 "spec/lib/gitlab/asciidoc/include_processor_spec.rb": 1.751909367000053,8633 "spec/lib/gitlab/global_id_spec.rb": 0.8605826529999376,8634 "spec/lib/bulk_imports/projects/pipelines/issues_pipeline_spec.rb": 3.175030672000048,8635 "spec/helpers/admin/user_actions_helper_spec.rb": 2.3924996920000012,8636 "spec/lib/uploaded_file_spec.rb": 1.3051970999999867,8637 "spec/lib/gitlab/graphql/pagination/externally_paginated_array_connection_spec.rb": 1.3400258210001539,8638 "spec/rubocop/cop/avoid_return_from_blocks_spec.rb": 0.9046243550001236,8639 "spec/workers/projects/inactive_projects_deletion_cron_worker_spec.rb": 2.1887453739998364,8640 "spec/serializers/test_suite_summary_entity_spec.rb": 3.9020074800000657,8641 "spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb": 0.7506548189999194,8642 "spec/lib/sidebars/admin/menus/abuse_reports_menu_spec.rb": 1.4815896269999485,8643 "spec/models/packages/debian/group_component_spec.rb": 1.0644535709998308,8644 "spec/lib/gitlab/metrics/subscribers/external_http_spec.rb": 0.70140498700016,8645 "spec/lib/gitlab/prometheus/internal_spec.rb": 0.6584063450000031,8646 "spec/models/group_group_link_spec.rb": 2.7588530660000288,8647 "spec/lib/api/helpers/related_resources_helpers_spec.rb": 0.6548323250001431,8648 "spec/lib/gitlab/private_commit_email_spec.rb": 0.7227404379998461,8649 "spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 3.298589987000014,8650 "spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb": 0.5837403130001348,8651 "spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb": 0.9564992470000107,8652 "spec/lib/gitlab/seeders/project_environment_seeder_spec.rb": 1.0239370399999643,8653 "spec/lib/gitlab/graphql/generic_tracing_spec.rb": 0.3948158149999017,8654 "spec/models/merge_request/diff_commit_user_spec.rb": 0.7923425100000259,8655 "spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb": 3.200865512000064,8656 "spec/services/groups/deploy_tokens/create_service_spec.rb": 2.3965749219998997,8657 "spec/helpers/badges_helper_spec.rb": 1.3571535420001055,8658 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb": 2.803060028000118,8659 "spec/rubocop/todo_dir_spec.rb": 1.0382924199998342,8660 "spec/serializers/linked_project_issue_entity_spec.rb": 3.0368720960000246,8661 "spec/serializers/analytics_summary_serializer_spec.rb": 0.9466173460000391,8662 "spec/lib/gitlab/lets_encrypt_spec.rb": 1.4640555459998268,8663 "spec/lib/gitlab/auth/ldap/adapter_spec.rb": 0.886986823999905,8664 "spec/lib/gitlab/dependency_linker_spec.rb": 0.7555946089998997,8665 "spec/models/integrations/clickup_spec.rb": 1.2726467489999322,8666 "spec/lib/gitlab/template/finders/global_template_finder_spec.rb": 0.8106382209998628,8667 "spec/lib/gitlab/instrumentation/redis_base_spec.rb": 1.080178210999975,8668 "spec/tasks/gitlab/setup_rake_spec.rb": 2.410204953000175,8669 "spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb": 1.001765358000057,8670 "spec/models/concerns/access_requestable_spec.rb": 2.277596616999972,8671 "spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb": 0.4203889660000186,8672 "spec/services/projects/move_notification_settings_service_spec.rb": 2.7904411170000003,8673 "spec/db/development/create_base_work_item_types_spec.rb": 0.914000440999871,8674 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/plan_stage_start_spec.rb": 1.937741911999865,8675 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.6370698010000524,8676 "spec/lib/gitlab/ci/yaml_processor/result_spec.rb": 1.3343287479999617,8677 "spec/services/issue_links/destroy_service_spec.rb": 2.184132320000117,8678 "spec/tasks/gitlab/packages/migrate_rake_spec.rb": 2.885659755000006,8679 "spec/helpers/routing/pseudonymization_helper_spec.rb": 1.6560641379999197,8680 "spec/workers/clusters/applications/deactivate_integration_worker_spec.rb": 2.866188487000045,8681 "spec/services/terraform/states/trigger_destroy_service_spec.rb": 1.1834077810001418,8682 "spec/workers/update_project_statistics_worker_spec.rb": 2.019164015000115,8683 "spec/lib/gitlab/experiment/rollout/feature_spec.rb": 0.6813527379999869,8684 "spec/views/layouts/profile.html.haml_spec.rb": 2.068231300999969,8685 "spec/lib/bitbucket/representation/comment_spec.rb": 0.4742744659999971,8686 "spec/tooling/lib/tooling/find_codeowners_spec.rb": 1.149333114000001,8687 "spec/models/onboarding/completion_spec.rb": 0.8281634740001209,8688 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb": 0.8476915429998826,8689 "spec/models/releases/source_spec.rb": 1.06095427199989,8690 "spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_s3_spec.rb": 1.238683336999884,8691 "spec/lib/api/helpers/variables_helpers_spec.rb": 0.33317842899987227,8692 "spec/policies/alert_management/http_integration_policy_spec.rb": 1.3416979269998137,8693 "spec/rubocop/cop/migration/versioned_migration_class_spec.rb": 0.49878324400015117,8694 "spec/graphql/resolvers/users/groups_resolver_spec.rb": 2.9608401190000677,8695 "spec/services/projects/group_links/update_service_spec.rb": 1.8665982690001783,8696 "spec/lib/gitlab/ci/status/build/action_spec.rb": 1.8296720810001261,8697 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb": 1.303028069999982,8698 "spec/workers/object_pool/destroy_worker_spec.rb": 2.000881855999978,8699 "spec/lib/gitlab/with_request_store_spec.rb": 0.31494052100015324,8700 "spec/policies/project_group_link_policy_spec.rb": 1.6822720249999747,8701 "spec/lib/gitlab/metrics/dashboard/importer_spec.rb": 0.6822745879999275,8702 "spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb": 1.6236699210001007,8703 "spec/lib/sidebars/user_profile/menus/overview_menu_spec.rb": 0.9585597220000182,8704 "spec/lib/sidebars/groups/menus/ci_cd_menu_spec.rb": 0.5760350370001106,8705 "spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb": 0.33313945899999453,8706 "spec/finders/analytics/cycle_analytics/stage_finder_spec.rb": 0.41987595199998395,8707 "spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb": 0.351889927000002,8708 "spec/lib/banzai/pipeline/email_pipeline_spec.rb": 0.3583688160001657,8709 "spec/services/releases/links/params_spec.rb": 0.3333041989999401,8710 "spec/lib/gitlab/x509/tag_spec.rb": 1.4191645099999732,8711 "spec/graphql/types/commit_signatures/gpg_signature_type_spec.rb": 0.35796839699992233,8712 "spec/lib/gitlab/hook_data/release_builder_spec.rb": 1.588130733999833,8713 "spec/lib/gitlab/git/util_spec.rb": 0.4433152890001111,8714 "spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb": 0.8127105159999246,8715 "spec/graphql/types/design_management/design_at_version_type_spec.rb": 1.3003215100000034,8716 "spec/workers/ci/build_trace_chunk_flush_worker_spec.rb": 1.8989864049999596,8717 "spec/workers/members_destroyer/unassign_issuables_worker_spec.rb": 0.4665699869999571,8718 "spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb": 1.0649786029998722,8719 "spec/graphql/types/tree/tree_entry_type_spec.rb": 0.3103203709999889,8720 "spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb": 0.6960535059999984,8721 "spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb": 0.9502634620000663,8722 "spec/lib/gitlab/other_markup_spec.rb": 1.3519524359999195,8723 "spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb": 1.193204551000008,8724 "spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb": 1.2743753429999742,8725 "spec/graphql/resolvers/projects/fork_targets_resolver_spec.rb": 1.304172059999928,8726 "spec/lib/version_check_spec.rb": 0.7407048620000296,8727 "spec/lib/gitlab/import_export/group/object_builder_spec.rb": 0.987744179999936,8728 "spec/lib/gitlab/database/migrations/test_background_runner_spec.rb": 1.1128168780001033,8729 "spec/services/emails/create_service_spec.rb": 0.7245005500001298,8730 "spec/models/abuse/trust_score_spec.rb": 0.7111697620000541,8731 "spec/models/users/calloutable_spec.rb": 0.8306163990000641,8732 "spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb": 0.5117950030000884,8733 "spec/models/work_items/widgets/assignees_spec.rb": 0.7769076950000908,8734 "spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb": 0.6034949830000187,8735 "spec/tooling/danger/customer_success_spec.rb": 0.4964249560000553,8736 "spec/rubocop/cop/usage_data/large_table_spec.rb": 0.49289459599981456,8737 "spec/graphql/resolvers/ci/inherited_variables_resolver_spec.rb": 1.0217070470000635,8738 "spec/rubocop/cop/active_record_association_reload_spec.rb": 0.5042921949998345,8739 "spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb": 1.187057040000127,8740 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.4038844560000143,8741 "spec/models/concerns/database_event_tracking_spec.rb": 0.46679737799991017,8742 "spec/lib/bulk_imports/projects/pipelines/auto_devops_pipeline_spec.rb": 0.8626954450000994,8743 "spec/services/users/saved_replies/create_service_spec.rb": 0.6390007990000868,8744 "spec/lib/gitlab/usage/metrics/instrumentations/count_ml_candidates_metric_spec.rb": 0.8894284020000214,8745 "spec/graphql/resolvers/concerns/resolves_project_spec.rb": 0.6163650220000818,8746 "spec/rubocop/cop/avoid_keyword_arguments_in_sidekiq_workers_spec.rb": 0.42231523399982507,8747 "spec/workers/email_receiver_worker_spec.rb": 0.4963023059999614,8748 "spec/lib/gitlab/usage/metrics/instrumentations/gitlab_for_jira_app_direct_installations_count_metric_spec.rb": 0.6601396779999504,8749 "spec/lib/bitbucket/page_spec.rb": 0.4083696949999194,8750 "spec/lib/gitlab/markdown_cache/redis/extension_spec.rb": 0.4598045490001823,8751 "spec/helpers/git_helper_spec.rb": 0.38605767800004287,8752 "spec/workers/clusters/agents/notify_git_push_worker_spec.rb": 0.5548395289999917,8753 "spec/helpers/artifacts_helper_spec.rb": 0.3790743879999354,8754 "spec/workers/gitlab/github_import/pull_requests/import_merged_by_worker_spec.rb": 0.4120763349999379,8755 "spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb": 0.6166858629999297,8756 "spec/models/work_items/widgets/milestone_spec.rb": 0.6303330499999902,8757 "spec/initializers/rails_yaml_safe_load_spec.rb": 0.6162609529999372,8758 "spec/lib/gitlab/cache_spec.rb": 0.31994782399988253,8759 "spec/rubocop/cop/background_migration/feature_category_spec.rb": 0.37342328799991265,8760 "spec/models/ci/pipeline_config_spec.rb": 0.36146335999978874,8761 "spec/lib/gitlab/database/postgresql_adapter/force_disconnectable_mixin_spec.rb": 0.4670183690000158,8762 "spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_group_type_active_metric_spec.rb": 0.3901681170000302,8763 "spec/lib/gitlab/memory/watchdog/monitor_state_spec.rb": 0.32854490399995484,8764 "spec/graphql/mutations/work_items/update_spec.rb": 0.7715560050000931,8765 "spec/config/mail_room_spec.rb": 0.410871244999953,8766 "spec/graphql/types/award_emojis/award_emoji_type_spec.rb": 0.3246179950001533,8767 "spec/lib/api/entities/deploy_keys_project_spec.rb": 0.7789091639999697,8768 "spec/lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin_spec.rb": 0.29741379699999015,8769 "spec/lib/gitlab/audit/unauthenticated_author_spec.rb": 0.32890452399988135,8770 "spec/lib/gitlab/legacy_github_import/issuable_formatter_spec.rb": 0.32250738499988074,8771 "spec/helpers/registrations_helper_spec.rb": 0.3016224969999257,8772 "spec/lib/sidebars/groups/super_sidebar_menus/monitor_menu_spec.rb": 0.30964944700008346,8773 "spec/graphql/types/branch_protections/merge_access_level_type_spec.rb": 0.3056199860000106,8774 "spec/lib/gitlab/emoji_spec.rb": 0.30058367699984956,8775 "spec/presenters/ci/freeze_period_presenter_spec.rb": 0.33165339399988625,8776 "spec/lib/peek/views/memory_spec.rb": 0.3084089669998775,8777 "spec/graphql/types/evidence_type_spec.rb": 0.30568106600003375,8778 "spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb": 0.34535790199993244,8779 "spec/lib/gitlab/patch/action_cable_redis_listener_spec.rb": 0.3060473959999399,8780 "spec/lib/gitlab/patch/database_config_spec.rb": 0.29870685700007016,8781 "spec/lib/api/helpers/graphql_helpers_spec.rb": 0.29546274800009087,8782 "spec/lib/gitlab/ci/reports/sbom/reports_spec.rb": 0.2639454219997788,8783 "spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb": 0.3096138759999576,8784 "spec/models/clusters/cluster_enabled_grant_spec.rb": 0.2862578689998827,8785 "spec/serializers/group_issuable_autocomplete_entity_spec.rb": 0.30118926700015436,8786 "spec/graphql/types/limited_countable_connection_type_spec.rb": 0.26427210099996046,8787 "spec/graphql/types/work_items/widgets/notifications_type_spec.rb": 0.2735094290001143,8788 "spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb": 0.2670328310000514,8789 "spec/graphql/types/packages/maven/metadatum_type_spec.rb": 0.26517582099995707,8790 "spec/graphql/types/notes/diff_position_type_spec.rb": 0.265081820999967,8791 "spec/lib/api/entities/nuget/dependency_spec.rb": 0.2952426080000805,8792 "spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb": 0.27479054000014,8793 "spec/graphql/types/work_items/widgets/start_and_due_date_type_spec.rb": 0.27414122999994106,8794 "spec/helpers/admin/deploy_key_helper_spec.rb": 0.28356837899991668795}8796Knapsack global time execution for tests: 21m 35s8797Pending: (Failures listed here are expected and do not affect your suite's status)8798 1) Database::BatchedBackgroundMigrationWorker behaves like it runs batched background migration jobs #perform when the base model does not exist does nothing8799 # because the base model for main exists8800 # ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:668801 2) Database::BatchedBackgroundMigrationWorker behaves like it runs batched background migration jobs #perform when the base model does not exist logs a message indicating execution is skipped8802 # because the base model for main exists8803 # ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:728804 3) Database::BatchedBackgroundMigrationWorker behaves like it runs batched background migration jobs #perform when the base model does exist when the tracking database is shared does nothing8805 # Skipping because database main exists8806 # ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:958807 4) Projects::ImportExport::ExportService#execute saves the repo8808 # No reason given8809 # ./spec/services/projects/import_export/export_service_spec.rb:518810 5) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock tables locks table in schema gitlab_ci and database main8811 # Skipping because ci is shared or doesn't not exist8812 # ./spec/lib/gitlab/database/tables_locker_spec.rb:698813 6) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock tables returns list of actions8814 # Skipping because ci is shared or doesn't not exist8815 # ./spec/lib/gitlab/database/tables_locker_spec.rb:898816 7) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock tables locks table in schema gitlab_main and database ci8817 # Skipping because ci is shared or doesn't not exist8818 # ./spec/lib/gitlab/database/tables_locker_spec.rb:698819 8) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock tables returns list of actions8820 # Skipping because ci is shared or doesn't not exist8821 # ./spec/lib/gitlab/database/tables_locker_spec.rb:898822 9) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock tables locks table in schema gitlab_main_clusterwide and database ci8823 # Skipping because ci is shared or doesn't not exist8824 # ./spec/lib/gitlab/database/tables_locker_spec.rb:698825 10) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock tables returns list of actions8826 # Skipping because ci is shared or doesn't not exist8827 # ./spec/lib/gitlab/database/tables_locker_spec.rb:898828 11) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_main_clusterwide and database main8829 # Skipping because ci is shared or doesn't not exist8830 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028831 12) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8832 # Skipping because ci is shared or doesn't not exist8833 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228834 13) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_main and database main8835 # Skipping because ci is shared or doesn't not exist8836 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028837 14) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8838 # Skipping because ci is shared or doesn't not exist8839 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228840 15) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_ci and database ci8841 # Skipping because ci is shared or doesn't not exist8842 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028843 16) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8844 # Skipping because ci is shared or doesn't not exist8845 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228846 17) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_shared and database main8847 # Skipping because ci is shared or doesn't not exist8848 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028849 18) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8850 # Skipping because ci is shared or doesn't not exist8851 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228852 19) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_shared and database ci8853 # Skipping because ci is shared or doesn't not exist8854 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028855 20) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8856 # Skipping because ci is shared or doesn't not exist8857 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228858 21) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_internal and database main8859 # Skipping because ci is shared or doesn't not exist8860 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028861 22) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8862 # Skipping because ci is shared or doesn't not exist8863 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228864 23) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables unlocks table in schema gitlab_internal and database ci8865 # Skipping because ci is shared or doesn't not exist8866 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028867 24) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock tables returns list of actions8868 # Skipping because ci is shared or doesn't not exist8869 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228870 25) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock partitions unlocks the partition8871 # Skipping because ci is shared or doesn't not exist8872 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1508873 26) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock partitions locks the partition8874 # Skipping because ci is shared or doesn't not exist8875 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1308876 27) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like unlock partitions unlocks the partition8877 # Skipping because ci is shared or doesn't not exist8878 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1508879 28) Gitlab::Database::TablesLocker when running on multiple databases #lock_writes behaves like lock partitions locks the partition8880 # Skipping because ci is shared or doesn't not exist8881 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1308882 29) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_ci and database main8883 # Skipping because ci is shared or doesn't not exist8884 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028885 30) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8886 # Skipping because ci is shared or doesn't not exist8887 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228888 31) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_main and database ci8889 # Skipping because ci is shared or doesn't not exist8890 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028891 32) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8892 # Skipping because ci is shared or doesn't not exist8893 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228894 33) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_main and database main8895 # Skipping because ci is shared or doesn't not exist8896 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028897 34) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8898 # Skipping because ci is shared or doesn't not exist8899 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228900 35) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_ci and database ci8901 # Skipping because ci is shared or doesn't not exist8902 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028903 36) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8904 # Skipping because ci is shared or doesn't not exist8905 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228906 37) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_shared and database main8907 # Skipping because ci is shared or doesn't not exist8908 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028909 38) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8910 # Skipping because ci is shared or doesn't not exist8911 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228912 39) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_shared and database ci8913 # Skipping because ci is shared or doesn't not exist8914 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028915 40) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8916 # Skipping because ci is shared or doesn't not exist8917 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228918 41) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_internal and database main8919 # Skipping because ci is shared or doesn't not exist8920 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028921 42) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8922 # Skipping because ci is shared or doesn't not exist8923 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228924 43) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables unlocks table in schema gitlab_internal and database ci8925 # Skipping because ci is shared or doesn't not exist8926 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1028927 44) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock tables returns list of actions8928 # Skipping because ci is shared or doesn't not exist8929 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1228930 45) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock partitions unlocks the partition8931 # Skipping because ci is shared or doesn't not exist8932 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1508933 46) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock partitions unlocks the partition8934 # Skipping because ci is shared or doesn't not exist8935 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1508936 47) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock partitions unlocks the partition8937 # Skipping because ci is shared or doesn't not exist8938 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1508939 48) Gitlab::Database::TablesLocker when running on multiple databases #unlock_writes behaves like unlock partitions unlocks the partition8940 # Skipping because ci is shared or doesn't not exist8941 # ./spec/lib/gitlab/database/tables_locker_spec.rb:1508942 49) Gitlab::Database::TablesLocker when running on multiple databases when not including partitions does not include any table partitions8943 # Skipping because ci is shared or doesn't not exist8944 # ./spec/lib/gitlab/database/tables_locker_spec.rb:2578945 50) Gitlab::Database::TablesLocker when running on multiple databases when not including partitions does not include any detached partitions8946 # Skipping because ci is shared or doesn't not exist8947 # ./spec/lib/gitlab/database/tables_locker_spec.rb:2678948 51) Gitlab::Database::TablesLocker when running on multiple databases when running in dry_run mode passes dry_run flag to LockWritesManager8949 # Skipping because ci is shared or doesn't not exist8950 # ./spec/lib/gitlab/database/tables_locker_spec.rb:2828951 52) Gitlab::Database::TablesLocker when running on multiple databases when running on multiple shared databases does not lock any tables if the ci database is shared with main database8952 # Skipping because ci is shared or doesn't not exist8953 # ./spec/lib/gitlab/database/tables_locker_spec.rb:3068954 53) Gitlab::Database::TablesLocker when geo database is configured does not lock table in geo database8955 # Geo database is not configured8956 # ./spec/lib/gitlab/database/tables_locker_spec.rb:3298957 54) Atlassian::JiraConnect::Client#store_build_info avoids N+1 database queries8959 Failure/Error:8960 expect do8961 subject.send(:store_build_info, project: project, pipelines: pipelines)8962 end.not_to exceed_query_limit(baseline)8963 Expected a maximum of 14 queries, got 15:8964 Query Diff:8965 -----------8966 SELECT "merge_requests".* FROM "merge_requests" WHERE "merge_requests"."source_project_id" = 787 AND "merge_requests"."source_branch" = 'master' AND (EXISTS (SELECT 1 FROM "merge_request_diffs"...8967 -- (expected: 0, got: 1)8968 INNER JOIN "merge_request_diff_commits" ON "merge_request_diff_commits"."merge_request_diff_id" = "merge_request_diffs"."id" WHERE (merge_requests.latest_merge_request_diff_id = merge_request_diffs.id) AND "merge_request_diff_commits"."sha" = '\xb83d6e391c22777fca1ed3012fce84f633d7fed0'))8969 # ./spec/lib/atlassian/jira_connect/client_spec.rb:416:in `block (3 levels) in <top (required)>'8970 # ./spec/lib/atlassian/jira_connect/client_spec.rb:25:in `block (3 levels) in <top (required)>'8971 # ./spec/lib/atlassian/jira_connect/client_spec.rb:25:in `block (2 levels) in <top (required)>'8972 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'8973 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8974 # ./spec/spec_helper.rb:406:in `block (2 levels) in <top (required)>'8975 # ./spec/spec_helper.rb:402:in `block (3 levels) in <top (required)>'8976 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8977 # ./spec/spec_helper.rb:402:in `block (2 levels) in <top (required)>'8978 # ./spec/spec_helper.rb:243:in `block (2 levels) in <top (required)>'8979 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8980 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8981 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8982 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8983 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8984 55) Gitlab::Template::Finders::GlobalTemplateFinder.find with a prefixed template does not find the template without a prefix8985 # Temporarily skipped with xit8986 # ./spec/lib/gitlab/template/finders/global_template_finder_spec.rb:848987 56) Gitlab::Template::Finders::GlobalTemplateFinder.find with a prefixed template while listed as an exclusion does not find the template without a prefix8988 # Temporarily skipped with xit8989 # ./spec/lib/gitlab/template/finders/global_template_finder_spec.rb:1118990Finished in 21 minutes 39 seconds (files took 53.04 seconds to load)89914430 examples, 0 failures, 56 pending8992Randomized with seed 476918993[TEST PROF INFO] Time spent in factories: 10:03.130 (46.18% of total time)8994RSpec exited with 0.8995No examples to retry, congrats!8997Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8999Uploading artifacts...9000coverage/: found 5 matching artifact files and directories 9001crystalball/: found 2 matching artifact files and directories 9002WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9003knapsack/: found 4 matching artifact files and directories 9004WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9005rspec/: found 16 matching artifact files and directories 9006WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9007log/*.log: found 20 matching artifact files and directories 9008WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964340/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9009WARNING: Retrying... context=artifacts-uploader error=request redirected9010Uploading artifacts as "archive" to coordinator... 201 Created id=4400964340 responseStatus=201 Created token=64_7AN3_9011Uploading artifacts...9012rspec/rspec-*.xml: found 1 matching artifact files and directories 9013WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964340/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9014WARNING: Retrying... context=artifacts-uploader error=request redirected9015Uploading artifacts as "junit" to coordinator... 201 Created id=4400964340 responseStatus=201 Created token=64_7AN3_9017Job succeeded